Programozási nyelvelmélet - Programming language theory

Image
A görög λ ( lambda ) kisbetű nem hivatalos szimbóluma a programozási nyelv elméletének. Ez a szóhasználat fakad lambda kalkulus , a számítási modell által bevezetett Alonzo Church 1930 és széles körben használt programozási nyelv a kutatók. Díszíti a Számítógépes programok felépítése és értelmezése című klasszikus szöveg borítóját , valamint az úgynevezett Lambda Papers of 1975–1980 címét , amelyet Gerald Jay Sussman és Guy Steele , a Scheme programozási nyelv fejlesztői írtak .

A programozási nyelv elmélete ( PLT ) a számítástechnika olyan ága, amely foglalkozik a programozási nyelvek néven ismert formális nyelvek és azok egyedi jellemzőinek tervezésével, megvalósításával, elemzésével, jellemzésével és osztályozásával . A számítástechnika tudományterületébe tartozik, mind a matematikától , mind a szoftvertechnikától , a nyelvtudománytól , sőt a kognitív természettől függ és befolyásolja azokat . A számítástechnika elismert ágává és aktív kutatási területté vált, eredményeit számos, a PLT-nek szentelt folyóiratban , valamint általános számítástechnikai és mérnöki publikációkban publikálták.

Történelem

Bizonyos szempontból a programozási nyelv elméletének története még a programozási nyelvek fejlődését is megelőzi. A lambda-kalkulus által kifejlesztett Alonzo Church és Stephen Cole Kleene 1930, megítélése szerint bizonyos, hogy a világ első programozási nyelv, bár ez volt a célja, hogy a modell számítási ahelyett, hogy egy eszközt programozók írják algoritmusok számítógépes rendszer . Számos modern funkcionális programozási nyelvről leírták, hogy "vékony burkolatot" biztosítanak a lambda számításán, és sokukat egyszerűen leírják annak szempontjából.

Az első programozási nyelv, amelyet kitaláltak, a Plankalkül volt, amelyet Konrad Zuse tervezett az 1940-es években, de 1972-ig nyilvánosan nem ismert (és csak 1998-ban hajtották végre). Az első széles körben ismert és sikeres magas szintű programozási nyelv a Fortran volt , amelyet 1954 és 1957 között fejlesztett ki az IBM kutatói csoport John Backus vezetésével . A FORTRAN sikere egy tudósok bizottságának megalakulásához vezetett egy "egyetemes" számítógépes nyelv kifejlesztésére; erőfeszítésük eredménye az ALGOL 58 volt . Külön-külön, John McCarthy, az MIT fejlesztette ki a Lisp-t , az első nyelvet, amelynek eredete az egyetemeken sikeres volt. E kezdeti erőfeszítések sikerével a programozási nyelvek az 1960-as években és azon túl is aktív kutatási témává váltak.

Néhány további fontos esemény a programozási nyelvelmélet történetében azóta:

1950-es évek

  • Noam Chomsky kidolgozta a Chomsky hierarchiát a nyelvészet területén, egy olyan felfedezés, amely közvetlenül befolyásolta a programozási nyelv elméletét és a számítástechnika egyéb ágait.

1960-as évek

1970-es évek

1980-as évek

1990-es évek

Részterületek és a kapcsolódó területek

Számos olyan terület létezik, amelyek vagy a programozási nyelv elméletén belül találhatók, vagy amelyek mélyreható hatást gyakorolnak rá; ezek közül sok jelentős átfedésben van. Ezenkívül a PLT a matematika számos más ágát is felhasználja , beleértve a kiszámíthatóság elméletét , a kategóriaelméletet és a halmazelméletet .

Formális szemantika

A formális szemantika a számítógépes programok és a programozási nyelvek viselkedésének formális meghatározása. A számítógépes program szemantikájának vagy "jelentésének" leírására három általános megközelítés a denotációs , az operatív és az axiomatikus szemantika .

Típuselmélet

A típuselmélet a típusú rendszerek tanulmányozása ; amelyek "kezelhető szintaktikai módszerek bizonyos programmagatartások hiányának bizonyítására azáltal, hogy a kifejezéseket az általuk kiszámított értékek szerint osztályozzák." Számos programozási nyelvet megkülönböztetnek a típusrendszereik jellemzői.

Programelemzés és átalakítás

A programelemzés a program megvizsgálásának és a legfontosabb jellemzők (például a programhibák osztályainak hiánya) meghatározásának általános problémája . A programtranszformáció az a folyamat, amikor a programot egy formában (nyelven) átalakítják egy másik formává.

Összehasonlító programozási nyelv elemzése

Az összehasonlító programozási nyelv elemzés arra törekszik, hogy a programozási nyelveket jellemzőik alapján különböző típusokba sorolja; a programozási nyelvek széles kategóriáit gyakran programozási paradigmának nevezik .

Általános és metaprogramozás

A metaprogramozás a magasabb rendű programok generálása, amelyek végrehajtásuk eredményeként programokat hoznak létre (esetleg egy másik nyelven, vagy az eredeti nyelv egy részhalmazában).

Tartományspecifikus nyelvek

A tartományspecifikus nyelvek olyan nyelvek, amelyek a tartomány egy adott részének problémáinak hatékony megoldására készültek.

Fordító szerkesztése

A fordítóelmélet a fordítók (vagy általánosabban a fordítók ) írásának elmélete ; olyan programok, amelyek az egyik nyelven írt programot más formába fordítják. A fordító műveletei hagyományosan szintaxis elemzésre ( szkennelés és elemzés ), szemantikai elemzésre (a program tennivalójának meghatározása), optimalizálásra (a program teljesítményének javítására, ahogyan azt néhány mutató mutatja; jellemzően végrehajtási sebesség) és kódgenerálásra bontják fel. (egyenértékű program létrehozása és kimenete valamilyen célnyelven; gyakran egy CPU utasításkészlete ).

Futásidejű rendszerek

A futásidejű rendszerek a programozási nyelv futásidejű környezeteinek és azok összetevőinek fejlesztésére utalnak , ideértve a virtuális gépeket , a szemétszállítást és az idegen funkciós interfészeket .

Folyóiratok, publikációk és konferenciák

A konferenciák az elsődleges helyek a kutatások bemutatására a programozási nyelvekben. A legismertebb konferenciák a Symposium on Principles of Programming Languages (POPL), a programozási nyelv tervezésének és megvalósításának (PLDI), a funkcionális programozással foglalkozó nemzetközi konferencia (ICFP), az objektumorientált programozásról, rendszerekről, nyelvekről és alkalmazásokról szóló nemzetközi konferencia ( OOPSLA) és a programozási nyelvek és operációs rendszerek építészeti támogatásáról szóló nemzetközi konferencia (ASPLOS) .

A PLT kutatásokat közzétevő jelentős folyóiratok között szerepel az ACM tranzakciók a programozási nyelveken és rendszereken (TOPLAS), a funkcionális programozás folyóirata (JFP), a funkcionális és logikai programozás folyóirata , valamint a magasabb rendű és szimbolikus számítás .

Lásd még

Hivatkozások

További irodalom

Külső linkek