Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

PROGRAMLAMA DİLLERİNİN EVRİMİ

Benzer bir sunumlar


... konulu sunumlar: "PROGRAMLAMA DİLLERİNİN EVRİMİ"— Sunum transkripti:

1 PROGRAMLAMA DİLLERİNİN EVRİMİ
Yılmaz Kılıçaslan

2 Sunum Planı Sınıf kavramının evrimine kısa bir bakış
Birinci Kuşak Diller İkinci Kuşak Diller Üçüncü Kuşak Diller Kuşak Boşluğu Nesneye Yönelik Programlama

3 Yazılım Mühendisliğini Tarihsel Eğilimleri
Yazılım mühendisliğinin tarihine iki eğilim damgasını vurmuştur: Küçük programlardan büyük programlara geçiş Yüksek düzeyli programlama dillerinin ortaya çıkışı

4 Makinelerden Problem Sahasına ...
Most new industrial-strength software systems are larger and more complex than their predecessors were even just a few years ago. This growth in complexity has prompted a significant amount of useful applied research in software engineering, particularly with regard to decomposition, abstraction, and hierarchy. The development of more expressive programming languages has complemented these advances. The trend has been a move away from languages that tell the computer what to do (imperative languages) toward languages that describe the key abstractions in the problem domain (declarative languages). (Booch, G. 1998)

5 Sınıflara Giden Soyutlama Süreci - 1
Wegner (1976), yüksek-düzeyli programlama dillerini, ilk kez kullandıkları dil özelliklerine dayanarak, bir kuşak sınıflamasına tabi tutmuştur: Birinci-Kuşak Diller ( ) FORTRAN I Matematiksel ifadeler ALGOL 58 Matematiksel ifadeler Flowmatic Matematiksel ifadeler IPL V Matematiksel ifadeler

6 Sınıflara Giden Soyutlama Süreci - 2
İkinci-Kuşak Diller (1959~1961) FORTRAN II Alt rutinler, bağımsız derleme ALGOL 60 Blok yapıları, veri tipleri COBOL Veri tanımlama, dosya işlemleri Lisp Liste işleme, işaretçiler, ‘garbage collection’

7 Sınıflara Giden Soyutlama Süreci - 3
Üçüncü-Kuşak Diller ( ) PL/1 FORTRAN + ALGOL + COBOL ALGOL 68 ALGOL 60’ın sıkı takipçisi Pascal ALGOL 60’ın gevşek takipçisi Simula Sınıflar, veri soyutlama

8 Sınıflara Giden Soyutlama Süreci - 4
Kuşak Boşluğu ( ) Birçok farklı programlama dili türedi ama çok azı varlığını sürdürebildi. Bu dönemde ortaya çıkan dillerin sayısı binlerle ifade edilebilecek miktardadır. Bugün neredeyse hiçbirimizin hatırlamadığı veya bilmediği birçok dil icat edilmiştir. Fred, Tranquil, Chaos bunlardan birkaçıdır. Bu sonuncusunun adı, dönemin kaotik niteliğiyle çok iyi örtüşmektedir.

9 Programcılıkta Kopernik Devrimi
Her kaos dönemi gibi, 1970 ile 1980 arası, bir kopuşun ya da sıçramanın habercisidir. 1973’teki Turing derslerinde, Bachman işlem merkezli bakış açısından veri merkezli bakış açısına geçişi, Kopernik devrimi ile gerçekleşen dünya merkezli evren modelinden güneş merkezli evren modeline geçişe benzetir.

10 Programlama Dillerinin Topolojisi - 1
The Topology of First- and Early Second-Generation Programming Languages

11 Programlama Dillerinin Topolojisi - 2
The Topology of Late Second- and Early Third-Generation Programming Languages

12 Programlama Dillerinin Topolojisi - 3
The Topology of Late Third-Generation Programming Languages

13 Programlama Dillerinin Topolojisi - 4
"The nature of abstractions that may be achieved through the use of procedures is well suited to the description of abstract operations, but is not particularly well suited to the description of abstract objects. This is a serious drawback, for in many applications, the complexity of the data objects to be manipulated contributes substantially to the overall complexity of the problem.” (Shankar 1984) The Topology of Small- to Moderate-Sized Applications Using Object-Based and Object-Oriented Programming Languages

14 ÖZET Programlama dillerinin evriminde itici güç makineden uzaklaşıp probleme yaklaşmak yönünde olmuştur. Yüksek düzeyli dillerin evrimi, algoritmik soyutlama ile başlamış, veri soyutlaması ile devam etmiştir. İki soyutlama süreci, sınıf yapısında birleşmiştir. PROGRAMLAMA İŞLEM SOYUTLAMA V ERİ SOYUTLAMA NESNEYE-DAYALI PROGRAMLAMA

15 Kaynaklar Booch, G Object-Oriented Analysis and Design. Addison-Wesley. Shankar, K Data Design: Types, Structures, and Abstractions. Handbook of Software Engineering. New York, NY: Van Nostrand Reinhold, p. 253. Wegner, P IEEE Transactions on Computers, December,


"PROGRAMLAMA DİLLERİNİN EVRİMİ" indir ppt

Benzer bir sunumlar


Google Reklamları