Кіріспе
POP 2 (POP2) – 1970 жылы Эдинбург университетінде Робин Попплстоун мен Род Бурсталл жасаған, алдыңғы POP 1 (Робин Попплстоунның 1968 жылы әзірлеген, бастапқыда COWSEL деп аталған) бағдарламалау тілінен туындаған бағдарламалау тілі. Ол Lisp және ALGOL 60 тілдері, сондай-ақ Питер Дж. Ландиннің теориялық идеялары сияқты көптеген көздерден бастау алды. Ол инкременттік компиляторды қолданды, бұл оған интерпретацияланатын тілдің икемділігін берді, соның ішінде орындалу кезінде жаңа функцияларды анықтауға және бағдарлама жұмыс істеп тұрғанда функция анықтамаларын өзгертуге мүмкіндік берді (екеуі де динамикалық компиляцияның мүмкіндіктері), бірақ интерпретацияланатын тілдің қосымша жүктемесіз.
POP 2 (also called POP2) is a programming language developed around 1970 from the earlier language POP 1 (developed by Robin Popplestone in 1968, originally named COWSEL) by Robin Popplestone and Rod Burstall at the University of Edinburgh. It drew roots from many sources: the languages Lisp and ALGOL 60, and theoretical ideas from Peter J. Landin. It used an incremental compiler, which gave it some of the flexibility of an interpreted language, including allowing new function definitions at run time and modification of function definitions while a program runs (both of which are features of dynamic compilation), without the overhead of an interpreted language.
Тарих
POP 2 бастапқы нұсқасы Эдинбург университетінің Elliott 4130 компьютерінде іске асырылды (тек 64 КБ жедел жадпен, 1972 жылы 128 КБ-қа дейін екі есеге арттырылды). POP 2 1968 жылы Джон Скотт Ланкастер университетінде 1909 модельді ICT 1900 сериясына көшірді. 1970 жылдардың ортасында POP 2 BESM 6 (POPLAN жүйесі) жүйесіне көшірілді. Келесі нұсқалар Computer Technology Limited (CTL) Modular One, PDP 10, ICL 1900 сериясы (George операциялық жүйесімен жұмыс істейтін) үшін іске асырылды. Эдинбургте Джулиан Дэвис POP 2 нұсқасын кеңейтіп, оны POP 10 деп атады. Бұл POP 2 диалектісінің алғашқы нұсқасы болды, ол идентификатор атауларында регистрді маңызды деп есептеді, жүйелік идентификаторлардың көп бөлігі үшін кіші әріптерді қолданды және 8 символдан астам ұзын идентификаторларды қолдады. Содан кейін, Роберт Рэй мен Аллан Рамзи Эдинбургте ғылыми кеңеспен қаржыланған жобада WPOP (WonderPop) деп аталатын жаңа нұсқаны жасады. Бұл нұсқа қоршалған адрестік кеңістіктерді, компиляция уақытындағы кейбір синтаксистік типтеуді (мысалы, бүтін және нақты сандар үшін) және әртүрлі деректер құрылымдарымен қолдануға болатын үлгілерді сәйкестендіру құрылымдарын енгізді. Сонымен қатар, Стив Харди Сассекс университетінде POP 2 ішкі жиынтығын іске асырды, оны POP 11 деп атады, ол Digital Equipment Corporation (DEC) PDP 11/40 компьютерінде жұмыс істеді. Ол бастапқыда DEC операциялық жүйесі RSX 11D-де оқыту үшін уақытты бөлісу режимінде жұмыс істеуге арналған, бірақ бұл көптеген мәселелерді тудырды, сондықтан Unix-тің ерте нұсқасы орнатылып, оның орнына пайдаланылды. Pop 11 нұсқасы Unix тілінде жазылды, код аралық байт-кодқа жинақталып, интерпретацияланды. Бұл көшіру шамамен 1976 жылы аяқталды, нәтижесінде Pop 11 бірнеше орындарда оқыту үшін қолданылды. Оқыту функциясын қолдау үшін POP 2 синтаксистік ерекшеліктерінің көп бөлігі өзгертілді, мысалы, POP 2-дегі барлық циклдар үшін қолданылатын орнына, ашылу жақшаларына сәйкес келетін жабылу жақшалары бар цикл құрылымдарының әртүрлілігі қосылды. Pop 11 тізім құрылымдары үшін де үлгіні сәйкестендіруді енгізді, бұл жасанды интеллект (AI) бағдарламалауды оқытуды әлдеқайда жеңілдетті. 1980 жылдардың басында Стив Харди мен Джон Гибсон Pop 11-ді VAX 11/780 компьютеріне көшірді, содан кейін ол толық инкременттік компилятормен ауыстырылды (интерпретацияланған аралық кодтың орнына машиналық кодты шығару). Компилятордың және оның барлық кіші бағдарламаларының жұмыс уақытында болуы макростармен мүмкін емес тілдік кеңейтулерді қолдауға мүмкіндік берді, нәтижесінде Pop 11 (Стив Харди, Крис Мелиш және Джон Гибсон) Prolog-тың стандартты синтаксисін пайдалана отырып, Prolog-тың іске асырылуын жасады және біріктірілген жүйе Poplog деп аталды, оған кейін Common Lisp және Standard ML қосылды. Бұл нұсқа кейінірек әртүрлі машиналар мен операциялық жүйелерге көшірілді, нәтижесінде Pop 11 POP 2-нің басым диалектісі болды, ол әлі де Poplog жүйесінде қол жетімді. 1986 жыл шамасында жаңа AI компаниясы Cognitive Applications Ltd., Сассекс университетінің мүшелерімен бірлесіп, Apple Mac компьютерінде жұмыс істейтін, интеграцияланған графикасы бар AlphaPop деп аталатын Pop 11 нұсқасын жасады. Бұл көптеген коммерциялық жобаларда және бірнеше университеттерде AI бағдарламалауды оқытуда қолданылды. Ол C тілінің ерте диалектісінде жасалған және ерекше компиляторды қолданғандықтан, Mac операциялық жүйесінің жаңа нұсқаларына жаңарту және жаңарту өте қиын болды. Сонымен қатар, AlphaPop "32 биттік таза" емес еді, өйткені объектінің түрін көрсету үшін жоғары адрестік биттерді тег биттері ретінде қолданды, бұл кейінгі Macintosh-тарда 8 МБ-тан жоғары жадты пайдаланумен үйлеспейтін.