ලිස්ප් විශේෂ කළ දේ

«මෙතෙක් නිර්මාණය වූ විශිෂ්ටතම ක්‍රමලේඛන භාෂාව«
- ඇලන් කේ, "ලිස්ප් මත"

ලිස්ප් විශේෂ කළ දේ

1950 ගණන්වල අගභාගයේදී මැකාති ලිස්ප් සංවර්ධනය කරන විට, එය පවතින භාෂාවලට වඩා රැඩිකල් ලෙස වෙනස් විය, එයින් වඩාත් වැදගත් වන්නේ ෆෝට්රාන්.

Lisp නව අදහස් නවයක් හඳුන්වා දුන්නේය:

1. කොන්දේසි. කොන්දේසි සහිත ප්‍රකාශයන් නම්-එසේ නම්-එසේ නම්-එසේ නොව ඉදිකිරීම් වේ. දැන් අපි ඒවා සැහැල්ලුවට ගන්නවා. ඔවුන් වුයේ සොයාගත්තා ලිස්ප් සංවර්ධනය අතරතුර මැකාති. (එකල ෆෝට්‍රාන් සතුව තිබුණේ ගොටෝ ප්‍රකාශයන් පමණි, එය යටින් පවතින දෘඩාංග පිළිබඳ ශාඛා උපදෙස් සමඟ සමීපව සම්බන්ධ විය.) මැකාති, ඇල්ගොල් කමිටුවේ සිටියදී, ඇල්ගොල් වෙත කොන්දේසි ඉදිරිපත් කළ අතර, ඒවා වෙනත් භාෂාවලට ව්‍යාප්ත විය.

2. ශ්‍රිත වර්ගයකි. Lisp හි, ශ්‍රිතයන් පළමු පන්තියේ වස්තු වේ - ඒවා සංඛ්‍යා, තන්තු යනාදිය මෙන් දත්ත වර්ගයක් වන අතර වචනාර්ථයෙන් නිරූපණයක් ඇත, විචල්‍යයන් තුළ ගබඩා කළ හැකිය, තර්ක ලෙස සම්මත කළ හැකිය.

3. පුනරාවර්තනය. Recursion, ඇත්ත වශයෙන්ම, Lisp ට පෙර ගණිතමය සංකල්පයක් ලෙස පැවතුනි, නමුත් Lisp එයට සහාය දුන් පළමු ක්‍රමලේඛන භාෂාව විය. (මෙය සමහර විට පළමු පන්තියේ වස්තු ලෙස ශ්‍රිත නිර්මාණය කිරීමේදී ගම්‍ය වේ.)

4. විචල්‍යයන් පිළිබඳ නව සංකල්පයක්. Lisp හි, සියලුම විචල්‍යයන් ඵලදායී දර්ශක වේ. අගයන් යනු විචල්‍යයන් නොව වර්ගවල ඇති දේ වන අතර විචල්‍ය පැවරීම හෝ බන්ධනය කිරීම යන්නෙන් අදහස් වන්නේ ඒවා පෙන්වා දෙන දේ නොව පොයින්ටර් පිටපත් කිරීමයි.

5. කසළ එකතුව.

6. ප්‍රකාශන වලින් සමන්විත වැඩසටහන්. Lisp වැඩසටහන් යනු ප්‍රකාශන ගස් වන අතර, ඒ සෑම එකක්ම අගයක් ලබා දෙයි. (සමහර Lisp ප්‍රකාශනවලට බහුවිධ අගයන් ලබා දිය හැක.) මෙය Fortran සහ "ප්‍රකාශන" සහ "ප්‍රකාශයන්" අතර වෙනස පෙන්වන බොහෝ සාර්ථක භාෂා සමඟ ප්‍රතිවිරුද්ධ වේ.

ෆෝට්‍රාන් හි මෙම වෙනස තිබීම ස්වාභාවික වූයේ භාෂාව රේඛීය වූ බැවිනි (ආදාන ආකෘතිය පන්ච් කාඩ්පතක් වූ භාෂාවකට පුදුමයක් නොවේ). ඔබට කැදලි ප්‍රකාශ තිබිය නොහැක. ඔබට ක්‍රියා කිරීමට ගණිතමය ප්‍රකාශන අවශ්‍ය වන තාක් කල්, වෙනත් කිසිවක් අගයක් ලබා දීමේ තේරුමක් නැත, මන්ද ආපසු ලබා දීමට බලා සිටින කිසිවක් නොතිබිය හැකිය.

වාරණ ව්‍යුහගත භාෂා පැමිණීමත් සමඟ සීමාවන් ඉවත් කරන ලද නමුත් ඒ වන විට එය ප්‍රමාද වැඩිය. ප්රකාශන සහ ප්රකාශ අතර වෙනස දැනටමත් ස්ථාපිත කර ඇත. එය ෆෝට්‍රාන් සිට ඇල්ගොල් දක්වාත් තව දුරටත් ඔවුන්ගෙන් පැවත එන්නන්ටත් ගමන් කළේය.

භාෂාවක් සම්පුර්ණයෙන්ම ප්‍රකාශන වලින් සෑදූ විට, ඔබට අවශ්‍ය ආකාරයට ප්‍රකාශන රචනා කළ හැක. ඔබට ලිවිය හැකිය (වාර්‍ය ඛණ්ඩය භාවිතයෙන් චක්රය)

(if foo (= x 1) (= x 2))

හෝ

(= x (if foo 1 2))

7. සංකේත වර්ගයකි. අක්ෂර තන්තු වලින් වෙනස් වේ, මෙම අවස්ථාවෙහිදී ඔබට පොයින්ටර් සංසන්දනය කිරීමෙන් සමානාත්මතාවය පරීක්ෂා කළ හැකිය.

8. කේතය සඳහා අංකනය සංකේත ගස් භාවිතා කිරීම.

9. මුළු භාෂාවම සෑම විටම පවතී. කියවීමේ කාලය, සම්පාදනය කරන කාලය සහ ධාවන කාලය අතර පැහැදිලි වෙනසක් නොමැත. ඔබ කියවන අතරතුර කේතය සම්පාදනය කිරීමට හෝ ධාවනය කිරීමට හෝ ඔබ සම්පාදනය කරන අතරතුර කේතය කියවීමට හෝ ධාවනය කිරීමට හෝ එය ක්‍රියාත්මක වන විට කේතය කියවීමට හෝ සම්පාදනය කිරීමට හැකිය.

කියවීමේදී කේතය ධාවනය කිරීම පරිශීලකයින්ට Lisp හි වාක්‍ය ඛණ්ඩය නැවත ක්‍රමලේඛනය කිරීමට ඉඩ සලසයි; සම්පාදනය කරන අවස්ථාවේදී ධාවනය වන කේතය මැක්‍රෝ සඳහා පදනම වේ; Emacs වැනි වැඩසටහන් වල දිගු භාෂාවක් ලෙස Lisp භාවිතා කිරීමේ පදනම ධාවන කාල සම්පාදනයයි; අවසාන වශයෙන්, ධාවන කාල කියවීම මඟින් වැඩසටහන් වලට s-ප්‍රකාශන භාවිතයෙන් සන්නිවේදනය කිරීමට ඉඩ සලසයි, එය මෑතකදී XML හි ප්‍රතිනිර්මාණය කරන ලද අදහසකි.

නිගමනය

Lisp මුලින්ම සොයා ගන්නා විට, මෙම අදහස් 1950 ගණන්වල අගභාගයේදී ලබා ගත හැකි දෘඩාංග මගින් නියම කරන ලද සාම්ප්‍රදායික ක්‍රමලේඛන පිළිවෙත්වලට වඩා බෙහෙවින් වෙනස් විය.

කාලයාගේ ඇවෑමෙන්, ජනප්‍රිය භාෂාවල සාර්ථකත්වය මගින් මූර්තිමත් වූ පෙරනිමි භාෂාව ක්‍රමයෙන් Lisp දෙසට විකාශනය විය. ලකුණු 1-5 දැන් බොහෝ දෙනා පිළිගෙන ඇත. 6 වන කරුණ ප්‍රධාන ධාරාවේ දිස් වීමට පටන් ගනී. Python හි, සුදුසු වාක්‍ය ඛණ්ඩයක් නොමැති වුවද, යම් ආකාරයක 7 වැනි වගන්තියක් ඇත. (අයිතමය 8 සමඟින්) Lisp තුළ මැක්‍රෝස් කළ හැකි 9 වන අයිතමය, තවමත් Lisp හි පමණක් පවතී, සමහරවිට (a) එයට එම වරහන් හෝ ඒ හා සමානව නරක දෙයක් අවශ්‍ය වන නිසා, සහ (b) ඔබ මෙම නවතම බලය වැඩි කිරීම එක් කළහොත්, ඔබට හැකිය තව දුරටත් නව භාෂාවක් සොයා ගත් බව නොකියයි, නමුත් Lisp හි නව උපභාෂාවක් වර්ධනය කර ඇත; -)

මෙය නවීන ක්‍රමලේඛකයින්ට ප්‍රයෝජනවත් වුවද, ලිස්ප් වෙනත් භාෂාවල භාවිතා කරන අහඹු තාක්ෂණික ක්‍රම වලින් එහි වෙනස විස්තර කිරීම අමුතු දෙයක්. මෙය මැකාති සිතූ දේ නොවිය හැකිය. Lisp නිර්මාණය කර ඇත්තේ Fortran ගේ දෝෂ නිවැරදි කිරීමට නොවේ; එය උත්සාහයේ අතුරු ඵලයක් ලෙස පෙනී ගියේය axiomatize ගණනය කිරීම්.

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

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