Paul Graham njoftoi një gjuhë të re programimi Bel

Gjuha Bel është shkruar në gjuhën Bel.

Paul Graham njoftoi një gjuhë të re programimi Bel
Në vitin 1960, John McCarthy përshkroi Lisp, një lloj i ri i gjuhës programuese. Them "tip i ri" sepse Lisp nuk ishte thjesht një gjuhë e re, por një mënyrë e re për të përshkruar gjuhët.

Për të përcaktuar Lisp-in, ai filloi me një grup të vogël pohimesh, një lloj aksiomash, të cilat më pas i përdori për të shkruar një përkthyes për vetë gjuhën.

Nuk kishte si qëllim të përshkruante një gjuhë programimi në kuptimin e zakonshëm - një gjuhë që përdoret për t'i treguar një kompjuteri se çfarë të bëjë. Në punën e tij të vitit 1960, Lisp u kuptua si një model zyrtar i llogaritjes i ngjashëm me Makinën Turing. McCarthy nuk mendoi ta përdorte atë në kompjuter derisa Steve Russell, studenti i tij i diplomuar, e sugjeroi atë.

Lisp në vitin 1960 nuk kishte veçoritë e zakonshme për gjuhët e programimit. Për shembull, nuk kishte numra, gabime ose I/O. Pra, njerëzit që përdorën Lisp si bazë për gjuhët e përdorura për programimin e kompjuterëve duhej t'i shtonin vetë këto veçori. Dhe ata e bënë këtë duke braktisur qasjen aksiomatike.

Kështu, zhvillimi i Lisp vazhdoi në dy - dhe në dukje mjaft të pavarura - faza: një fazë formale, e prezantuar në një punim të vitit 1960 dhe një fazë zbatimi, në të cilën gjuha u përshtat dhe u zgjerua për të ekzekutuar në kompjuterë. Puna kryesore, nëse matet me numrin e mundësive të zbatuara, u zhvillua në fazën e zbatimit. Lisp nga viti 1960, i përkthyer në Common Lisp, përmban vetëm 53 rreshta. Ai bën vetëm atë që është e nevojshme për të interpretuar shprehjet. Gjithçka tjetër u shtua në fazën e zbatimit.

Hipoteza ime është se, pavarësisht historisë së saj të vështirë, Lisp përfitoi nga fakti se zhvillimi i tij ndodhi në dy faza; se ushtrimi origjinal i përcaktimit të një gjuhe duke shkruar interpretuesin e saj në të i dha Lisp-it cilësitë e tij më të mira. Dhe nëse po, pse të mos shkoni më tej?

Bel është një përpjekje për t'iu përgjigjur pyetjes: po sikur, në vend që të kalonte nga faza formale në fazën e ekzekutimit në një fazë të hershme, ky kalim të bëhej sa më vonë që të ishte e mundur? Nëse vazhdoni të përdorni qasjen aksiomatike derisa të keni diçka afër një gjuhe programimi të plotë, çfarë aksiomash do t'ju nevojiten dhe si do të duket gjuha që rezulton?

Dua të jem i qartë se çfarë është Bel dhe çfarë nuk është. Edhe pse ka shumë më tepër veçori sesa Lisp i McCarthy-it 1960, Bel është ende një produkt në fazën e tij zyrtare. Ashtu si Lisp, i përshkruar në një punim të vitit 1960, nuk është një gjuhë që mund ta përdorni për të programuar. Kryesisht sepse, si McCarthy's Lisp, nuk i intereson efikasiteti. Kur i shtoj diçka Belit, përshkruaj kuptimin e shtesës pa u përpjekur të siguroj një zbatim efikas.

Per cfare? Pse të zgjasni fazën formale? Një përgjigje është të shohim se ku mund të na çojë qasja aksiomatike, që është një ushtrim interesant në vetvete. Nëse kompjuterët do të ishin aq të fuqishëm sa ne do të donim të ishin, si do të dukeshin gjuhët?

Por unë gjithashtu besoj se është e mundur të shkruhet një zbatim efikas i bazuar në Bel duke shtuar kufizime. Nëse dëshironi një gjuhë që ka fuqi shprehëse, qartësi dhe efikasitet, mund të ia vlen të filloni me fuqinë dhe qartësinë shprehëse, dhe më pas të shtoni kufizime, në vend që të shkoni në drejtimin e kundërt.

Pra, nëse doni të provoni të shkruani një zbatim të bazuar në Bel, vazhdoni. Unë do të jem një nga përdoruesit e parë.

Në fund të fundit, unë riprodhova disa gjëra nga dialektet e mëparshme. Ose projektuesit e tyre e kanë kuptuar mirë, ose duke u ndikuar nga dialektet e përdorura më parë, nuk e shoh përgjigjen e duhur - koha do ta tregojë. Gjithashtu u përpoqa të mos largohesha shumë nga konventat e Lisp-it. Që do të thotë se nëse shihni një largim nga konventat e Lisp, mund të ketë një arsye për këtë.

Përshkrimi i vazhdueshëm i gjuhës këtu.

Faleminderit për përkthimin: Denis Mitropolsky

PS

Burimi: www.habr.com

Shto një koment