Недетерминистички програмски језик је језик који се може одредити, у извесним тачкама програма (назван "Избор тачке"), различите алтернативе за ток програма. За разлику од, ако - онда изјави, метода избора између ових алтернатива није директно наведена од стране програмера; Програм мора да одлучи управљањем током између алтернатива, преко неке опште методе примењујући на свим изборима тачака. Програмер наводи ограничен број алтернатива, али програм касније мора да изабере између њих . ( "Изабери" је, у ствари, типично име за недетерминистичке оператере). Хијерархија одабери тачке могу бити формиране, са избором виших нивоа који су довели до гране које садрже изборе на нижем нивоу у њима.
Једна од метода избора је оличена у одустајању система (као што су АМБ , или уједињење у Пролог ), у којима неке алтернативе могу " пропасти, " изазивање програма да одустане и покушати друге алтернативе . Ако све алтернативе не изазову у одређеном тренутку избора , онда цео грана пада , а програм ће додатно одустати , у старији избору тачке . Један компликација је да, сваки избор је привремен и може бити поново направљен, систем мора бити у стању да поврати стари програм стања одвртањем споредних ефеката изазвањем делимично извршене гране која на крају није успела.
Друга метода избора је јачање учење, оличена у системима као што су Алисп . У таквим системима, радије него одустајање , систем прати неку меру успеха и учи што избори често доводи до успеха, и у којим ситуацијама (и унутрашњи Програм стања и улаз животне средине могу утицати на избор). Ови системи су погодни за примену у роботици и другим областима у којима би повлачење изјаве укључивало покушавање да се поништи акција извода у динамичном окружењу, што може бити тешко или непракрично.
Види још Недетерминизам
Литература
Maurizio Gabbrielli and Simone Martini: "Programming Languages: Principles and Paradigms", Springer, 2010. Ellis Horowitz (ed.): Programming Languages, a Grand Tour (3rd ed.), 1987. Ellis Horowitz: Fundamentals of Programming Languages, 1989. Bruce J. MacLennan: Principles of Programming Languages: Design, Evaluation, and Implementation, Oxford University Press 1999. John C. Mitchell: Concepts in Programming Languages, Cambridge University Press 2002. Benjamin C. Pierce: Types and Programming Languages, The MIT Press 2002. Terrence W. Pratt and Marvin V. Zelkowitz: Programming Languages: Design and Implementation (4th ed.), Prentice Hall 2000. Peter H. Salus. Handbook of Programming Languages (4 vols.). Macmillan 1998. Ravi Sethi: Programming Languages: Concepts and Constructs, 2nd ed., Addison-Wesley 1996. Michael L. Scott: Programming Language Pragmatics, Morgan Kaufmann Publishers 2005. Robert W. Sebesta: Concepts of Programming Languages, 9th ed., Addison Wesley 2009. Franklyn Turbak and David Gifford with Mark Sheldon: Design Concepts in Programming Languages, The MIT Press 2009. Peter Van Roy and Seif Haridi. Concepts, Techniques, and Models of Computer Programming, The MIT Press 2004. David A. Watt. Programming Language Concepts and Paradigms. Prentice Hall 1990. David A. Watt and Muffy Thomas. Programming Language Syntax and Semantics. Prentice Hall 1991. David A. Watt. Programming Language Processors. Prentice Hall 1993. David A. Watt. Programming Language Design Concepts. John Wiley & Sons 2004.
Категорија:Програмске парадигме