Кіріспе

Maclisp (немесе MACLISP, кейде MacLisp немесе MacLISP деп аталады) – Lisp бағдарламалау тілінің диалектісі. Ол Массачусетс технология институтының (MIT) MAC жобасында (оның префиксі осыдан шыққан) 1960 жылдардың соңында пайда болды және Lisp 1.5 негізінде құрылды. Ричард Гринблатт PDP 6 үшін бастапқы код базасын жасаудағы негізгі дамытушы болды; Maclisp, Lisp 1.5-тен айырмаланып, айнымалылардың динамикалық мәндеріне қол жеткізу және сақтау үшін мән жасушасын пайдаланады; Lisp 1.5 айнымалының мәнін анықтау үшін ассоциациялық тізімді сызықтық іздеу арқылы анықтаған. Maclisp-тегі айнымалыны бағалау жылдамырақ, бірақ айнымалының семантикасы өзгеше. Maclisp сонымен қатар кіріс және шығысты оқуға қолайлы ету үшін, кіріс/шығыс (I/O) деп аталатын оқу макростарын қолданды. Мысалы, (QUOTE A) орнына 'A' деп енгізу арқылы бірдей s-өрнекті алуға болады. Екі нұсқада да функциялар қасиеттер тізіміне енгізілгенімен, Maclisp функцияларды анықтау үшін басқа синтаксис қолданады. Maclisp-те қажет болғанда жүктеу мүмкіндігі де бар. Maclisp Digital Equipment Corporation PDP 6 және PDP 10 компьютерлерінде Incompatible Timesharing System (ITS) жүйесінде жұмыс істеді; кейін ол PDP 10 операциялық жүйелерінің барлығына, мысалы, Timesharing / Total Operating System, TOPS 10 және TOPS 20 жүйелеріне көшірілді. Бастапқы нұсқасы ассемблер тілінде жазылған, бірақ кейінірек Multics жүйесінде PL/I тілі қолданылды. Maclisp өмір бойында айтарлықтай дамыды. Басқа тілдердегі жүйелердегі негізгі жаңартпа нөмірлеріне сәйкес келетін маңызды мүмкіндіктер қосылды. Maclisp, Macsyma компьютерлік алгебра жүйесін (CAS) немесе символдық алгебра бағдарламасын іске асыру үшін пайдаланылды. Macsyma-ның дамуы Maclisp-тегі бірнеше мүмкіндіктерге де ықпал етті. SHRDLU блоктар әлемі бағдарламасы Maclisp-те жазылған, сондықтан тіл 1980 жылдардың басында жасанды интеллект (AI) зерттеу қауымдастығында кеңінен қолданылды. Ол сондай-ақ Planner және Scheme сияқты басқа бағдарламалау тілдерін іске асыру үшін де қолданылды. Multics Maclisp алғашқы Lisp негізіндегі Emacs-ты іске асыру үшін пайдаланылды. Maclisp – Lisp-тің ықпалды нұсқасы болды, бірақ қазіргі таңда активті түрде қолдау көрсетілмейді. Ол қазір PDP 10 эмуляторларында жұмыс істейді және ертедегі AI бағдарламаларын сынау үшін пайдаланылуы мүмкін.

Сипаттамалары

Maclisp дерек түрлерінің шағын, тұрақты санынан басталды: конс ұяшығы, атом (кейіннен символ деп аталды), бүтін сан және қалқыма нүктелі сан. Кейінірек қосылғандарға мыналар кірді: массивтер, олар ешқашан бірінші дәрежелі дерек түрлері болған жоқ; шексіз дәлдіктегі бүтін сандар (бигнумдар); жолдар; және түйіндер. Барлық нысандар (инумдардан басқа) көрсеткіштер ретінде іске асырылды, ал олардың дерек типі көрсеткен жад бөлігімен анықталды, кішкентай сандарға (инумдарға) ерекше жағдай жасалды. Бағдарламалар интерпретациялануы немесе компиляциялануы мүмкін. Компиляцияланған мінез-құлық интерпретацияланғаннан өзгеше болған жоқ, бірақ компиляцияланған кодта жергілікті айнымалылар әдепкі бойынша лексикалық болды, егер олар SPECIAL деп жарияланбаса, ал CAR және CDR сияқты тікелей операциялар үшін қателерді тексеру жүргізілмеді. Ncomplr компиляторы (1970-ші жылдардың ортасы) Lisp тілдеріне жылдам сандық қолдауды енгізді, дерек типіне сәйкес интерпретациялық процедураларды шақырудың орнына арифметикалық операциялар үшін машиналық кодты (нұсқауларды) жасады. Бұл Lisp арифметикасын скалярлық операциялар бойынша Fortran-мен салыстыруға мүмкіндік берді (Fortran массивтері мен циклдарды іске асыру әлдеқайда жылдам болса да). Бастапқы нұсқа PDP 10 машинасының 18 биттік жад адресімен шектелген, сондықтан іске асыруды қарапайым және тиімді етуге көп күш жұмсалды. Multics Maclisp-тің жад кеңістігі әлдеқайда үлкен болды, бірақ оны пайдалану қымбатқа түсті. PDP 10 машинасының жады мен өңдеу қуаты жетіспеген кезде Lisp машинасы ойлап табылды: Lisp машинасы Lisp, Maclisp-тің тікелей мұрагері. Басқа да бірнеше Lisp диалектілері қолданыста болды, ал қауымдастықты біріктіру қажеттілігінен қазіргі Common Lisp тілі пайда болды.

Атауы

Maclisp, Mac жобасының құрметіне аталған, және Apple компаниясының Macintosh (Mac) компьютерімен (ол одан ондаған жылдар бұрын пайда болған) немесе Джон Маккартимен ешқандай қатысы жоқ. Macintosh компьютері үшін жасалған түрлі Lisp жүйелерінің Maclisp-пен ешқандай ерекше ұқсастығы жоқ.