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

NĂ« vitin 1960, John McCarthy pĂ«rshkroi Lisp-in â njĂ« lloj tĂ« ri gjuhe programimi. Them «lloj tĂ« ri» sepse Lisp-i paraqiste jo vetĂ«m njĂ« gjuhĂ« tĂ« re, por njĂ« mĂ«nyrĂ« tĂ« re pĂ«r tĂ« pĂ«rshkruar gjuhĂ«t.
Për të përcaktuar Lisp-in, ai filloi me një grup të vogël operatorësh, një lloj aksionesh, që më pas i përdori për të shkruar një interpretues për vetë gjuhën.
Ai nuk kishte si qĂ«llim tĂ« pĂ«rshkruante njĂ« gjuhĂ« programimi nĂ« kuptimin e zakonshĂ«m â njĂ« gjuhĂ« e pĂ«rdorur pĂ«r tĂ« treguar kompjuterit se çfarĂ« duhet tĂ« bĂ«jĂ«. NĂ« punimin e tij tĂ« vitit 1960, Lisp-i kuptohej si njĂ« model formal llogaritjeje i ngjashĂ«m me makinĂ«n Turing. McCarthy nuk e kishte menduar pĂ«rdorimin e saj nĂ« kompjuterĂ« derisa Steve Russell, diplomanti i tij, e propozoi kĂ«tĂ«.
Në Lisp-in e vitit 1960 nuk kishte mundësi që ishin të zakonshme për gjuhët e programimit. Për shembull, nuk kishte numra, gabime ose hyrje/dale. Prandaj, ata që e përdornin Lisp-in si bazë për gjuhët që ishin të përdorura për programimin e kompjuterëve, duhej t'i shtonin këto mundësi vetë. Dhe ata e bënë këtë duke hequr dorë nga qasja aksionomatik.
KĂ«shtu, zhvillimi i Lisp ka ecur nĂ« dy â dhe, duket, mjaft tĂ« pavarura â etapa: njĂ« etapĂ« formale, e pĂ«rfaqĂ«suar nĂ« punĂ«n e vitit 1960, dhe njĂ« etapĂ« zbatimi, nĂ« tĂ« cilĂ«n gjuha u adaptua dhe u zgjerua pĂ«r tĂ« funksionuar nĂ« kompjuterĂ«. Puna kryesore, nĂ«se matet me numrin e mundĂ«sive tĂ« realizuara, ndodhi nĂ« etapĂ«n e realizimit. Lisp-i i vitit 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. TĂ« gjitha gjĂ«rat e tjera u shtuan gjatĂ« etapĂ«s sĂ« realizimit.
Hipoteza ime është se, megjithëse historia ishte e vështirë, zhvillimi i Lisp i ka dhënë përfitime që ndodhi në dy faza; se ushtrimi fillestar i përcaktimit të gjuhës përmes shkruarjes së interpreterit të saj mbi vetveten ia dha Lisp-it cilësitë e tij më të mira. Dhe nëse është kështu, pse të mos shkojmë më tej?
Bel â Ă«shtĂ« njĂ« pĂ«rpjekje pĂ«r tĂ« pĂ«rgjigjur pyetjes: çfarĂ« ndodh nĂ«se, nĂ« vend qĂ« tĂ« kaloni nga faza formale nĂ« fazĂ«n e zbatimit nĂ« fazĂ«n e hershme, e bĂ«ni kĂ«tĂ« kalim sa mĂ« vonĂ« qĂ« tĂ« jetĂ« e mundur? NĂ«se vazhdoni tĂ« pĂ«rdorni njĂ« qasje aksionomatik deri sa tĂ« keni diçka qĂ« i ngjan njĂ« gjuhe programimi tĂ« pĂ«rfunduar, cilat aksioma do t'ju nevojiten, dhe si do tĂ« dukej gjuha e rezultuar?
Dua të sqaroj se çfarë është Bel dhe çfarë nuk është. Megjithëse ka shumë më tepër funksionalitete se Lisp-i i McCarthy-t nga vitet 1960, Bel është ende një produkt në fazën formale. Ashtu si Lisp-i i përshkruar në punimin e vitit 1960, kjo nuk është një gjuhë që mund ta përdorni për programim. Kryesisht, sepse, si Lisp-i i McCarthy-t, ajo nuk shqetësohet për efikasitetin. Kur unë shtoj diçka në Bel, unë përshkruaj kuptimin e kësaj shtese, pa u përpjekur të ofroj një zbatim efikas.
Për çfarë? Pse duhet të vazhdohet faza formale? Një nga përgjigjet është se për të parë se ku mund të na çojë qasja aksiomatike, e cila vetë është një ushtrim interesant. Nëse kompjuterët do të ishin aq të fuqishëm sa dëshirojmë, si do të dukeshin gjuhët atëherë?
Por besoj gjithashtu se është e mundur të shkruhet një implementim efektiv, i bazuar në Bel, duke shtuar kufizime. Nëse ju nevojitet një gjuhë me fuqinë shprehëse, qartësinë dhe efikasitetin, ndoshta është më mirë të filloni me fuqinë shprehëse dhe qartësinë, pastaj të shtoni kufizime, sesa të lëvizni në drejtimin e kundërt.
Pra, nëse dëshironi të provoni të shkruani një implementim bazuar në Bel, ju lutem. Unë do të jem një nga përdoruesit e parë.
NĂ« fund tĂ« fundit, kam riprodhuar disa gjĂ«ra nga dialektet e mĂ«parshme. Ose dizajnuesit e tyre e bĂ«nĂ« gjithçka drejt, ose duke qenĂ« nĂ«n ndikimin e dialekteve qĂ« kam pĂ«rdorur mĂ« parĂ«, nuk shoh njĂ« pĂ«rgjigje tĂ« saktĂ« â koha do ta tregojĂ«. Kam pĂ«rpiqur gjithashtu tĂ« mos largohem shumĂ« nga marrĂ«veshjet e pranuara nĂ« Lisp. Kjo do tĂ« thotĂ« se nĂ«se shihni njĂ« devijim nga marrĂ«veshjet e Lisp, ndoshta ka pasur arsye pĂ«rkatĂ«se.
.
Faleminderit për përkthimin: Denis Mitropolsky
P.S.
Burimi: habr.com
