Programozás történeti áttekintése

Előzmények

A számítástechnika kezdetén elterjedt (egyeduralkodó) volt a mérnökpult használata, a gép és az ember kommunikációja bináris nyelven zajlott. A gépi kódú programozás nem tette lehetővé komplex, általános jellegű programok készítését (a programok csak egy megadott feladatra születnek), megjelennek az alacsony szintű (assembly) nyelvek (a gépi utasításkódokat az angol nyelvi megfelelőik rövidítésével – mnemonikokkal – jelzik, a bináris adatszerkezeteket felváltja a hexadecimális ábrázolásmód). A hardver fejlődése bonyolultabb programok készítését tette lehetővé, kialakul a „szoftverkrízis”: a tesztelt programok az üzemeltetés során javíthatatlan hibákat tartalmaznak (nem volt javítási lehetőség).  A hardver gyorsabban fejlődik, mint a szoftver, mivel a termékek gyorsan elavultak, keményen ellenálltak a módosításoknak.

Programozási nyelvek fejlődése

Az ’50-es évek elején az IBM-nél megkonstruálják a Fortrant. Létrehozásának oka a gépi kód alkalmazásának kényelmetlenné válása, valamint az automatizálás lehetőségének felmerülése. A Fortran tudományos, műszaki nyelv, szövegfeldolgozásra alkalmatlan, viszont alkalmas matematikai műveletek végzésére. Újabb verziói miatt 2002-ben is élő nyelv, a szociológiai, kémiai, fizikai statisztikai számításoknak kb. felét ma is Fortrannal végzik. Az ’50-es évek második felében az amerikai hadügyminisztérium benyújtja kérését az IBM-nek: készítsenek a feltételeiknek megfelelő magas szintű programnyelvet. Megszületik a Cobol, amely adatfeldolgozásra, pénzügyi, gazdasági, nyilvántartási feladatokra alkalmas. Innentől az IBM Fortrant és Cobolt szállít a gépeihez. 1960-ban az IBM európai központjában létrehozzák az Algol60-t. Ez az első matematikai értelemben definiált nyelv. Hivatkozási nyelve is van, rendezett fogalomrendszerrel rendelkezik. Az IBM nem támogatja, ennek ellenére nagy jelentőségű, konstrukciója ma is hat. Ekkortól kezdve az Algol60 az algoritmus-leíró szabvány, a későbbi nyelvek vagy belőle indulnak ki, vagy tagadják. Az Algol60 tagadására épülő nyelvek: pl. LISP (a mesterséges intelligencia támogatására fejlesztették ki), APL (eszközrendszere még ma is egyedülálló).

’60-as évek első fele: Mindenki nyelvet gyárt. Több száz nyelv születik, általában az Algol60-ra hivatkoznak. (pl. BASIC, de csak a ’80-as években válik világméretűvé) ’60-as évek közepe: Az IBM elhatározza, hogy a nyelvek kavalkádjában rendet teremt. Olyan nyelvet akarnak alkotni, amely egyesíti az eddigi nyelvek előnyeit, és operációs rendszer írására is alkalmas. Így jön létre a PL/1. A nyelv túl bonyolultra sikerült, sok mindent megpróbáltak belezsúfolni. Új fogalmak (köztük egyedülállóak is) jelentek meg, pl. az alnyelv (subset). Az alnyelvek (A-tól F-ig) eszközrendszere halmazszerűen épül egymásra. Legszűkebb az A halmaz, ez a minimális, az F a teljes eszközrendszert tartalmazza. A szakma a PL/1-t alkalmatlannak nyilvánítja operációs rendszer írására, és az eddigi nyelveket használja fel. 1967: SIMULA67. Egy teljesen eltérő filozófiát vezet be, mert objektumorientált. 1968: ALGOL68. Olyan bonyolultra tervezték, hogy egy ideig fordítóprogramja sem volt. Elméleti jelentőségű. 1971: Wirth, aki más jelentős nyelvek létrehozásában is segédkezett, megkonstruálja a PASCAL-t. Standard algoritmus-leíró nyelv, átveszi az Algol60 szerepét. Eszközrendszere szűkös, rengeteg implementációja létezik, rengeteg eltéréssel. A gyakorlatban is jelentős, pl. a közoktatásban az első számú nyelv. A PROLOG Európában, Franciaországban születik meg, a mesterséges intelligencia kutatás támogatására.

’70-es évek közepe: Az amerikai hadügyminisztérium újabb kívánságlistát nyújt be, melynek eredménye az ADA. Ez a nyelv saját kategóriájában a csúcs, minden benne van, ami kell. Bonyolult, az elméletben kulcsnyelv, de gyakorlatban is jelentős. (pl. a NATO-ban alkalmazzák) ’70-es évek vége: C nyelv. Az ősnyelvek mellett új szerepet játszik, bizonyos verziói a

’80-as évektől kezdve a szakma nyelvének számítanak. Az első magas szintű nyelv, amin operációs rendszert valósítanak meg. ’80-as évek: Jelentős nyelvet nem konstruálnak.

– SMALLTALK: A ’80-as években fejlődik ki. Az első vizuális kezelőfelületű nyelv.
– EIFFEL: Csak az elméleti szerepe jelentős.
– C++: Ma alapvető szerepe van.

’90-es évek: JAVA. Ma a Java „a” nyelv.