dedeefendi
21-02-07, 23:13
Linux'da Programlama
Programlama Dilleri
Linux ortaminda pek cok dil icin derleyici bulunmaktadir. Bunlarin bir kismi ticari, bir kismi da bedava yazilimlardir. Bu incelemede, agirlikli olarak bedava yazilimlar uzerinde durulacaktir.
Ek bilgi icin Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.) adresine bakiniz.
C ve C++
gcc, g++
GNU C/C++ derleyicisi.
32 bit makinalarda calismak uzere gelistirilmistir.
Butun yaygin Unix makinalarda calisir.
Komut satirindan giris alir ya da bir Makefile hazirlanir.
Slackware dagitiminda yer alir.FORTRAN
g77
GNU Fortran 77 derleyicisi.
Slackware dagitiminda yer alir.f2c
Standart FORTRAN 77 kodunu standart C koduna cevirir.PASCAL
GNU-Pascal
32 bit derleyici.
Pek cok platformda (DOS, OS/2, cesitli UNIX makinalar) calisir.
Kodu C dilinde yazilmis.
ISO 7185, ISO 10206 ve Borland Pascal 7.0'in buyuk bir kismi ile uyumlu.
ftp://kampi.hut.fi/jtv/gnu-pascalFPK Pascal
32 bit derleyici (64K dizi siniri ve 640 K program ve data siniri yok)
PC isletim sistemlerinde (DOS, OS/2, Linux) calisir.
Borland Pascal 7.0 ve Delphi II'nin bir kismi ile uyumlu.
Kodu Pascal'da yazilmistir. Kendi kaynak kodunu derleyebilir.
Nesneye Dayali Programlama destegi vardir.
C++'da oldugu gibi ``operator overloading'' vardir.
FAQ: Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)
ftp://ftp.uni-freiburg.de/pub/pc/msdos/fpk-pascal/index.html (ftp://ftp.uni-freiburg.de/pub/pc/msdos/fpk-pascal/index.html)LISP
gcl
GNU Common Lisp
Slackware dagitiminda yer alir.CMUCL
CMU Common Lisp
Kodu ancak kendisinin calisan bir kopyasi ile yeniden derlenebilir.
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.CLISP
Common Lisp
ANSI standardinin cogunu kapsar.
CLX isimli bir X11 arayuzu vardir.
ftp://sunsite.unc.edu:/pub/Linux/devel/lang/lisp (ftp://sunsite.unc.edu/pub/Linux/devel/lang/lisp)COBOL
ACUCOBOL-85
ticari bir yazilim
pek cok platformda (ornegin DEC UNIX, HPUX, MSDOS, Solaris, Ultrix, Unix, Windows, Windows NT, Xenix) calisir.
Interaktif kaynak kodu hata ayiklayicisi (debugger) var.
C arayuzu var.
Kullanici Grafik Arayuzu (GUI) var.
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)COBCY
Cobol'dan C'ye cevirici
Cobol dilinin pek cok ozelligine destek verir. Ancak ``index file'' yapisinda eksiklikler vardir.
ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/cobcy-0.2.tar.gz (ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/cobcy-0.2.tar.gz)BASIC
YABASIC 2.0 (Yet Another BASIC for Unix and Win95)
Pek cok platformda (AIX, Solaris, OSF/1, HPUX, SGI, LINUX, ULTRIX vb) calisir.
BASIC dilinin tum temel ozellikleri desteklenmektedir. Ek olarak bazi grafik yetenekler bulunmaktadir.
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)Diger diller
SML/NJ
Smalltalk/X (Linux 1.1.* icin)
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)Gardens Point Modula (Modula-2)
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)SRC Modulo-3 for Linux
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)Programci Editorleri
NEDIT
NEDIT program ve normal text dosyalar yazmaya uygun, grafik kullanici arabirimi (GUI) olan bir editordur. GUI tabanli editorlerde bulunan standart ozelliklere sahiptir. Bu ozellilere ek olarak program yazmayi kolaylastiran bazi yetenekleri vardir.
"Indentation" : "Auto Indent" secenegi etkinse "return" tusuna basildiginda yeni satirin basi bir ust satirin hizasina getirilir. Belirli tus kombinasyonlari kullanarak, blok halinde birkac satirin iceri veya disari kaydirilmasi (indent) mumkundur.
"Tab" ayarlamasi: Unix'de yer alan cogu text editorde standart "tab" 8 karakterden olusur. Program yazarken bu uygun degildir. NEDIT tab karakterinin ayarlanmasina olanak verir. Ancak standart tab kullanilmamasinin sakincalari vardir. Diger editorler ve bazi programlar yanlis yorumlayabilir veya tanimayabilirler. Bu yuzden NEDIT, "emulate tabs" secenegi etkin ise, "tab" tusuna basildigi zaman, belirlenen sayida bosluk koyar. Boylece baska bir editor kullanilsa da problem cikmaz.
Satir numaralari: Metin icinde istenen numarali satira gitmek veya bir satirin numarasini ogrenmek mumkundur.
Parantez eslestirme: Metin icerisindeki icice eslesmis parantez, koseli parantez, suslu parantez ve diger karakterlerin gosterilmesi mumkundur. Bunun icin otomatik eslestirme modu ve esini bulma komutu vardir. Otomatik modda, her parantezin esi, uzerine gelindiginde, otomatik olarak gosterilir. Diger modda ise, uzerinde bulunulan parantezin esi sorgulanabilir. Bulununca, bu parantez gosterilir.
NEDIT #include formatini tanir. Dolayisiyla program kodunda o satir isaretlenip, ``open selected'' secenegi kullanirsa, o dosya acilir.
Degiskenlerin ve fonksiyonlarin tanimlandiklari yerler bulunabilir. Unix'de yer alan "ctags" fonksiyonu kullanilarak bir "tags" indeksi olusturulur. NEDIT bu dosyayi anlayabilir. Yuklenmis bir "tags" dosyasi varsa, herhangi bir degiskenin veya fonksiyonun uzerine gidip isaretlendikten sonra "find definition" secenegi yardimiyla tanimlandigi yer bulunabilir.Hata Ayiklayicilar
Hata ayiklayicilardan beklene temel islevler sunlardir:
Programi, giris parametrelerini de vererek baslatabilme
Belirlenen kosullar gerceklestiginde programin durmasinin saglanmasi
Program durduktan sonra, o ana kadar neler oldugunun incelenmesi
Programda degisiklikler yapilarak, bir hatanin giderilmesi ve dolayisiyla diger hatalarin etkisinin gorulebilmesiGDB - GNU Debugger
Unix'de en yaygin kullanilan hata ayiklayicilardan biridir.
X11 arayuzu vardir (xxgdb).
Slackware dagitiminda yer alir. DDD - Data Display Debugger
gdb, dbx veya xdb'den biri olan bir alt derleyici kullanir.
Her uc derleyicinin sundugu komut satiri arayuzune ek olarak grafik bir kullanici arayuzu vardir.
Ozellikleri:
Hata ayiklamak uzere, programin kendisi, "core dump" dosyasi veya kaynak kodu acilabilir.
Programin calismasinin izlenmesi:
Programa giris argumanlari verilebilir.
Programin belirli bir satira geldiginde veya belirli bir fonksiyon calistiginda durmasi (breakpoint) saglanabilir. Kalici ve gecici "breakpoint" konabilir. Kalici olanlarda, program her o noktadan gecisinde durur, gecici olanlarda ise bir kere o noktaya gelindikten ve program durduktan sonra breakpoint kaldirilir. Breakpoint konan noktada program durduktan sonra istendigi zaman tekrar program calismasina devam edebilir.
Program adim adim calistirilabilir. "step" secenegi kullanilirsa, o andaki komut satiri yurutulur ve bir sonraki komut satirina gelinerek durulur. Bu komut satiri bir baska fonksiyonun icinde de olabilir. "next" secenegi secilirse icinde bulunulan fonksiyondaki bir sonraki komut satirina gelince durulur. Bu arada herhangi bir fonksiyon cagrisi varsa, fonksiyonun icine girilmeden, tamami yurutulur.
Degiskenler ve yiginin incelenmesi:
Programin calismasi durdugunda, o asamaya nasil gelindiginin ogrenilmesi yararli olabilir. Bunun icin yiginin incelenmesi olanagi vardir.
Degiskenlerin incelenebilmesi icin grafik veri goruntuleme penceresi vardir. Bu pencerede degiskenlerin adi ve degerleri goruntulenir. Program her durdugunda bu penceredeki veriler guncellenir.
Bir degiskenin degerini degistirmek ve programin calismaya yeni degerle devam etmesini saglamak mumkundur.
Makina kodu duzeyinde hata ayiklama:
Programin makina kodunun goruntulendigi bir pencere acilabilir.
Makina kodunun incelenmesi ve program akisinin makina kodu duzeyinde izlenebilmesi icin, yukarida program kodu inceleme ve izleme icin anlatilan yeteneklerin hepsi gecerlidir. Yalniz "next" yerine "nexti" ve "step" yerine de "stepi" kullanilir.
Makinanin saklayici icerikleri goruntulenebilir.
Programlama Dilleri
Linux ortaminda pek cok dil icin derleyici bulunmaktadir. Bunlarin bir kismi ticari, bir kismi da bedava yazilimlardir. Bu incelemede, agirlikli olarak bedava yazilimlar uzerinde durulacaktir.
Ek bilgi icin Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.) adresine bakiniz.
C ve C++
gcc, g++
GNU C/C++ derleyicisi.
32 bit makinalarda calismak uzere gelistirilmistir.
Butun yaygin Unix makinalarda calisir.
Komut satirindan giris alir ya da bir Makefile hazirlanir.
Slackware dagitiminda yer alir.FORTRAN
g77
GNU Fortran 77 derleyicisi.
Slackware dagitiminda yer alir.f2c
Standart FORTRAN 77 kodunu standart C koduna cevirir.PASCAL
GNU-Pascal
32 bit derleyici.
Pek cok platformda (DOS, OS/2, cesitli UNIX makinalar) calisir.
Kodu C dilinde yazilmis.
ISO 7185, ISO 10206 ve Borland Pascal 7.0'in buyuk bir kismi ile uyumlu.
ftp://kampi.hut.fi/jtv/gnu-pascalFPK Pascal
32 bit derleyici (64K dizi siniri ve 640 K program ve data siniri yok)
PC isletim sistemlerinde (DOS, OS/2, Linux) calisir.
Borland Pascal 7.0 ve Delphi II'nin bir kismi ile uyumlu.
Kodu Pascal'da yazilmistir. Kendi kaynak kodunu derleyebilir.
Nesneye Dayali Programlama destegi vardir.
C++'da oldugu gibi ``operator overloading'' vardir.
FAQ: Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)
ftp://ftp.uni-freiburg.de/pub/pc/msdos/fpk-pascal/index.html (ftp://ftp.uni-freiburg.de/pub/pc/msdos/fpk-pascal/index.html)LISP
gcl
GNU Common Lisp
Slackware dagitiminda yer alir.CMUCL
CMU Common Lisp
Kodu ancak kendisinin calisan bir kopyasi ile yeniden derlenebilir.
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.CLISP
Common Lisp
ANSI standardinin cogunu kapsar.
CLX isimli bir X11 arayuzu vardir.
ftp://sunsite.unc.edu:/pub/Linux/devel/lang/lisp (ftp://sunsite.unc.edu/pub/Linux/devel/lang/lisp)COBOL
ACUCOBOL-85
ticari bir yazilim
pek cok platformda (ornegin DEC UNIX, HPUX, MSDOS, Solaris, Ultrix, Unix, Windows, Windows NT, Xenix) calisir.
Interaktif kaynak kodu hata ayiklayicisi (debugger) var.
C arayuzu var.
Kullanici Grafik Arayuzu (GUI) var.
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)COBCY
Cobol'dan C'ye cevirici
Cobol dilinin pek cok ozelligine destek verir. Ancak ``index file'' yapisinda eksiklikler vardir.
ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/cobcy-0.2.tar.gz (ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/cobcy-0.2.tar.gz)BASIC
YABASIC 2.0 (Yet Another BASIC for Unix and Win95)
Pek cok platformda (AIX, Solaris, OSF/1, HPUX, SGI, LINUX, ULTRIX vb) calisir.
BASIC dilinin tum temel ozellikleri desteklenmektedir. Ek olarak bazi grafik yetenekler bulunmaktadir.
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)Diger diller
SML/NJ
Smalltalk/X (Linux 1.1.* icin)
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)Gardens Point Modula (Modula-2)
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)SRC Modulo-3 for Linux
Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor. (Linki görüntüleyebilmek için <a href="%2$s"><strong>Üye</strong></a> olmanız gerekiyor.)Programci Editorleri
NEDIT
NEDIT program ve normal text dosyalar yazmaya uygun, grafik kullanici arabirimi (GUI) olan bir editordur. GUI tabanli editorlerde bulunan standart ozelliklere sahiptir. Bu ozellilere ek olarak program yazmayi kolaylastiran bazi yetenekleri vardir.
"Indentation" : "Auto Indent" secenegi etkinse "return" tusuna basildiginda yeni satirin basi bir ust satirin hizasina getirilir. Belirli tus kombinasyonlari kullanarak, blok halinde birkac satirin iceri veya disari kaydirilmasi (indent) mumkundur.
"Tab" ayarlamasi: Unix'de yer alan cogu text editorde standart "tab" 8 karakterden olusur. Program yazarken bu uygun degildir. NEDIT tab karakterinin ayarlanmasina olanak verir. Ancak standart tab kullanilmamasinin sakincalari vardir. Diger editorler ve bazi programlar yanlis yorumlayabilir veya tanimayabilirler. Bu yuzden NEDIT, "emulate tabs" secenegi etkin ise, "tab" tusuna basildigi zaman, belirlenen sayida bosluk koyar. Boylece baska bir editor kullanilsa da problem cikmaz.
Satir numaralari: Metin icinde istenen numarali satira gitmek veya bir satirin numarasini ogrenmek mumkundur.
Parantez eslestirme: Metin icerisindeki icice eslesmis parantez, koseli parantez, suslu parantez ve diger karakterlerin gosterilmesi mumkundur. Bunun icin otomatik eslestirme modu ve esini bulma komutu vardir. Otomatik modda, her parantezin esi, uzerine gelindiginde, otomatik olarak gosterilir. Diger modda ise, uzerinde bulunulan parantezin esi sorgulanabilir. Bulununca, bu parantez gosterilir.
NEDIT #include formatini tanir. Dolayisiyla program kodunda o satir isaretlenip, ``open selected'' secenegi kullanirsa, o dosya acilir.
Degiskenlerin ve fonksiyonlarin tanimlandiklari yerler bulunabilir. Unix'de yer alan "ctags" fonksiyonu kullanilarak bir "tags" indeksi olusturulur. NEDIT bu dosyayi anlayabilir. Yuklenmis bir "tags" dosyasi varsa, herhangi bir degiskenin veya fonksiyonun uzerine gidip isaretlendikten sonra "find definition" secenegi yardimiyla tanimlandigi yer bulunabilir.Hata Ayiklayicilar
Hata ayiklayicilardan beklene temel islevler sunlardir:
Programi, giris parametrelerini de vererek baslatabilme
Belirlenen kosullar gerceklestiginde programin durmasinin saglanmasi
Program durduktan sonra, o ana kadar neler oldugunun incelenmesi
Programda degisiklikler yapilarak, bir hatanin giderilmesi ve dolayisiyla diger hatalarin etkisinin gorulebilmesiGDB - GNU Debugger
Unix'de en yaygin kullanilan hata ayiklayicilardan biridir.
X11 arayuzu vardir (xxgdb).
Slackware dagitiminda yer alir. DDD - Data Display Debugger
gdb, dbx veya xdb'den biri olan bir alt derleyici kullanir.
Her uc derleyicinin sundugu komut satiri arayuzune ek olarak grafik bir kullanici arayuzu vardir.
Ozellikleri:
Hata ayiklamak uzere, programin kendisi, "core dump" dosyasi veya kaynak kodu acilabilir.
Programin calismasinin izlenmesi:
Programa giris argumanlari verilebilir.
Programin belirli bir satira geldiginde veya belirli bir fonksiyon calistiginda durmasi (breakpoint) saglanabilir. Kalici ve gecici "breakpoint" konabilir. Kalici olanlarda, program her o noktadan gecisinde durur, gecici olanlarda ise bir kere o noktaya gelindikten ve program durduktan sonra breakpoint kaldirilir. Breakpoint konan noktada program durduktan sonra istendigi zaman tekrar program calismasina devam edebilir.
Program adim adim calistirilabilir. "step" secenegi kullanilirsa, o andaki komut satiri yurutulur ve bir sonraki komut satirina gelinerek durulur. Bu komut satiri bir baska fonksiyonun icinde de olabilir. "next" secenegi secilirse icinde bulunulan fonksiyondaki bir sonraki komut satirina gelince durulur. Bu arada herhangi bir fonksiyon cagrisi varsa, fonksiyonun icine girilmeden, tamami yurutulur.
Degiskenler ve yiginin incelenmesi:
Programin calismasi durdugunda, o asamaya nasil gelindiginin ogrenilmesi yararli olabilir. Bunun icin yiginin incelenmesi olanagi vardir.
Degiskenlerin incelenebilmesi icin grafik veri goruntuleme penceresi vardir. Bu pencerede degiskenlerin adi ve degerleri goruntulenir. Program her durdugunda bu penceredeki veriler guncellenir.
Bir degiskenin degerini degistirmek ve programin calismaya yeni degerle devam etmesini saglamak mumkundur.
Makina kodu duzeyinde hata ayiklama:
Programin makina kodunun goruntulendigi bir pencere acilabilir.
Makina kodunun incelenmesi ve program akisinin makina kodu duzeyinde izlenebilmesi icin, yukarida program kodu inceleme ve izleme icin anlatilan yeteneklerin hepsi gecerlidir. Yalniz "next" yerine "nexti" ve "step" yerine de "stepi" kullanilir.
Makinanin saklayici icerikleri goruntulenebilir.