පෝල් ග්‍රැහැම් නව ක්‍රමලේඛන භාෂාවක් බෙල් නිවේදනය කළේය

බෙල් භාෂාව ලියා ඇත්තේ බෙල් භාෂාවෙනි.

පෝල් ග්‍රැහැම් නව ක්‍රමලේඛන භාෂාවක් බෙල් නිවේදනය කළේය
1960 දී ජෝන් මැකාති විසින් නව ක්‍රමලේඛන භාෂාවක් වන Lisp විස්තර කළේය. මම "නව වර්ගය" කියන්නේ Lisp යනු නව භාෂාවක් පමණක් නොව, භාෂා විස්තර කිරීමේ නව ක්‍රමයක් වූ බැවිනි.

ලිස්ප් නිර්වචනය කිරීම සඳහා, ඔහු කුඩා ප්‍රකාශ මාලාවක්, ප්‍රත්‍යක්‍ෂ වර්ගයකින් ආරම්භ කළේය, පසුව ඔහු භාෂාව සඳහාම පරිවර්තකයක් ලිවීමට භාවිතා කළේය.

සාමාන්‍ය අර්ථයෙන් ක්‍රමලේඛන භාෂාවක් විස්තර කිරීමට එය සකසා නැත - පරිගණකයකට කළ යුතු දේ පැවසීමට භාවිතා කරන භාෂාවකි. ඔහුගේ 1960 කෘතියේ දී, Lisp ටියුරින් යන්ත්‍රයට සමාන ගණනය කිරීමේ විධිමත් ආකෘතියක් ලෙස වටහා ගන්නා ලදී. ඔහුගේ උපාධි ශිෂ්‍ය ස්ටීව් රසල් එය යෝජනා කරන තුරු මැකාති එය පරිගණකවල භාවිතා කිරීම ගැන සිතුවේ නැත.

1960 දී Lisp හි ක්‍රමලේඛන භාෂාවන්ට පොදු ලක්ෂණ නොතිබුණි. උදාහරණයක් ලෙස, අංක, දෝෂ හෝ I/O නොතිබුණි. එබැවින් පරිගණක ක්‍රමලේඛනය කිරීමට භාවිතා කරන භාෂා සඳහා පදනම ලෙස Lisp භාවිතා කළ පුද්ගලයින්ට මෙම විශේෂාංග එකතු කිරීමට සිදු විය. ඔවුන් මෙය කළේ අක්ෂීය ප්‍රවේශය අත්හැරීමෙනි.

මේ අනුව, Lisp හි සංවර්ධනය අදියර දෙකකින් - සහ පෙනෙන පරිදි තරමක් ස්වාධීන - අදියර දෙකකින් ඉදිරියට ගියේය: 1960 පත්‍රිකාවකින් හඳුන්වා දුන් විධිමත් අදියරක් සහ භාෂාව අනුවර්තනය කර පරිගණක මත ක්‍රියාත්මක කිරීම සඳහා දිගු කරන ලද ක්‍රියාත්මක කිරීමේ අදියරකි. ප්රධාන කාර්යය, ක්රියාත්මක කරන ලද අවස්ථා ගණන අනුව මනිනු ලැබුවහොත්, ක්රියාත්මක කිරීමේ අදියරේදී සිදු විය. 1960 සිට Lisp, Common Lisp වෙත පරිවර්තනය කර ඇති අතර, එහි අඩංගු වන්නේ පේළි 53ක් පමණි. එය ප්‍රකාශන අර්ථ නිරූපණය කිරීමට අවශ්‍ය දේ පමණක් කරයි. ක්රියාත්මක කිරීමේ අදියරේදී අනෙක් සියල්ල එකතු කරන ලදී.

මගේ උපකල්පනය නම්, එහි දුෂ්කර ඉතිහාසය නොතකා, Lisp එහි සංවර්ධනය අදියර දෙකකින් සිදු වූ කාරනයෙන් ප්‍රයෝජන ගත් බවයි; භාෂාවක් එහි පරිවර්තකය ලිවීමෙන් අර්ථ දැක්වීමේ මුල් අභ්‍යාසය ලිස්ප්ට එහි හොඳම ගුණාංග ලබා දුන් බව. එසේ නම්, තවත් ඉදිරියට නොයන්නේ මන්ද?

බෙල් යනු ප්‍රශ්නයට පිළිතුරු දීමට උත්සාහ කිරීමකි: මුල් අවධියේදී විධිමත් අවධියේ සිට ක්‍රියාත්මක කිරීමේ අවස්ථාවට මාරු වීම වෙනුවට, මෙම සංක්‍රාන්තිය හැකි තරම් ප්‍රමාද වූයේ නම් කුමක් කළ යුතුද? ඔබට සම්පූර්ණ ක්‍රමලේඛන භාෂාවකට සමීප යමක් ලැබෙන තෙක් ඔබ අක්ෂීය ප්‍රවේශය දිගටම භාවිතා කරන්නේ නම්, ඔබට අවශ්‍ය වන ප්‍රත්‍යක්ෂ මොනවාද සහ ප්‍රතිඵලයක් ලෙස ලැබෙන භාෂාව කෙබඳු වනු ඇත්ද?

බෙල් යනු කුමක්ද සහ එය නොවන්නේ කුමක්ද යන්න පිළිබඳව මට පැහැදිලි වීමට අවශ්‍යයි. McCarthy's 1960 Lisp වලට වඩා එහි බොහෝ විශේෂාංග ඇතත්, Bel තවමත් එහි විධිමත් අවධියේ නිෂ්පාදනයකි. 1960 පත්‍රිකාවක විස්තර කර ඇති Lisp මෙන්, එය ඔබට වැඩසටහන් කිරීමට භාවිතා කළ හැකි භාෂාවක් නොවේ. ප්රධාන වශයෙන්ම, McCarthy's Lisp මෙන්, එය කාර්යක්ෂමතාව ගැන සැලකිලිමත් නොවේ. මම බෙල් වෙත යමක් එකතු කරන විට, කාර්යක්ෂම ක්‍රියාත්මක කිරීමක් ලබා දීමට උත්සාහ නොකර එකතු කිරීමේ අර්ථය විස්තර කරමි.

කුමක් සඳහා ද? විධිමත් වේදිකාව දිගු කරන්නේ ඇයි? එක් පිළිතුරක් නම්, අක්ෂීය ප්‍රවේශය අපව ගෙන යා හැක්කේ කොතැනට දැයි බැලීම, එයම සිත්ගන්නා අභ්‍යාසයකි. පරිගණක අප කැමති තරම් බලවත් නම්, භාෂා කෙබඳු වනු ඇත්ද?

නමුත් සීමා කිරීම් එකතු කිරීමෙන් කාර්යක්ෂම Bel-පාදක ක්රියාත්මක කිරීමක් ලිවීමට හැකි බව මම විශ්වාස කරමි. ඔබට ප්‍රකාශන බලයක්, පැහැදිලි බවක් සහ කාර්යක්‍ෂමතාවයක් ඇති භාෂාවක් අවශ්‍ය නම්, එය ප්‍රතිවිරෝධී දිශාවට යනවාට වඩා ප්‍රකාශන බලයෙන් සහ පැහැදිලිකමෙන් ආරම්භ කර පසුව සීමා කිරීම් එකතු කිරීම වටී.

එබැවින් ඔබට බෙල් මත පදනම්ව ක්‍රියාත්මක කිරීමක් ලිවීමට උත්සාහ කිරීමට අවශ්‍ය නම්, ඉදිරියට යන්න. මම පළමු පරිශීලකයන්ගෙන් කෙනෙක් වනු ඇත.

අවසාන වශයෙන්, මම පෙර උපභාෂා වලින් සමහර දේවල් ප්‍රතිනිෂ්පාදනය කළෙමි. එක්කෝ ඔවුන්ගේ නිර්මාණකරුවන් එය නිවැරදිව වටහාගෙන ඇත, නැතහොත් කලින් භාවිතා කරන ලද උපභාෂාවලින් බලපෑමට ලක්ව ඇත, මට නිවැරදි පිළිතුරක් නොපෙනේ - කාලය කියනු ඇත. මම ලිස්ප් සම්මුතිවලින් වැඩි දුරක් නොයන්නත් උත්සාහ කළා. එයින් අදහස් වන්නේ ඔබ Lisp සම්මුතිවලින් ඉවත්වීමක් දුටුවහොත් එයට හේතුවක් තිබිය හැකි බවයි.

භාෂාව පිළිබඳ අඛණ්ඩ විස්තරය මෙතැනින්.

පරිවර්තනයට ස්තූතියි: Denis Mitropolsky

ප්රාදේශීය සභා

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න