Paul Grahamek Bel programazio-lengoaia berria iragarri zuen

Bel hizkuntza Bel hizkuntzan idatzita dago.

Paul Grahamek Bel programazio-lengoaia berria iragarri zuen
1960an, John McCarthyk Lisp deskribatu zuen, programazio-lengoaia mota berri bat. "Mota berria" esaten dut, Lisp hizkuntza berri bat ez zelako, hizkuntzak deskribatzeko modu berri bat baizik.

Lisp definitzeko, enuntziatu-multzo txiki batekin hasi zen, axioma moduko bat, eta gero hizkuntzaren beraren interprete bat idazteko erabiltzen zuen.

Ez zen programazio-lengoaia bat ohiko zentzuan deskribatzea helburu, ordenagailu bati zer egin behar zuen esateko erabiltzen den hizkuntza bat. 1960ko lanean, Lisp Turing makinaren antzeko konputazio eredu formal gisa ulertu zen. McCarthyk ez zuen pentsatu ordenagailuetan erabiltzea Steve Russellek, bere graduondoko ikasleak, proposatu zuen arte.

1960an Lisp-ek ez zituen programazio-lengoaietan ohikoak diren ezaugarririk. Adibidez, ez zegoen zenbakirik, akatsik edo I/O. Beraz, ordenagailuak programatzeko erabiltzen diren hizkuntzen oinarri gisa Lisp erabiltzen zuten pertsonek ezaugarri hauek beraiek gehitu behar izan zituzten. Eta hori planteamendu axiomatikoa alde batera utzita egin zuten.

Hortaz, Lisp-en garapena bi fasetan –eta itxuraz nahiko independenteak– ​​egin zuen: etapa formal batean, 1960ko paper batean sartua, eta ezarpen fase batean, hizkuntza ordenagailuetan exekutatzeko egokitu eta hedatu zen. Lan nagusia, inplementatutako aukeren kopuruaren arabera neurtzen bada, ezarpen fasean egin zen. 1960ko Lisp, Common Lisp-era itzulia, 53 lerro baino ez ditu. Adierazpenak interpretatzeko beharrezkoa dena baino ez du egiten. Ezarpen fasean gainerako guztia gehitu zen.

Nire hipotesia da, bere historia zaila izan arren, Lispek bere garapena bi fasetan gertatu izanaren onura atera zuela; Hizkuntza bat definitzeko jatorrizko ariketak bere interpretea bertan idatziz eman ziola ezaugarririk onenak Lisperi. Eta hala bada, zergatik ez joan harago?

Bel galderari erantzuteko saiakera da: zer gertatzen da, fase formaletik exekuzio fasera igaro beharrean, trantsizio hori ahalik eta beranduen egingo balitz? Ikuspegi axiomatikoa erabiltzen jarraitzen baduzu programazio-lengoaia osotik hurbil dagoen zerbait izan arte, zer axioma beharko dituzu eta nolakoa izango da sortzen den hizkuntza?

Argi izan nahi dut zer den Bel eta zer ez. McCarthyren 1960ko Lisp baino askoz ezaugarri gehiago baditu ere, Bel oraindik bere fase formalean dagoen produktua da. 1960ko paper batean deskribatutako Lisp bezala, ez da programatzeko erabil dezakezun hizkuntza bat. Batez ere, McCarthy-ren Lisp-ek bezala, eraginkortasunari ez diola axola. Bel-i zerbait gehitzen diodanean, gehiketaren esanahia deskribatzen dut inplementazio eraginkor bat ematen saiatu gabe.

Zertarako? Zergatik luzatu etapa formala? Erantzun bat ikuspegi axiomatikoak nora eraman gaitzakeen ikustea da, eta hori ariketa interesgarria da berez. Ordenagailuak guk nahiko genukeen bezain indartsuak balira, nolakoak izango lirateke hizkuntzak?

Baina, gainera, uste dut posible dela Bel-en oinarritutako inplementazio eraginkorra idaztea murrizketak gehituz. Adierazpen-ahalmena, argitasuna eta eraginkortasuna dituen hizkuntza bat nahi baduzu, baliteke adierazpen-ahalmen eta argitasunetik hastea eta gero murrizketak gehitzea, kontrako norabidean joatea baino.

Beraz, Bel-en oinarritutako inplementazio bat idazten saiatu nahi baduzu, aurrera. Lehen erabiltzaileetako bat izango naiz.

Azken batean, aurreko euskalkietako zenbait gauza erreproduzitu nituen. Edo haien diseinatzaileek ondo asmatu zuten, edo lehenago erabilitako dialektoek eraginda, ez dut erantzun egokia ikusten - denborak esango du. Lisp konbentzioetatik gehiegi ez urruntzen ere saiatu nintzen. Horrek esan nahi du Lisp-en konbentzioetatik aldenduta ikusten baduzu, arrazoiren bat egon daitekeela.

Hizkuntzaren deskribapen jarraitua hemen.

Eskerrik asko itzulpenagatik: Denis Mitropolsky

PS

Iturria: www.habr.com

Gehitu iruzkin berria