1 / 15

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

PROGRAMLAMA DİLLERİNİN EVRİMİ. Yılmaz Kılıçaslan. 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. Yazılım Mühendisliğini Tarihsel Eğilimleri.

cian
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 (1954-1958) • 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 (1962-1970) • 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 (1970-1980) 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 tothe description of abstract operations, but is not particularly well suited to the description ofabstractobjects. This is a serious drawback, for in many applications, the complexity of thedata 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. 1998. Object-Oriented Analysis and Design. Addison-Wesley. • Shankar, K. 1984. Data Design: Types, Structures, and Abstractions. Handbook ofSoftware Engineering. New York, NY: Van Nostrand Reinhold, p. 253. • Wegner, P. 1976. IEEE Transactions on Computers, December, 1207-1225.

More Related