Title: PROGRAMLAMA DILLERININ EVRIMI
1PROGRAMLAMA DILLERININ EVRIMI
Yilmaz Kiliçaslan
2Sunum Plani
- Sinif kavraminin evrimine kisa bir bakis
- Birinci Kusak Diller
- Ikinci Kusak Diller
- Üçüncü Kusak Diller
- Kusak Boslugu
- Nesneye Yönelik Programlama
3Yazilim Mühendisligini Tarihsel Egilimleri
- Yazilim mühendisliginin tarihine iki egilim
damgasini vurmustur - Küçük programlardan büyük programlara geçis
- Yüksek düzeyli programlama dillerinin ortaya
çikisi
4Makinelerden Problem Sahasina ...
- 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)
5Siniflara Giden Soyutlama Süreci - 1
- Wegner (1976), yüksek-düzeyli programlama
dillerini, ilk kez kullandiklari dil
özelliklerine dayanarak, bir kusak siniflamasina
tabi tutmustur - Birinci-Kusak Diller (1954-1958)
-
- FORTRAN I Matematiksel ifadeler
- ALGOL 58 Matematiksel ifadeler
- Flowmatic Matematiksel ifadeler
- IPL V Matematiksel ifadeler
6Siniflara Giden Soyutlama Süreci - 2
- Ikinci-Kusak Diller (19591961)
- FORTRAN II Alt rutinler, bagimsiz derleme
- ALGOL 60 Blok yapilari, veri tipleri
- COBOL Veri tanimlama, dosya islemleri
- Lisp Liste isleme, isaretçiler, garbage
collection
7Siniflara Giden Soyutlama Süreci - 3
- Üçüncü-Kusak Diller (1962-1970)
- PL/1 FORTRAN ALGOL COBOL
- ALGOL 68 ALGOL 60in siki takipçisi
- Pascal ALGOL 60in gevsek takipçisi
- Simula Siniflar, veri soyutlama
8Siniflara Giden Soyutlama Süreci - 4
- Kusak Boslugu (1970-1980)
- Birçok farkli programlama dili türedi ama çok
azi varligini sürdürebildi. Bu dönemde ortaya
çikan dillerin sayisi binlerle ifade edilebilecek
miktardadir. Bugün neredeyse hiçbirimizin
hatirlamadigi veya bilmedigi birçok dil icat
edilmistir. Fred, Tranquil, Chaos bunlardan
birkaçidir. Bu sonuncusunun adi, dönemin kaotik
niteligiyle çok iyi örtüsmektedir.
9Programcilikta Kopernik Devrimi
- Her kaos dönemi gibi, 1970 ile 1980 arasi, bir
kopusun ya da siçramanin habercisidir. - 1973teki Turing derslerinde, Bachman islem
merkezli bakis açisindan veri merkezli bakis
açisina geçisi, Kopernik devrimi ile gerçeklesen
dünya merkezli evren modelinden günes merkezli
evren modeline geçise benzetir.
10Programlama Dillerinin Topolojisi - 1
The Topology of First- and Early
Second-Generation Programming Languages
11Programlama Dillerinin Topolojisi - 2
The Topology of Late Second- and Early
Third-Generation Programming Languages
12Programlama Dillerinin Topolojisi - 3
The Topology of Late Third-Generation Programming
Languages
13Programlama 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 uzaklasip probleme yaklasmak yönünde
olmustur. - Yüksek düzeyli dillerin evrimi, algoritmik
soyutlama ile baslamis, veri soyutlamasi ile
devam etmistir. - Iki soyutlama süreci, sinif yapisinda
birlesmistir.
PROGRAMLAMA
ISLEM SOYUTLAMA
V ERI SOYUTLAMA
NESNEYE-DAYALI PROGRAMLAMA
15Kaynaklar
- Booch, G. 1998. Object-Oriented Analysis and
Design. Addison-Wesley. - Shankar, K. 1984. Data Design Types, Structures,
and Abstractions. Handbook of Software
Engineering. New York, NY Van Nostrand Reinhold,
p. 253. - Wegner, P. 1976. IEEE Transactions on Computers,
December, 1207-1225.