Programazio-lengoaien teoria

Wikipedia, Entziklopedia askea
Lambda minuskula.

Programazio-lengoaien teoria informatikaren adar bat da, programazio-lengoaien eta beren ezaugarrien diseinuaz, inplementazioaz, analisiaz, karakterizazioaz eta sailkapenaz arduratzen dena. Diziplina anitzeko eremu bat da, matematika, softwarearen ingeniaritza, hizkuntzalaritza eta zientzia kognitiboen jakintza-arloekin zerikusia (eta, zenbaitetan, bai eragina ere) duena. Informatikaren adar ezagun eta aintzatetsia da, eta, 2006ko dataz, ikerketagai garrantzitsu bat, emaitzak PLTari buruzko aldizkari berezitu nahiz informatika eta ingeniaritzako argitalpenetan, oro har, plazaratzen dituena. Unibertsitate mailako informatikako ikasketa-programa guztietan eskatzen da, gaur egun, arlo hau jorratzea.

Programazio-lengoaien teoriaren ikur bat, ofiziala ez bada ere, lambda letra greko minuskula da. Erabilera hau lambda kalkulutik dator, programazio-lengoaien ikertzaileek erruz erabiltzen duten eredu konputazionaletik, alegia. Programazioaren eta programazio-lengoaien gaineko testu eta artikulu askok erabiltzen dute lambda, modu batera edo bestera. Estructura e Interpretación de Programas de Ordenador testu-liburu klasikoaren azala ilustratzen du, eta Scheme programazio-lengoaiaren sortzaile diren Gerald Jay Sussman eta Guy Steele-k idatzitako lambda artikulu delako askoren tituluetan ageri da. Programazio-lengoaien teoriari buruzko gune ezagun batek Lambda the Ultimate (funtsezko lambda) du izena, Sussman eta Steeleren ohorez.

Historia[aldatu | aldatu iturburu kodea]

Programazio-lengoaien taula, taxonomiko eta kronologikoki antolatua.

Programazio-lengoaien teoria programazio-lengoaien beren garapenaren aurretik dator, nolabait. Lambda kalkulua, Alonzo Church, Max HL. Solis Villareal eta Stephen Cole Kleene-k 1930eko hamarkadan garatua, munduko lehen programazio-lengoaietakotzat hartzen da, nahiz eta bere helburua, programatzaileek sistema informatiko batentzako algoritmoak deskribatzeko bitarteko bat izatea baino gehiago, konputazioa modelatzea izan. Programazio-lengoaia funtzional askoren ezaugarria lambda kalkuluari [1] itxura fin bat ematea izan da, eta lengoaia asko kalkulu horren bidez deskribatzen dira.

Proposatu zen lehen berezko programazio-lengoaia Plankalkül izan zen, Konrad Zuse-k 40etan diseinatu zuena, baina ez zen plazaratu 1972a arte (eta ez zen inplementatu 2000a arte, Zuse hil eta bost urte geroago). Arrakasta eta sona handiz ezagutu zen estreinako programazio-lengoaia FORTRAN izan zen, 1954 eta 1957 bitartean IBMko ikertzaile liberatuz osatutako talde batek garatua, John Backus-en zuzendaritzapean. FORTRANen arrakastak zientzialari-batzorde baten sorrera ekarri zuen, programazio-lengoaia "unibertsal" bat garatzea helburu; ahalegin horren emaitza ALGOL 58 izan zen. Beste alde batetik, MITeko John McCarthy-k LISP programazio-lengoaia garatu zuen (Lambda kalkuluan oinarrituz), mundu akademikoan garatutako lehen lengoaia arrakastatsua. Hasierako ahalegin horien arrakasta zela-eta, programazio-lengoaien gaia 1960ko hamarkadan, eta bai handik aurrera ere, ikergai nagusietako bat bihurtu zen.

Hona hemen programazio-lengoaien teoriaren historian harrezkero giltzarri izan diren beste gertaera batzuk:

Azpiarloak eta eremu erlazionatuak[aldatu | aldatu iturburu kodea]

Hainbat azterketa-alor daude, programazio-lengoaien teoriaren beraren barrukoak edo, barrukoak izan gabe, berorrengan eragin handia dutenak; askotan nabariki gainjartzen dira.

  • Konpiladoreen teoria da konpiladoreen (edo, eskuarki, itzultzaileen) sorkuntzaren azpian dagoen oinarri formala; konpiladoreak: lengoaia batean idatzitako programa beste forma batera itzultzen duten programak. Konpiladore baten ekintzak honela sailkatzen dira tradizionalki: analisi sintaktikoa (eskaneatzea eta parseatzea), analisi semantikoa (programak egin behar duena zehaztea), optimizazioa (errendimendua neurri batean hobetzea, exekuzio-abiaduraren aldetik tipikoki) eta kodearen sorkuntza (programa baliokide baten sortzea, nahi den lengoaian: CPU baten agindu multzoari dagokionean, eskuarki).
  • Moten teoria mota-sistemen azterketaz arduratzen da; mota-sistemak "programa-portaera batzuen absentzia frogatzen duten metodo sintaktiko tratagarriak dira, sententziak konputatzen dituzten balio moten arabera sailkatzen dituztenak." (Types and Programming Languages, MIT Press, 2002). Programazio-lengoaia asko beren mota-sistemen ezaugarriek bereizten dituzte.
  • Semantika formala ordenagailu-programa eta programazio-lengoaien portaeraren zehaztapen formala da.
  • Programen transformazioa programa bat forma (lengoaia) batetik beste batera eraldatzeko prozesua da; programen analisia programa bat bere ezaugarri nagusien arabera aztertzean datza (programa-errore klase zenbaiten falta, esaterako).
  • Exekuzio-garaiko sistemez hitz egiten denean, programazio-lengoaien eta berorien osagaientzako runtime inguruneen garapenaz hitz egiten da, hau da, makina birtualak, zaborraren bilketa eta kanpo-funtzioentzako interfazeak.
  • Programazio-lengoaien analisi konparatiboak, berriz, programazio-lengoaiak mota desberdinetan sailkatzen ditu, beren ezaugarrietan oinarrituz; programazio-lengoaia kategoria zabalei konputazio-paradigma esaten zaie maiz.
  • Metaprogramazioa ordena handiagoko programen sorkuntza da; programa horiek, exekutatzen direnean, programak sortzen dituzte (beste lengoaia batean edo jatorrizko lengoaiaren azpimultzo batean, beharbada) emaitzatzat.
  • Lengoaia dedikatuak problemak domeinu jakin batean bereziki eta modu eraginkor batean ebazteko sortuak izan diren lengoaiak dira.

Gainera, PLTa baliatzen da matematiken, software-ingeniaritzaren eta hizkuntzalaritzaren beste adar batzuetaz, bai eta zientzia kognitiboarenez ere.

PLTari buruzko aldizkari eta argitalpen berezituak[aldatu | aldatu iturburu kodea]

Hona hemen programazio-lengoaien teoriaren gaineko ikerketaren berri ematen duten aldizkari zenbait:

  • ACM Transactions on Programming Languages and Systems [2]
  • Computer Languages, Systems, and Structures [3]
  • Journal of Functional Programming, The
  • Journal of Functional and Logic Programming, The
  • Journal of Symbolic Computation, The
  • Theoretical Computer Science

Bibliografia osoago bat [4]-n aurki daiteke; ikus, halaber, informatikari buruzko argitalpenen zerrenda.

Ikus, orobat[aldatu | aldatu iturburu kodea]

Kanpo estekak[aldatu | aldatu iturburu kodea]

Kanpo estekak[aldatu | aldatu iturburu kodea]