Bugün halihazırda kullanılan pek çok programlama dili vardır. İhtiyaca göre programlama yaparken hangi programlama dilinin seçileceği önemlidir.Harita Mühendisliği konuları sözel ve sayısal veriler olarak programlamaya uygundur. Mevcut programlama dilleri ve özellikleri araştırılarak harita mühendisliğinde uygulanabilme yolları üzerinde çalışılmıştır.İlk önce mevcut programlar (yazılımlar) araştırılarak bu yazılımlarda kullanılan programlama dilleri açıklanmış yazılımların daha iyi hale getirilebilmesi için karma programlama dillerinin kullanımı yönünde öneriler getirilmiştir.
1.GİRİŞ
Programlama dilleri, temel yaklaşımlarına göre bazı sınıflara ayrılırlar. Buna göre belli başlı programlama dili sınıfları şunlardır:
Programlama dillerinin seviyelerine göre sınıflandırılması:
İnsana En Yakın: Çok yüksek seviyeli programlama dilleri ya da görsel diller (Foxpro, Paradox, access, Vısual Basıc,....)
Yüksek seviyeli programlama dilleri (Pascal, Cobol, Fortran, Basıc,...)
Orta seviyeli programlama dilleri (C, ADA)
Alçak seviyeli programlama dilleri (sembolik makine dilleri)
Bilgisayara en Yakın: Makine dilleri (Bilgisayarın doğal çalışma dilleri, l ve 0’ ların dizilimlerinden oluşan)
Görsel programlama dilleri program kodunun kısmen yada tamamen görsel biçimde çeşitli araçlar tarafından üretildiği dillerdir. Görselliğin ileri uçlarında program kodu bile bulunmayabilir. Windows sistemlerinde Visual Basic, Access gibi görsel diller yaygın bir biçimde kullanılmaktadır.Çok yüksek seviyeli dillere dekleratif diller de denir. Veritabanlarının yönetimlerinde kullandığımız dilleri bu gruba sokabiliriz. Yüksek seviyeli programlama dilleri daha algoritmik dillerdir. Bu dillerde önce işlerin nasıl yapılacağına ilişkin algoritmalar tasarlanır. Daha sonra bu algoritmalar program koduna çevrilir. Basıc, Pascal, Fortran gibi dilleri bu grup içerisinde ele alabiliriz.
Programlama dillerinin uygulama alanlarına göre sınıflandırılması: . Bilimsel ve Mühendislik Diller: Bu diller daha çok bilimsel ve mühendislik problemlerinin çözümünde tercih edilirler. PASCAL ve C dillerini , birde geleceği pek parlak olmayan ve hala ısrarla kullanılan 90 canlı, dünyanın ilk yüksek seviyeli dili FORTRAN’ ı buna örnek verebiliriz.
. Veritabanı Programlama Dilleri: Bu diller veritabanlarının genel olarak yönetiminde kullanılan dillerdir: DBASE, PARADOX, FOXPRO, SQL.. kişisel bilgisayarlarda yaygın olarak kullanılanlardan bazıları.
. Yapay Zeka Dilleri: bu diller insan davranışını taklit etmeye yönelik yapay zeka içeren programların yazımında kullanılan mantıksal dillerdir. En ünlüleri : LISP ve PROLOG.
. Genel Amaçlı Diller: Çok çeşitli konularda uygulama geliştirmek amacıyla kullanılan dillerdir. C ve PASCAL’ ı örnek verebiliriz.
. Sistem Programlama Dilleri: Sistem programlarının yazımında kullanılan dillerdir. C ‘ yi sembolik makine dillerini bu grup içinde ele alabiliriz.
Genel olarak bugüne kadar kullanılan programlama dilleri şunlardır:
2. HARİTA MÜHENDİSLİĞİNDE KULLANILAN PROGRAMLAMA DİLLERİ VE ÖZELLİKLERİ
Bilgisayarın ilk bulunduğu yıllarda, program komutları makine dilinde kodlanarak amaç programlar yazılmaktaydı.Programcı bellekteki alanların tanımlanması, deyim ve verilerin adreslenmesi ve atamaların yapılması gibi pek çok gereksiz işlemi yapmak zorundaydı.Bilgisayarlar gelişerek daha karmaşık olunca “amaç programlar” yazmak verimsiz olmaya başlamıştı. Makine dilinde program yazmanın güçlüğü üzerine, kaynak programlar makine diline çevrilebilecek şekilde sembolik dillerle yazılmaya başlandı. Böylece çeşitli amaçlara yönelik BASIC, FORTRAN....gibi sembolik programlama dilleri geliştirildi.Bu dillerde, makine koduna çevrilebilecek şekilde birtakım sembol, deyim veya komutlar kullanılmıştır. Makine diline göre, yazılışları kolaydır.Ancak bu dillerde yazılmış kaynak programların, makine diline çevrilme, yani derleme veya yorumlama işlemlerinden geçmesi gerekmektedir.
Genel olarak bugüne kadar harita mühendisliğinde kullanılan programlama dilleri şunlardır:
Basıc
Fortran
Turbo C++
Pascal
Avenue
Microsoft Access
Delphi
VBasic
Perl
XML
HTML
Jawa
C
V C++
Power Builder
Jawa script
VB Script
Borland C
........
FORTRAN (FORmula TRANslater):
İşleme yönelik bir dildir.İşleme yönelik dillerde, yazılım kuralları çok ayrıntılıdır. Nokta, virgül, boşlukların yeri ve sırası önemlidir.kullanılan en eski dillerden biridir. Bu dilde yazılmış deyimler matematik formüllere benzerlik gösterirler.Mühendislik, bilimsel ve matematik uygulamalarında yaygın olarak kullanılmıştır.
BASIC (Beginners All Purpose Symbolic Instruction Code):
Eğitim amacıyla geliştirilmiştir.FORTRAN dilinin bazı özelliklerini almakla birlikte veri giriş ve çıkış işlemleri kolay bir dildir.Rapor dökümanları için uygun değildir.Daha çok ticari ve bilimsel amaçlar için kullanılmıştır.
Assembly:
Assembly, öncelikle bir programlama dilidir. Ve aslında bizim bilmediğimiz, ama onu bir çok yerde kullandığımız bir dildir. Assembly bir entegre programlama dilidir. Ve bir çok cihazın içinde kendi assembly dili ile yazılmış programlar çalışmaktadır. Assembly ile yazılmış programları yorumlayan programlara ise assembler denir. Biz sitemizde daha çok intel x86 serisi mikroişlemciler üzerinde duracağız. Eğer istek gelirse piyasada kullanılan diğer işlemcilerden 6502 ve 6800 Motorola işlemcileri üzerinde de durabiliriz. Assembly, alt seviyeli bir dildir. Yani makine diline en yakın dil assemblydir. Bu da assembly dilini oldukça güçlü kılar. Oldukça karmaşık bir dil olmasının yanısıra assembly programlamaya başladıktan sonra işlerinizi daha kolay halledebileceğinizi göreceksiniz. Ancak assembly alt seviye bir dil olmasının verdiği özellikten dolayı oldukça uzun kodlamalar sonunda istenilen işlemi yapabilir. Örneğin C'de ekrana karakter yazmak içn kullandığımız bir printf "yazı" komutu için assemblyde 5-6 satırlık bir kodlamaya ihtiyaç duyulur.
TURBO PASCAL:
PASCAL programlama dili 1968 yılında Niklaus Wirth tarafından geliştirilmiş yüksek seviyeli bir programlama dilidir. Bu dilin Turbo Pascal versiyonu, günümüzde mühendislik, ticari ve bilimsel alanlarda yaygın olarak kullanılmaktadır.
Turbo Pascal, özellikle program yazmada sağladığı büyük kolaylıklardan dolayı çok yaygın olarak kullanılan bir dil haline gelmiştir. Turbo Pascal’ da yazılan programlar daha kısa, anlaşılması kolay ve çok hızlı olarak çalışırlar. Özellikle GOTO komutunun zorunlu olmaması ve bu komuta gerek duyulmamasından dolayı programın okunması kolaylaşmakta ve çalışma hızı artmaktadır.
Turbo Pascal ‘ın programcıya sunduğu en önemli özellik; Programcı kendisine gerekli olan ve her yerde kullanılması gereken program parçalarını (unit) bir defa hazırladıktan sonra bu program parçalarını başka programları içerisinde çok kolay bir şekilde kullanabilmekte ve istediği şekilde veri tipleri tanımlayabilmektedir.Bu şekilde programın daha esnek ve daha kısa sürede tamamlanması sağlanmaktadır.
Turbo Pascal’ ın diğer bir önemli özelliği ise program yazma işlemleri için hazırlanan editör’ ün esnek olması, programların makine diline anında çevrilmesi, hata bulma ve hataları düzeltme işlemlerinin pratik ve hızlı olarak yapılmasına imkan vermesidir.
C Dili:
C programlama dili, günümüzde en yaygın kullanılan dillerden biridir. C dili, COBOL, FORTRAN, PL/I gibi eski programlama dilleri grubuna dahil edilemeyeceği gibi, Ada, Modula 2 gibi yeni sayılabilecek dil grubuna da girmez.
C dili, klasik programlama dilleri kavramlarının, yeni, basit ve kolay kullanılır bir şekilde sağlandığı pratik bir dildir. C' nin popülaritesi daha çok UNIX'inki ile ilişkilidir, çünkü C, ilk olarak, UNIX dünyasının programlama dili olarak ortaya çıkmıştır. Bu popülarite, kişisel bilgisayarların çoğalması ve bunlar üzerindeki güçlü derleyici ile programlama ortamlarının kullanılabilir hale gelmesinden sonra daha çok artmıştır.
'C' Dili,genis amacli programlama dili olarak Dennis Ritchie tarafından 1972 yılında geliştirildi ve PDP-11 üzerinde uyarlan di. UNIX' in işletim sisteminin sistem dili olarak geliştirilmiştir. UNIX'in yapımcısı Ken Thompson UNIX'i geliştirirken
ASSEMBLER ve B dilini kullanmıstı. C ise B dilinin yarattığı sınırlamaları ortadan kaldırmak icin tasarlanmıştır. İlk amacı işletim sisteminin yazılımı olduğu için cevre birimlerine, makine adreslerine ve belleğe kolaylıkla erişim imkanı sağlar.
Programlamacı için , programlama dili büyük önem taşımaktadır. Genel olarak yüksek seviyeli programlama dilleri ( basic, pascal vb.) düşük seviyeli programlama dillerine (Assembler) tercih edilmektedir. C genellikle bir orta seviyeli bilgisayar dili olarak adlandırılır.Orta seviye,olumsuz bir anlama sahip değildir: Bu,C' nin BASIC ya da PASCAL gibi üst seviyeli bir dilden daha zayıf, kullanımı zor ya da az gelişmiş olduğu anlamına gelmez. Yine bu C' nin bir bilgisayarın okuyabildiği gerçek makine kodunun sembolik ifadesi olan Assembler dili gibi düşük seviyeli bir dile benzediği anlamına da gelmez. C orta seviyeli bir dildir, çünkü yüksek seviyeli dillerin unsurlarıyla Assemblerin fonksiyonlarını birleştirir.
C dilinin genel özellikleri şu şekildedir:
Orta seviyeli bir dildir. Yazılan C kodu ile makine kodu arasında bağlantı kolaylıkla kurulabilir.
Sistem programlama dilidir. Bugün işletim sistemleri , derleyiciler, editörler gibi sistem programlarının hemen hepsi yoğun olarak C kodu içermektedir. Ancak sistem programlamanın dışında da birçok uygulamada C verimli olarak kullanılabilir.
Algoritmik bir dildir. Yalnızca dilin sintaks ve sematik yapısını bilmek yetmez. Problemleri çözebilecek bir algoritma bilgisine de ihtiyaç duyulur.
İfade gücü yüksek ve okunabilirlik özelliği kuvvetli bir dildir.
Çok esnektir. Bu yüzden programcının hata yapmayacak bir bilgiye ve deneyime sahip olması gerekir.
Atomik bir dildir.C de alt programlama tekniği ileri düzeyde kullanılmaktadır.
Güçlü bir dildir. Tasarım özellikleri çok iyidir. C ‘ye ilişkin yapıların ve operatörlerin bir kısmı daha sonra diğer diller tarafından da benimsenmiştir.
Verimli bir dildir. C programları seviyesi dolayısıyla daha hızlı çalışır.
Doğal bir dildir. C Bilgisayar sisteminin çalışma biçimiyle uyum içindedir.
Eğitimi zor bir dildir. Öğrenebilmek içindiğer dillerden daha fazla çaba gerekir.
Yapısal bir dildir.
C ++ ile nesne yönelimlilik özelliğine de sahip olmuştur.
C++ :
Nesneye yönelik programlama dilidir.
Birçok kişi C++ dilinin sadece C dilinin bir uzantısı ya da gelişmiş bir türü olduğuna inanır. Gerçekte C dili C++ dilinin atası olsa da, C++ yeni bir dildir ve C dilinden daha üstündür.
Programcıların C dilinden C++ diline geçmek istemelerinin nedeni, C++ dili ile nesneye yönelik programlamanın mümkün olmasıdır. Aslında C++ tamamen nesneye yönelik bir programlama dili değildir, nesneye yönelik programlamayı destekler ve nesneye yönelik olmayan kısımları da vardır. C++, C ve Objective C dillerinin özellilerinin birleştiği bir programlama dili olarak düşünülebilir, her iki dilin özelliklerini almış olduğu için oldukça geniş bir dildir.
İki dilin de özelliklerini içermesinin avantajları ve dezavantajları vardır. Zaten çok güçlü bir programlama dili olan C dilinin gücünü nesneye yönelik programlama tekniklerinin kullanılmasına izin vererek ile daha da arttırır fakat öğrenilmesi C dilinden daha zordur, özellikle daha önce nesneye yönelik programlama ile tanışık olmayan programcılar kendilerini farklı bir programlama mantığı içinde bulabilirler.
C++ dili C dilini ve ANSI C standardını tamamen destekler ve C dili gibi taşınabilir. Fakat değişik yazılım firmalarının C++ programlama paketlerinin bu standart özelliklerden başka C ve C++ dillerini genişleten özellikleri ve kütüphane fonksiyonları vardır ve bunların kullanımı programcıların işlerini kolaylaştırır fakat kaynak kodun taşınabilirliğini azaltır.
Nesneye yönelik programlamanın bir avantajı da takım çalışması yaparak büyük projelerin geliştirilmesini kolaylaştırmasıdır. Her programcı projenin bir kısmını geliştirebilir ya da daha önce benzer amaçlı bir proje için üretilmiş kodları kullanabilir. Daha sonra bu modüller aynen lego ev yapar gibi birleştirilerek proje oluşturulur. Programcılar tek başlarına büyük program geliştirmek yerine genel amaçlı program modülleri geliştirerek bunları kendi projelerinde kullanmak isteyen başka programcılara satabilirler.
Fakat şunu da düşünmek gerekir ki nesneye yönelik programlama (NYP) mucize yaratamaz. Yapısal programlama teknikleri kullanılarak yazılmış iyi bir program, NYP teknikleri kullanılarak yazılmış kötü bir programdan daha iyidir. Nesnelerin ve nesneye yönelik programlamanın daha ayrıntılı tanımlarını notların ikinci kısmında bulabilirsiniz.