Пол Грахам шинэ програмчлалын хэлийг Bel зарлалаа

Бэл хэл нь бэл хэлээр бичигдсэн байдаг.

Пол Грахам шинэ програмчлалын хэлийг Bel зарлалаа
1960 онд Жон Маккарти шинэ төрлийн програмчлалын хэл болох Lisp-ийг тодорхойлсон. Би "шинэ төрөл" гэж хэлж байна, учир нь Лисп бол зүгээр нэг шинэ хэл биш, хэлийг дүрслэх шинэ арга зам байсан юм.

Лиспийг тодорхойлохын тулд тэрээр жижиг хэллэгүүд, аксиомуудын төрлөөр эхэлж, дараа нь тухайн хэлний орчуулагч бичихэд ашигладаг.

Энэ нь програмчлалын хэлийг ердийн утгаараа буюу компьютерт юу хийхийг зааж өгдөг хэлээр тайлбарлахыг зорьсонгүй. 1960 онд хийсэн бүтээлдээ Лиспийг Тьюрингийн машинтай төстэй тооцооллын албан ёсны загвар гэж ойлгосон. Маккарти үүнийг компьютер дээр ашиглах талаар түүний төгсөх курсын оюутан Стив Рассел санал болгох хүртэл бодож байгаагүй.

1960 оны Lisp програмчлалын хэлнүүдэд нийтлэг шинж чанартай байсангүй. Жишээлбэл, тоо, алдаа, I/O байхгүй байсан. Тиймээс компьютерийг програмчлахад ашигладаг хэлний үндэс болгон Lisp-ийг ашигласан хүмүүс эдгээр функцуудыг өөрсдөө нэмэх шаардлагатай болсон. Мөн тэд аксиоматик хандлагыг орхисноор үүнийг хийсэн.

Ийнхүү Lisp-ийн хөгжил нь 1960 оны нийтлэлд танилцуулагдсан албан ёсны үе шат, хэлийг компьютер дээр ашиглахад тохируулан өргөтгөсөн хэрэгжүүлэх үе шат гэсэн хоёр үе шаттайгаар явагдсан бөгөөд энэ нь нэлээд бие даасан мэт санагдах болно. Хэрэгжүүлсэн боломжуудын тоогоор хэмжигдвэл хэрэгжих шатандаа гол ажил өрнөсөн. 1960 оны Lisp нь Common Lisp руу орчуулагдсан бөгөөд ердөө 53 мөртэй. Энэ нь зөвхөн илэрхийллийг тайлбарлахад шаардлагатай зүйлийг л хийдэг. Хэрэгжүүлэх шатанд бусад бүх зүйл нэмэгдсэн.

Миний таамаглал бол хэцүү түүхтэй хэдий ч Лисп хөгжил нь хоёр үе шаттайгаар явагдсанаас ашиг тусаа авсан; Хэлний орчуулагчийг бичих замаар хэлийг тодорхойлох анхны дасгал нь Лиспэд хамгийн сайн чанарыг өгсөн гэж үздэг. Хэрэв тийм бол яагаад цаашаа явж болохгүй гэж?

Bel гэсэн асуултад хариулах оролдлого нь: Албан ёсны шатнаас гүйцэтгэлийн үе шат руу эрт шилжихийн оронд энэ шилжилтийг аль болох хожуу хийсэн бол яах вэ? Хэрэв та бүрэн програмчлалын хэлтэй ойртлоо аксиоматик хандлагыг үргэлжлүүлэн ашиглавал танд ямар аксиом хэрэгтэй вэ, үүнээс үүссэн хэл ямар байх вэ?

Би Бел гэж юу болох, юу нь биш гэдгийг тодорхой хэлмээр байна. Хэдийгээр энэ нь McCarthy's 1960 Lisp-ээс олон онцлог шинж чанартай ч Бел нь албан ёсны шатандаа байгаа бүтээгдэхүүн юм. 1960 оны нийтлэлд дурдсан Lisp шиг энэ нь таны програмчлах хэл биш юм. Гол нь Маккартигийн Лисп шиг үр ашгийн талаар огтхон ч хамаагүй. Би Бел-д ямар нэг зүйл нэмэхдээ үр дүнтэй хэрэгжилтийг хангах оролдлогогүйгээр нэмэлтийн утгыг тайлбарладаг.

Юуны төлөө? Яагаад албан ёсны үе шатыг сунгах вэ? Үүний нэг хариулт бол аксиоматик хандлага биднийг хааш нь хөтөлж болохыг олж мэдэх явдал бөгөөд энэ нь өөрөө сонирхолтой дасгал юм. Хэрэв компьютерууд бидний хүссэн шиг хүчирхэг байсан бол хэлүүд ямар байх байсан бэ?

Гэхдээ би бас хязгаарлалт нэмснээр Bel-д суурилсан үр ашигтай хэрэгжилтийг бичих боломжтой гэдэгт би итгэдэг. Хэрэв та илэрхийлэх хүч, тодорхой, үр дүнтэй хэлийг хүсч байвал эсрэг чиглэлд явахын оронд илэрхийлэх хүч, тодорхой байдлаар эхэлж, дараа нь хязгаарлалт нэмэх нь зүйтэй болов уу.

Тиймээс хэрэв та Бэл дээр суурилсан хэрэгжилтийг бичихийг хүсч байвал үргэлжлүүлээрэй. Би анхны хэрэглэгчдийн нэг байх болно.

Эцэст нь би өмнөх аялгуунаас зарим зүйлийг хуулбарласан. Тэдний зохион бүтээгчид зөв ойлгосон уу, эсвэл өмнө нь хэрэглэж байсан аялгууны нөлөөнд автсан уу, би зөв хариултыг олж харахгүй байна - цаг хугацаа харуулах болно. Би бас Лиспийн конвенцуудаас хэт холдохгүй байхыг хичээсэн. Энэ нь хэрэв та Лиспийн конвенцуудаас холдохыг харвал үүнд шалтгаан байж болно гэсэн үг юм.

Хэлний талаархи дэлгэрэнгүй тайлбарыг энд оруулав.

Орчуулсанд баярлалаа: Денис Митропольский

PS

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх