|
![]() |
|
|||||||
| Kayıt ol | Cezalilar | Tüm Albümler | Yardım | Üye Listesi | Ajanda | Arama | Bugünki Mesajlar | Forumları Okundu Kabul Et |
|
||
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
![]() Üyelik tarihi: Sep 2008
Üye No: 8
Mesajlar: 3,691
Konular: 1966
Referanslari: 5
Arkadaslari: (11)
Nerden: KüRDiSTaN
Meslek: pc emekcisi :)
Interests: ASİ
Biyografi: kece kudan
Cinsiyet: .
Kullandigi Tesekkür: 30 Aldigi Tesekkürler: 253
Tecrübe Puanı: 150
Aldigi Puanlar: 3620 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Ruh Hali:
Son Aktivitesi: Dün :
18:31
Toplam Online Süresi: 6 Gün 10 Saat 44 Dakika 11 Saniye
|
1. Bilimsel ve mühendislik uygulama dilleri:
Pascal, C (C programlama dili üniversitelerdeki akademik çalışmalarda da yoğun olarak kullanılıyor.), FORTRAN 2. Veri tabanı dilleri: XBASE, (Foxpro, Dbase, CA-Clipper), Oracle Forms, Visual Foxpro. 3. Genel amaçlı programlama dilleri: Pascal, C, Basic. 4. Yapay zeka dilleri: Prolog, Lisp. 5. Simulasyon dilleri GPSS, Simula 67 6. Makro Dilleri (Scripting ********s) awk, Perl, Python, Tcl, **********. 7. Sistem programlama dilleri: Sembolik makine dilleri, BCPL, C, C++, occam. Günümüzde sistem yazılımların neredeyse tamamının C dili ile yazıldığını söyleyebiliriz. Örnek vermek gerekirse UNIX işletim sisteminin % 80'i C dili ile geri kalanı ise sembolik makine dili ile yazılmıştır. Bu işletim sistemi ilk olarak BELL labaratuarlarında oluşturulmuştur. Kaynak kodları gizli tutulmamış, böylece çeşitli kollardan geliştirilmesi mümkün olmuştur. Daha sonra geliştirilen UNIX bazlı işletim sistemi uygulamalarına değişik isimler verilmiştir. C bilimsel ve mühendislik alanlarına kullanılabilen genel amaçlı bir sistem programlama dilidir. Programlama Dillerinin Değerleme Ölçütleri Kaynaklar şu an halen kullanımda olan yaklaşık 1000 - 1500 programlama dilinin varlığından söz ediyor. Neden bu kadar fazla programlama dili var? Bu kadar fazla programlama dili olmasına karşın neden halen yeni programlama dilleri tasarlanıyor? Bir programlama dilini diğerine ya da diğerlerine göre daha farklı kılan özellikler neler olabilir? Bir programlama dilini tanımlamak istesek hangi sıfatları kullanabiliriz? Programlama dilleri hakkındaki bu sorulara yanıt verebilmemiz için elimizde değerlendirme yapmamıza olanak sağlayacak ölçütler olmalıdır. Bu ölçütleri kısaca inceleyelim: Verimlilik (efficiency) Bu özelliğe programın hızlı çalışma özelliği diyebiliriz. Programın çalışma hızı pek çok faktöre bağlıdır. Algoritmanın da hız üzerinde etkisi vardır. Çalışmanın yapıldığı bilgisayarın da doğal olarak hız üzerinde etkisi vardır. Verimliliği bir programlama dilinde yazılmış bir programın hızlı çalışması ile ilgili bir kavram olarak düşünebiliriz. Bu açıdan bakıldığında C verimli bir dildir. Veri türleri ve yapıları (data types and structures) Çeşitli veri türlerini (tamsayı, gerçek sayı, karakter...) ve veri yapılarını (diziler, yapılar vs.) destekleme yeteneğidir. Veri yapıları, veri türlerinin oluşturduğu mantıksal birliklerdir. Örneğin C ve Pascal dilleri veri yapıları bakımından zengin dillerdir. Alt programlama yeteneği (Modularity) Bir bütün olarak çözülmesi zor olan problemlerin parçalara ayrılması ve bu parçaların ayrı ayrı çözümlenmesinden sonra parçalar arasındaki koordinasyonun sağlanması programada sık başvurulan bir yöntemdir. Bir programlama dili buna olanak sağlayacak araçlara sahipse alp programlama yeteneği vardır diyebilirriz. Alt programlama yeteneği bir programlama dilinin, programı parçalar halinde yazmayı desteklemesi anlamına gelir. (C modülaritesi çok yüksek bir dildir) Alt programlama Yapısal Programlama tekniği'nin de ayrılmaz bir parçasıdır. Alt programlamanın getirdiği bazı önemli avantajlar vardır. Alt programlar kodu küçültür. Çok tekrarlanan işlemlerin alt programlar kullanılarak yazılması çalışabilir programın kodunu küçültür. Çünkü alt programlar yalnızca bir kere çalışabilir kod içine yazılırlar. Ama program kodu alt programın olduğu yere atlatılarak bu bölgenin defalarca çalıştırılması sağlanabilir. Alt programlama algılamayı kolaylaştırır, okunabilirliği artırır. Alt programlama kaynak kodun test edilebilirliğini artırır. Kaynak kodun daha kolay güncelleştirilmesi ve yeniden kullanılabilme olanağını artırır. Alt programlamanın en önemli avantajlarından biri de genel amaçlı kodlar yazarak bu yazılan kodları birden fazla projede kullanabilmektir. (reusability) C alt programlama yeteneği yüksek bir dildir. C'de alt programlara fonksiyon denir. Fonksiyonlar C Dili'nin yapıtaşlarıdır. Yapısallık (structural programming support) Yapısallık bir programlama tekniğidir. Bugün artık hemen hemen bütün programlama dilleri yapısal programlamayı az çok destekleyecek bir şekilde geliştirilmiştir. Yapısal Programlama fikri 1960'lı yıllarda geliştirilmiştir. Yapısal programlama tekniği dört ana ilke üzerine kurulmuştur : 1. Böl ve üstesinden gel (divide and conquer) Yapısal programlama tekniğinde, tek bir bütün olarak çözüm getirmek zor olan programlar, daha küçük ve üstesinden daha kolay gelinebilecek parçalara bölünürler. Bu parçalar fonksiyon, prosedür, subroutine, alt program vs. olarak isimlendiriler. Alt program yapısının getirdiği avantajlar modularite konusunda yukarıda açıklanmıştır. 2. Veri gizleme (Data hiding) Yapısal programlama tekniğinde, programın diğer parçalarından ulaşılamayan, yalnızca belli bir faaliyet alanı olan, yani kodun yalnızca belli bir kısmında faaliyet gösterecek değişkenler tanımlanabilir. Bu tür değişkenler genel olarak "yerel değişkenler" (local variables) olarak isimlendirilirler. Değişkenlerin faaliyet alanlarının kısıtlanabilmesi hata yapma riskini azalttığı gibi, programların daha kolay değiştirilebilmesini ve program parçalarının başka programlarda tekrar kullanabilmesini de sağlar. Alt programların, ve daha geniş şekliyle modüllerin, bir işi nasıl yaptığı bilgisi, o alt programın ya da modülün kullanıcısından gizlenir. Kullanıcı için (client) alt programın ya da modülün işi nasıl yaptığı değil, ne iş yaptığı önemlidir. 3. Tek giriş ve Tek çıkış (single entry single exit) Yapısal programlama tekniğini destekleyen dillerde her bir altprogram parçasına girmek için tek bir giriş ve tek bir çıkış mekanizması vardır. Bu mekanizma programın yukarıdan aşağı olarak akışı ile uyum halindedir. Program parçalarına ancak tek bir noktadan girilebilir. 4. Döngüler ve diğer kontrol yapıları. Artık hemen hemen kullanımda olan bütün programlama dilleri az ya da çok Yapısal Programlama tekniğini desteklemektedir. Zira bu teknik 60'lı yıllar için devrim niteliğindeydi. Esneklik (flexibility) Esneklik programlama dilinin programcıyı kısıtlamaması anlamına gelir.Esnek dillerde birçok işlem, hata yapma riski artmasına karşın rağmen kullanıcı için serbest bırakılmıştır. Programcı bu serbestlikten ancak yetkin bir programcıysa bir fayda sağlayabilir. Fakat programcı deneyimsiz ise bu esneklikten zarar görebilir. Öğrenme ve öğretme kolaylığı (pedagogy) Her programlama dilini öğrenmenin ve öğrenilen programlama dilinde uygulama geliştirebilmenin zorluğu aynı değildir. Genel olarak programlama dillerinin seviyesi yükseldikçe, öğrenme ve bu programlama dilini başkalarına öğretme kolaylaşır, öğrenme için harcanacak çaba ve zaman azalır. Bugün yaygın olarak kullanılan yüksek seviyeli programlı dillerinin bu derece popüler olmasının önemli bir nedeni de bu dillerin çok kolay öğrenilebilmesidir. Ne yazık ki C öğrenimi zor ve zahmetli bir dildir. Genellik (generality) Programlama dillerinin çok çeşitli uygulamalarda etkin olarak kullanılabilmesidir. Örneğin COBOL mühendislik uygulamalarında tercih edilmez zaten ticari uygulamalar için tasarlanmıştır, Clipper ya da FOXPRO veri tabanı dilleridir. Oysa PASCAL, BASIC daha genel amaçlı dillerdir. C dili de bir sistem programlama dili olarak doğmasına karşın, güçlü yapısından dolayı, kısa bir süre içinde, genel amaçlı bir dil haline gelmiştir. Giriş / Çıkış (input / output, I / O facility) kolaylığı Sıralı, indeksli ve rasgele dosyalara erişme, veritabanı kayıtlarını geri alma, güncelleştirme ve sorgulama yeteneğidir. Veritabanı programlama dillerinin (DBASE, PARADOX vs.) bu yetenekleri diğerlerinden daha üstündür ve bu dillerin en tipik özelliklerini oluşturur. Fakat C giriş çıkış kolaylığı kuvvetli olmayan bir dildir. C'de veri tabanlarının yönetimi için özel kütüphanelerin kullanılması gerekir. Okunabilirlik (readability) Okunabilirlik, kaynak kodun çabuk ve iyi bir biçimde algılanabilmesi anlamına gelen bir terimdir. Kaynak kodun okunabilirliğinde sorumluluk büyük ölçüde programı yazan kişidedir. Fakat yine verimlilik de olduğu gibi dillerin bir kısmında okunabilirliği güçlendiren yapı ve mekanizmalar bulunduğu için bu özellik bir ölçüde dilin tasarımına da bağlıdır. En iyi program kodu, sanıldığı gibi "en zekice yazılmış fakat kimsenin anlayamayacağı" kod değildir. Birçok durumda iyi programcılar okunabilirliği hiçbirşeye feda etmek istemezler. Çünkü okunabilir bir program kolay algılanabilme özelliğinden dolayı seneler sonra bile güncelleştirmeye olanak sağlar. Birçok kişinin ortak kodlar üzerinde çalıştığı geniş kapsamlı projelerde okunabilirlik daha da önem kazanmaktadır. C de okunabilirlik en fazla vurgulanan kavramlardan biridir. Biz de kursumuz boyunca okunabilirlik konusuna sık sık değineceğiz ve C programlarının okunabilirliği konusunda bazı temel prensipleri benimseyeceğiz. Taşınabilirlik (portability) Bir sistem için yazılmış olan kaynak kodun başka bir sisteme götürüldüğünde, hatasız bir biçimde derlenerek, doğru bir şekilde çalıştırılabilmesi demektir. Taşınabilirlik standardizasyon anlamına da gelir. Programlama dilleri (ISO International Standard Organization) ve ANSI (American National Standard Institute) tarafından standardize edilirler. 1989 yılında standartlaştırma çalışmaları biten C Dili, diğer programlama dillerinden daha taşınabilir bir programlama dilidir. Nesne Yönelimlilik (object orientation) Nesne yönelimlilik de bir programlama tekniğidir. Yapısal programlama Tekniği 1960 yılarında gündeme gelmişken, Nesne Yönelimli Programlama Tekniği 1980'li yıllarda popüler olmuştur. Bu teknik kaynak kodların çok büyümesi sonucunda ortaya çıkan gereksinim yüzünden geliştirilmiştir. C dilinin geliştirildiği yıllarda, akla gelebilecek en büyük programlar ancak onbin satırlar mertebesindeydi, ancak kullanıcıların bilgisayar programlarından beklentilerinin artması ve grafik arayüzünün artık etkin olarak kullanılmasıyla, bilgisayar programlarının boyutu çok büyümüş, yüzbin satırlarla hatta milyon satırlarla ölçülebilir hale gelmiştir. Nesne yönelimli programlama Tekniği, herşeyden önce büyük programların yazılması için tasarlanmış bir tekniktir. C dilinin yaratıldığı yıllarda böyle bir tekniğin ortaya çıkması söz konusu değildi, çünkü zaten programlar bugünkü ölçülere göre çok küçüktü. Nesne yönelimli programlama Tekniğinin yaygın olarak kullanılmaya başlanmasıyla birlikte bir çok programlama dilinin bünyesine bu tekniğin uygulanmasını kolaylaştırıcı araçlar eklenek, yeni versiyonları oluşturulmuştur. Örneğin C'nin nesne yönelimli programlama tekniğini uygulayabilmek için Bjarne Stroustrup tarafından geliştirilmiş haline C++ denmektedir. C++ dili C dili baz olarak alınıp, geliştirilmiş yeni bir programlama dilidir. C++ dilini iyi öğrenebilmek için öncelikle C dilini çok iyi öğrenmek gerekir. Pascal diline eklemeler yapılarak Delphi dili, Cobol dilinden yenilemesiyle OOCobol, Ada dilinin yenilenmesiyle ise ADA 95 dilleri geliştirilmiştir. Bazı programlama dilleri ise doğrudan N.Y.P.T'ni destekleyecek şekilde tasarlanarak geliştirilmiştir. Örneğin JAVA dili C++ dilinin basitleştirilmiş biçimi olup daha çok Internet uygulamalarında kullanılmaktadır. Başka bir örnek olarak da Eiffel dili verilebilir. C Nasıl bir Programlama Dilidir? Bütün bunlardan sonra yukarıda açıkladığımız kavramları da kullanarak C dilini aşağıdaki şekilde tanımlayabiliriz : C orta seviyeli bir programlama dilidir. Yapısal diğer programlama dillerine göre C dilinin seviyesi daha düşüktür. C dili hem yüksek seviyeli dillerin, kontrol deyimleri, veri yapıları gibi avantajlarını bünyesinde barındırıyor, aynı zamanda bitsel operatörler gibi makine kodu deyimlerini yansıtan operatörlerlere sahip. Yani hem makinaya yakın hem de insan algılamasına. Zaten çok tercih edilmesinin en önemli nedenlerinden biri de bu. C bir sistem programlama dilidir. Sistem Programlama ne anlama geliyor? Donanımın yönetilmesi, kontrolu ve denetimi için yazılan, doğrudan donanımla ilişkiye giren programlara sistem programı diyoruz. Örneğin, işletim sistemleri, derleyiciler, yorumlayıcılar, aygıt sürücüleri (device drivers), bilgisayarların iletişimine ilişkin programlar, otomasyon programları, sistem programlarıdır. Diğer uygulama programlarına destek veren yazılımlar da çoğunlukla sistem programları olarak ele alınırlar. C'den önce sistem programları assembly dillerle yazılıyordu.Sistem programlarının yazılmasında hemen hemen alternatifsiz olduğunu söyleyebiliriz. Bugün cep telefonlarından, uçaklara kadar her yerde C kodları çalışmaktadır. Örneğin Boeing uçaklarında 100.000 satırdan fazla C kodu çalıştığı bilinmektedir. C algoritmik bir dildir. C'de program yazmak için yalnızca dilin sentaks ve sementik yapısını bilmek yetmez genel bir algoritma bilgisi de gerekir. C diğer dillerle kıyaslandığında taşınabilirliği çok yüksek olan bir dildir. Çünkü 1989 yılından bu yana genel kabul görmüş standartlara sahiptir. İfade gücü yüksek , okunabilirlik özelliği güçlü bir dildir. C çok esnektir. Diğer dillerde olduğu gibi programcıya kısıtlamalar getirmez. Güçlü bir dildir. Çok iyi bir biçimde tasarlanmıştır. C'ye ilişkin operatörlerin ve yapıların bir çoğu daha sonra başka programlama dilleri tarafından da benimsenmiştir. C verimli bir dildir. Seviyesinden dolayı hızlı çalışır. Verimlilik konusunda assembly diller ile rekabet edebilir. C doğal bir dildir. C bilgisayar sisteminin biçimiyle uyum içindedir. C küçük bir dildir. Yeni sistemler için derleyici yazmak zor değildir. C'nin eğitimi diğer bilgisayar dillerine göre daha zordur. C Programlama Dili'nin Tarihi C dilinin tarihini incelediğimizde C dilinin UNIX işletim sisteminin bir yan ürünü olarak doğduğunu söyleyebiliriz. UNIX işletim sisteminin orjinal ilk versiyonunu Bell Labaratuarları'nda çalışan Ken Thompson tek başına yazmıştı ve UNIX'in bu ilk versiyonu DEC PDP-7 isimli bilgisayarda çalışıyordu. DEC PDP-7 ilk mini bilgisayarlardan biriydi ve ana belleği yalnızca 16 K (16 MB değil!). Yıllardan 1969'du. Zamanının diğer işletim sistemleri gibi UNIX de assembly dilinde yazılmıştı. Assembly dilinde yazılan programları geliştirmek çok zor ve zahmetli olduğundan, Thompson UNIX işletim sistemini daha geliştirebilmek için, makine dilinden daha yüksek seviyeli bir dile gereksinim duydu. Bu amaçla küçük bir programlama dili tasarladı. Kendi dilini tasarlarken Thompson, 1960 yıllarının ortalarında Martin Richards tarafından geliştirilmiş BCPL dilinden yola çıktı. (BCPL = Business Common Programming ********. Bu dil de CPL = Cambridge Programming ********'den türetilmiştir. CPL'in kaynağı da tüm zamanların en eski ve en etkili dillerinden biri olan ALGOL 60'dır. ALGOL 60 Pascal, ADA, Modula2 dillerinin de atasıdır, bu dillere bu yüzden C dilinin kuzenleri de diyebiliriz. Aşağıda ALGOL 60 dil ailesi görülmektedir: Algol 60 Algol 68 Algol W Simula 67 BCPL C Pascal C++ Java Modula-2 Ada Delphi Oberon Thompson geliştirdiği bu dilin ismini B koydu. Dennis Ritchie UNIX projesine katılınca B dilinde programlamaya başladı. B dili daha da geliştirilmişti ve artık daha yeni teknoloji olan PDP-11 bilgisayarlarda çalışıyordu. Thompson UNIX işletim sisteminin bir kısmını B dilinde tekrar yazdı. Artık 1971 yılına gelindiğinde B dilinin PDP-11 bilgisayarlar ve UNIX işletim sisteminin geliştirilmesi için çok uygun olmadığı iyice ortaya çıktı. Bu yüzden Ritchie B programlama dilinin daha ileri bir versiyonunu geliştirmeye başladı. Oluşturduğu dili ilk önce NB (new B) olarak isimlendirdi. Ama geliştirdiği dil B dilinden iyice kopmaya ve ayrı bir karakter göstermeye başlayınca dilin ismini de C olarak değiştirdi. 1973 yılında UNIX işletim sisteminin büyük bir kısmı C dili ile tekrar yazıldı. Ken Thompson ve Dennis Ritchie Unix İşletim Sistemi üzerinde çalışırken (Yıl: 1972) C'nin evrimi ve gelişmesi 70'li yıllarda da devam etti. Geniş kitleler tarafından tanınması ve kullanılmaya başlaması 1978 yılında Dennis Ritchie ve Brian Kernighan tarafından yazılan "The C Programming ********" kitabı ile olmuştur. Bu kitap aynı zamanda yazılım konusunda yazılan en iyi eserlerden biri olarak değerlendirilmektedir. C'nin standardize edilmesine kadar olan dönemde bu kitap çoğunluğun benimsediği genel kabul gören gayriresmi bir standard vazifesi de görmüştür. 1970'li yıllarda C programcılarının sayısı azdı ve bunlardan çoğu UNIX kullanıcılarıydı. Ama artık 80'li yıllar gelince C nin kullanımı UNIX sınırlarını aştı, ve farklı işletim sistemlerinde çalışan derleyiciler piyasaya çıktı, C dili de IBM PC'lerde yoğun olarak kullanılmaya başladı. C'nin artan popülaritesi problemleri de beraberinde getirdi. Derleyici yazan kişiler, referans olarak Ritchie ve Kernighan'ın kitabını esas alıyorlardı ama söz konusu kitapta bazı noktalar çok da detaylı bir biçime açıklanmamıştı. Özellikle hangi noktaların C dilinin bir özelliği hangi noktaların ise UNIX işletim sisteminin bir özelliği olduğu o kadar açık olmadığı için bir takım karışıklıklar ortaya çıkıyordu. Böylece derleyici yazanların ürünlerinde de farklılıklar ortaya çıkıyordu. Ayrıca kitabın yayınlanmasından sonra da dilde bir takım geliştirmeler, iyileştirmeler, değişiklikler yapıldığı için, birbirinden çok farklı derleyiciler piyasada kullanılmaya başlanmıştı. Artık C dilinin standardizasyonu neredeyse zorunlu bir hale gelmişti! C'nin standardizasyon çalışmaları 1983 yılında ANSI (American National Standards Institute ) gözetiminde ve desteğinde başladı. Yapılan birçok değişiklikten sonra standart çalışmaları 1988 yılında sona erdi ve 1989 yılının Aralık ayında ANSI C standardı Jim Brodie başkanlğında X3.159 - 1989 numarasıyla resmi olarak onaylandı. 1990 yılında ise ISO/IEC 9899 - 1990 numarasıyla ISO (International Standards Organization) tarafından standardizasyonu kabul edildi. Standardizasyonu tamamlandıktan sonra C yüksek oranda taşınabilir bir sistem programlama dili haline gelmiştir. Günümüzde de sistem programlarının (derleyiciler, editörler, işletim sistemleri) çoğu C dili ile yazılmaktadır. __________________ |
|
|
|
![]() |
| Bookmarks |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|
![]() |
Design By: JB-Team
Powered by JBulletin® JiyanBoard Version
Copyright ©2007 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
|
![]() |