Недетерминистичко програмирање
Недетерминистички програмски језик је језик који се може одредити, у извесним тачкама програма (назван "Избор тачке"), различите алтернативе за ток програма. За разлику од, ако - онда изјави, метода избора између ових алтернатива није директно наведена од стране програмера; Програм мора да одлучи управљањем током између алтернатива, преко неке опште методе примењујући на свим изборима тачака. Програмер наводи ограничен број алтернатива, али програм касније мора да изабере између њих . ( "Изабери" је, у ствари, типично име за недетерминистичке оператере). Хијерархија одабери тачке могу бити формиране, са избором виших нивоа који су довели до гране које садрже изборе на нижем нивоу у њима.
Једна од метода избора је оличена у одустајању система (као што су АМБ , или уједињење у Пролог ), у којима неке алтернативе могу " пропасти, " изазивање програма да одустане и покушати друге алтернативе . Ако све алтернативе не изазову у одређеном тренутку избора , онда цео грана пада , а програм ће додатно одустати , у старији избору тачке . Један компликација је да, сваки избор је привремен и може бити поново направљен, систем мора бити у стању да поврати стари програм стања одвртањем споредних ефеката изазвањем делимично извршене гране која на крају није успела.
Друга метода избора је јачање учење, оличена у системима као што су Алисп . У таквим системима, радије него одустајање , систем прати неку меру успеха и учи што избори често доводи до успеха, и у којим ситуацијама (и унутрашњи Програм стања и улаз животне средине могу утицати на избор). Ови системи су погодни за примену у роботици и другим областима у којима би повлачење изјаве укључивало покушавање да се поништи акција извода у динамичном окружењу, што може бити тешко или непракрично.
Види још
[уреди | уреди извор]Литература
[уреди | уреди извор]- Abelson, Harold; Sussman, Gerald Jay (1996). Structure and Interpretation of Computer Programs (2nd изд.). MIT Press. Архивирано из оригинала 09. 03. 2018. г. Приступљено 04. 01. 2017.
- 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.