Пол Грэм жаңа Bel бағдарламалау тілін жариялады

Бел тілі бел тілінде жазылған.

Пол Грэм жаңа Bel бағдарламалау тілін жариялады
1960 жылы Джон Маккарти бағдарламалау тілінің жаңа түрі Лиспті сипаттады. Мен «жаңа тип» деп айтамын, өйткені Лисп тек жаңа тіл емес, тілдерді сипаттаудың жаңа тәсілі болды.

Лиспті анықтау үшін ол шағын мәлімдемелер жиынтығынан, аксиомалардың бір түрінен бастады, содан кейін ол тілдің өзі үшін аудармашы жазу үшін қолданды.

Ол бағдарламалау тілін әдеттегі мағынада сипаттауды мақсат еткен жоқ - компьютерге не істеу керектігін айту үшін қолданылатын тіл. 1960 жылғы жұмысында Лисп Тьюринг машинасына ұқсас есептеулердің ресми моделі ретінде түсінілді. Маккарти оны компьютерде қолдану туралы оның аспиранты Стив Рассел ұсынғанша ойлаған жоқ.

1960 жылы Лиспте программалау тілдеріне ортақ мүмкіндіктер болмады. Мысалы, сандар, қателер немесе енгізу/шығару болған жоқ. Сондықтан компьютерлерді бағдарламалау үшін қолданылатын тілдердің негізі ретінде Lisp-ті пайдаланған адамдар бұл мүмкіндіктерді өздері қосуға мәжбүр болды. Және олар мұны аксиоматикалық тәсілден бас тарту арқылы жасады.

Осылайша, Лисптің дамуы екі және бір қарағанда өте тәуелсіз болып көрінетін кезеңдерде өтті: 1960 жылғы қағазда енгізілген ресми кезең және тіл компьютерлерде жұмыс істеуге бейімделген және кеңейтілген енгізу кезеңі. Негізгі жұмыс, егер іске асырылған мүмкіндіктер санымен өлшенсе, іске асыру кезеңінде орын алды. Common Lisp тіліне аударылған 1960 жылғы Lisp тек 53 жолды қамтиды. Ол өрнектерді түсіндіру үшін қажет нәрсені ғана жасайды. Қалғанының бәрі іске асыру кезеңінде қосылды.

Менің болжамым бойынша, өзінің қиын тарихына қарамастан, Лисп оның дамуының екі фазада болғаны пайдалы болды; Тілді оған аудармашы жазу арқылы анықтаудың бастапқы жаттығуы Лиспке оның ең жақсы қасиеттерін берді. Ал егер солай болса, неге одан әрі бармасқа?

Bel деген сұраққа жауап беру әрекеті болып табылады: егер бастапқы кезеңде формальды кезеңнен орындау сатысына көшудің орнына, бұл өту мүмкіндігінше кеш жүргізілсе ше? Толық бағдарламалау тіліне жақын нәрсе болғанша аксиоматикалық тәсілді қолдануды жалғастырсаңыз, сізге қандай аксиомалар қажет болады және нәтиже тіл қандай болады?

Мен Белдің не екенін және оның не екенін түсінгім келеді. Оның McCarthy's Lisp 1960 нұсқасына қарағанда көптеген мүмкіндіктері бар болса да, Бел әлі де өзінің ресми фазасындағы өнім болып табылады. 1960 жылғы қағазда сипатталған Lisp сияқты, бұл бағдарламалау үшін қолдануға болатын тіл емес. Негізінен, Маккартидің Лиспі сияқты, ол тиімділікке мән бермейді. Белге бірдеңе қосқан кезде, тиімді іске асыруды қамтамасыз етпей-ақ, қосымшаның мағынасын сипаттаймын.

Не үшін? Неліктен ресми кезеңді ұзарту? Жауаптардың бірі - аксиоматикалық тәсіл бізді қайда апара алатынын көру, бұл өз алдына қызықты жаттығу. Егер компьютерлер біз қалағандай қуатты болса, тілдер қандай болар еді?

Бірақ мен шектеулерді қосу арқылы тиімді Bel негізіндегі енгізуді жазуға болады деп ойлаймын. Егер сіз экспрессивтік күші, айқындығы және тиімділігі бар тілді қаласаңыз, оны экспрессивті қуат пен айқындықтан бастап, қарама-қарсы бағытта емес, шектеулерді қосқан жөн.

Сондықтан егер сіз Bel негізінде іске асыруды жазып көргіңіз келсе, жалғастырыңыз. Мен алғашқы қолданушылардың бірі боламын.

Сайып келгенде, мен бұрынғы диалектілерден кейбір нәрселерді қайта шығардым. Немесе олардың дизайнерлері дұрыс түсінді, немесе бұрын қолданылған диалектілердің әсерінен, мен дұрыс жауапты көрмеймін - уақыт көрсетеді. Мен де Лисп конвенцияларынан тым алыс кетпеуге тырыстым. Бұл дегеніміз, егер сіз Лисп конвенцияларынан алыстауды көрсеңіз, оның себебі болуы мүмкін.

Тілдің сипаттамасы осында.

Аударма үшін рахмет: Денис Митропольский

PS

Ақпарат көзі: www.habr.com

пікір қалдыру