Paul Graham yeni proqramlaşdırma dilini elan etdi

Bel dili Bel dilində yazılmışdır.

Paul Graham yeni proqramlaşdırma dilini elan etdi
1960-cı ildə Con Makkarti proqramlaşdırma dilinin yeni növü olan Lisp-i təsvir etdi. Mən “yeni tip” deyirəm, çünki Lisp sadəcə yeni bir dil deyil, dilləri təsvir etmək üçün yeni bir üsul idi.

Lisp-i müəyyən etmək üçün o, kiçik bir ifadələr toplusu, bir növ aksioma ilə başladı və daha sonra dilin özü üçün tərcüməçi yazmaq üçün istifadə etdi.

O, bir proqramlaşdırma dilini adi mənada - kompüterə nə edəcəyini söyləmək üçün istifadə edilən bir dildə təsvir etməyi qarşısına məqsəd qoymadı. 1960-cı ildəki işində Lisp Turinq Maşınına bənzər formal hesablama modeli kimi başa düşülürdü. McCarthy, aspirantı Stiv Russell bunu təklif edənə qədər onu kompüterlərdə istifadə etməyi düşünmürdü.

1960-cı ildə Lisp proqramlaşdırma dilləri üçün ümumi xüsusiyyətlərə malik deyildi. Məsələn, nömrələr, səhvlər və ya I/O yox idi. Beləliklə, Lisp-i kompüterləri proqramlaşdırmaq üçün istifadə olunan dillər üçün əsas kimi istifadə edən insanlar bu xüsusiyyətləri özləri əlavə etməli oldular. Və bunu aksiomatik yanaşmadan imtina edərək etdilər.

Beləliklə, Lisp-in inkişafı iki - və zahirən tamamilə müstəqil - mərhələdə davam etdi: 1960-cı il məqaləsində təqdim edilən rəsmi mərhələ və dilin kompüterlərdə işləmək üçün uyğunlaşdırıldığı və genişləndirildiyi tətbiq mərhələsi. Əsas iş, əgər həyata keçirilən imkanların sayı ilə ölçülürsə, icra mərhələsində baş verib. 1960-cı ildən Common Lisp dilinə tərcümə edilmiş Lisp cəmi 53 sətirdən ibarətdir. Yalnız ifadələri şərh etmək üçün lazım olanı edir. Qalan hər şey icra mərhələsində əlavə edildi.

Mənim fərziyyəm belədir ki, çətin tarixinə baxmayaraq, Lisp onun inkişafının iki mərhələdə baş verməsindən faydalanmışdır; Tərcüməçini yazmaqla bir dili müəyyənləşdirmək üçün orijinal məşq Lisp-ə ən yaxşı keyfiyyətləri verdi. Əgər belədirsə, niyə daha da irəli getməyək?

Bel sualına cavab vermək cəhdidir: əgər ilkin mərhələdə formal mərhələdən icra mərhələsinə keçmək əvəzinə, bu keçid mümkün qədər gec həyata keçirilsəydi? Tam proqramlaşdırma dilinə yaxın bir şey əldə edənə qədər aksiomatik yanaşmadan istifadə etməyə davam etsəniz, hansı aksiomalara ehtiyacınız olacaq və nəticədə dil necə görünəcək?

Belin nə olduğunu və nəyin olmadığını aydınlaşdırmaq istəyirəm. McCarthy's 1960 Lisp-dən daha çox xüsusiyyətlərə malik olsa da, Bel hələ də rəsmi fazasında olan bir məhsuldur. 1960-cı il məqaləsində təsvir olunan Lisp kimi, proqramlaşdırmaq üçün istifadə edə biləcəyiniz bir dil deyil. Əsasən ona görə ki, McCarthy's Lisp kimi, səmərəliliyə əhəmiyyət vermir. Bel-ə bir şey əlavə edəndə, effektiv həyata keçirməyə cəhd etmədən əlavənin mənasını təsvir edirəm.

Nə üçün? Niyə rəsmi mərhələni uzatmaq olar? Cavablardan biri aksiomatik yanaşmanın bizi hara apara biləcəyini görməkdir ki, bu da özlüyündə maraqlı bir məşqdir. Əgər kompüterlər bizim istədiyimiz qədər güclü olsaydı, dillər necə görünərdi?

Amma mən də inanıram ki, məhdudiyyətlər əlavə etməklə effektiv Bel əsaslı tətbiq yazmaq olar. İfadə gücünə, aydınlığına və səmərəliliyinə malik bir dil istəyirsinizsə, əks istiqamətdə getməkdənsə, ifadəli güc və aydınlıqla başlamağa və sonra məhdudiyyətlər əlavə etməyə dəyər ola bilər.

Beləliklə, Bel əsasında bir tətbiq yazmağa cəhd etmək istəyirsinizsə, davam edin. İlk istifadəçilərdən biri olacam.

Nəhayət, əvvəlki dialektlərdən bəzi şeyləri təkrarladım. Ya onların dizaynerləri bunu düzgün başa düşdülər, ya da əvvəllər istifadə olunan dialektlərdən təsirləndilər, mən düzgün cavab görmürəm - zaman göstərəcək. Mən də Lisp konvensiyalarından çox da uzaqlaşmamağa çalışırdım. Bu o deməkdir ki, Lisp konvensiyalarından uzaqlaşdığınızı görsəniz, bunun üçün bir səbəb ola bilər.

Burada dilin davamı təsviri.

Tərcümə üçün təşəkkürlər: Denis Mitropolski

PS

Mənbə: www.habr.com

Добавить комментарий