POP-11 - POP-11
POP-11 je reflexní, přírůstkově kompilován programovací jazyk s mnoha funkcemi tlumočený jazyk. Je to základní jazyk Poplog programování životní prostředí původně vyvinut University of Sussex, a nedávno na Škole informatiky na University of Birmingham, který hostí hlavní web Poplog. Nyní existuje také a [1] Web Github Poplog] s hlavními zdrojovými soubory.
POP-11 je vývoj jazyka POP-2, vyvinut v Edinburgh University a má otevřený zásobník model (jako Forth mezi ostatní ). Je to hlavně procesní, ale podporuje deklarativní jazykové konstrukce, včetně porovnávače vzorů, a používá se většinou pro výzkum a výuku v umělá inteligence, i když má funkce dostatečné pro mnoho dalších tříd problémů. Často se používá k zavedení technik symbolického programování pro programátory běžnějších jazyků Pascal, kterým je syntax POP důležitější než syntaxe Lisp. Jednou z funkcí POP-11 je, že podporuje prvotřídní funkce.
POP-11 je základní jazyk systému Poplog. Dostupnost kompilátoru a podprogramů kompilátoru za běhu (požadavek na přírůstkovou kompilaci) mu dává možnost podporovat mnohem širší škálu rozšíření (včetně rozšíření za běhu, jako je přidání nových datových typů), než by bylo možné pouze pomocí a makro zařízení. To umožnilo přidání (volitelných) přírůstkových kompilátorů pro Prolog, Společný Lisp a Standardní ML, které lze podle potřeby přidat k podpoře vývoje smíšeného jazyka nebo vývoje ve druhém jazyce bez použití jakýchkoli konstruktů POP-11. Díky tomu mohl být Poplog používán učiteli, výzkumníky a vývojáři, kteří se zajímali pouze o jeden z jazyků. Nejúspěšnějším produktem vyvinutým v POP-11 byla Clementine Dolování dat systém vyvinutý společností ISL. Poté, co SPSS koupila ISL, se rozhodli přenést Clementine na C ++ a Javu a nakonec uspěli s velkým úsilím (a možná i určitou ztrátou flexibility poskytované použitím jazyka AI).
POP-11 byl po určitou dobu k dispozici pouze jako součást nákladného komerčního balíčku (Poplog), ale přibližně od roku 1999 je volně dostupný jako součást Open Source verze Poplogu, včetně různých dalších balíčků a výukových knihoven. Online verze ELIZA pomocí POP-11 je k dispozici v Birminghamu.
Na univerzitě v Sussexu David Young použil POP-11 v kombinaci s C a Fortranem k vývoji sady výukových a interaktivních vývojových nástrojů pro zpracování obrazu a vidění a zpřístupnil je v rozšíření Popvision k Poplogu.
Jednoduché příklady kódu
Zde je příklad jednoduchého programu POP-11:
definovat Double (Zdroj) -> Výsledek; Zdroj * 2 -> Výsledek; enddefine;
Double (123) =>
Vytiskne se:
** 246
Toto zahrnuje některé zpracování seznamu:
definovat RemoveElementsMatching (prvek, zdroj) -> výsledek; index lvars; [[% pro index ve zdroji, pokud Index = Element nebo Index neodpovídá Elementu poté Index; nekonečný; endfor; %]] -> Výsledek; enddefine; RemoveElementsMatching ("the", [[kočka seděla na podložce]]) => ;;; výstupy [[kočka seděla na podložce]] RemoveElementsMatching ("the", [[kočka] [seděla na] podložce]) => ;;; výstupy [[kočka] [sat na] mat] RemoveElementsMatching ([[= kočka]], [[kočka]] je [[velká kočka]]) => ;;; výstupy [[je]]
Příklady použití porovnávače vzorů POP-11, díky kterému se studenti relativně snadno naučí vyvíjet sofistikované programy pro zpracování seznamu, aniž by museli zacházet se vzory jako se stromovými strukturami přístupnými funkcemi „head“ a „tail“ (CAR a CDR v Lispu) , najdete v online úvodní výukový program. Matcher je srdcemsada nástrojů SimAgent (sim_agent). Některé z výkonných funkcí sady nástrojů, například propojování proměnných vzoru s proměnnými vloženého kódu, by bylo velmi obtížné implementovat bez přírůstkového vybavení kompilátoru.
Viz také
- COWSEL (aka POP-1) programovací jazyk
Reference
- R. Burstall, A. Collins a R. Popplestone, Programování v Pop-2 University Press, Edinburgh, 1968
- D.J.M. Davies, Uživatelská příručka POP-10, Computer Science Report # 25, University of Western Ontario, 1976
- S. Hardy a C. Mellish, „Integrace Prologu do prostředí Poplogu“, v Implementace Prologu, Ed., J.A. Campbell, Wiley, New York, 1983, s. 147–162
- R. Barrett, A, Ramsay a A. Sloman, POP-11: Praktický jazyk pro umělou inteligenciEllis Horwood, Chicester, 1985
- M. Burton a N. Shadbolt, Programování POP-11 pro umělou inteligenci, Addison-Wesley, 1987
- J. Laventhol, Programování v POP-11, Blackwell Scientific Publications Ltd., 1987
- R. Barrett a A. Ramsay, Umělá inteligence v praxi: Příklady v Pop-11Ellis Horwood, Chicester, 1987.
- M. Sharples a kol., Počítače a myšlení, MIT Press, 1987. (An Introduction to Cognitive Science using Pop-11. Online version referenced above.)
- James Anderson, ed., Pop-11 Comes of Age: Povýšení programovacího jazyka AIEllis Horwood, Chichester, 1989
- G. Gazdar a C. Mellish, Zpracování přirozeného jazyka v Pop11 / Prolog / Lisp, Addison Wesley, 1989. (číst online )
- R. Smith, A. Sloman a J. Gibson, podpora dvouúrovňového virtuálního stroje POPLOG pro interaktivní jazyky, in Pokyny k výzkumu v kognitivních vědách, svazek 5: Umělá inteligence, Eds. D. Sleeman a N. Bernsen, Lawrence Erlbaum Associates, s. 203–231, 1992. (Dostupné jako Zpráva o výzkumu kognitivních věd 153, School of Informatics, University of Sussex).
- Chris Thornton a Benedict du Boulay, Umělá inteligence prostřednictvím vyhledávání, Kluwer Academic (brožovaná verze Intellect Books) Dordrecht Nizozemsko & Norwell, MA USA (Intellect v Oxfordu) 1992.
- A. Sloman, Pop-11 Primer, 1999 (třetí vydání)
externí odkazy
- Zdarma portál Poplog
- Informace o učebních materiálech POP-11
- Web Poplog.org (včetně částečného zrcadla webu Free poplog) (aktuálně zaniklý: viz jeho novější kopie (17. června 2008) @ Internetový archiv Wayback Machine )
- Přehled POP-11 (základ pro zkušené programátory) (alt. PDF )
- Waldek Hebisch vytvořil malou sbírku příklady programování v Pop-11, který ukazuje, jak jej lze použít pro manipulaci se symboly, numerický výpočet, logiku a matematiku.
- Počítače a myšlení: Praktický úvod do umělé inteligence online kniha představuji Kognitivní věda přes Pop-11.
- Projekt OpenPoplog sourceforge.
- Sada nástrojů SimAgent (sim_agent)
- Pop-11 Eliza v poplog Systém. Výukový program na Elizu
- Historie výuky AI v Pop-11 od roku 1976.
- 2-D (X) graphics in Pop-11
- Třída objektů the objektově orientované programování rozšíření na Pop-11 (částečně po vzoru CLOS a podpůrné vícenásobné dědictví ).
- Výukový úvod k objektově orientovanému programování v Pop-11.
- Další reference
- Online dokumentace k Pop-11 a Poplog
- Online systémová dokumentace, včetně informací o přenosu
- Vstup pro Pop-11 na webových stránkách HOPL (History of Programming Languages)