procedurální, deklarativní, a evoluční programování

Napsal Mgr.Radovan Kaluža (») 9. 5. 2006 v kategorii IT, internet, přečteno: 2206×
S příchodem umělé inteligence, přišla i změna ve způsobu programování. Východiskem je Minského teze, který pojmenoval tři přístupy programovaní s principy:
  • proveď ihned
  • proveď, když můžeš
  • proveď něco smysluplného

procedurální programování

První případ je procedurální programování. Program je tvořen posloupností příkazů, z nichž některé mohou tvořit cykly. V každém kroku programu je určeno, co se má vykonat v kroku následujícím. Programátor tak musí analyzovat, připravit a naprogramovat všechny situace, jež mohou nastat. (příklad – klasická procedura v pascalu). Jedná se o případ zpracování dat programem.

Def: Jestliže další krok postupu není explicitně definován programovou konstrukcí, proveď následující instrukci.

deklarativní programování

Druhý případ - deklarativní programování se orientuje na zákonitosti (pravidla) řešení problémů, které odděluje od vlastních řešících problémů. Někdy se toto nazývá situační programování. Hlavní částí programu je potom interpret použitých symbolických vyjádřených zákonitostí. Deklarativní programování zbavuje programátora nutnosti předvídat veškeré situace. Programuje pouze předepíše akce, do kterých se program může dostat a přitom nemusí předvídat, kdy takovéto akce nastanou. Operace se provádějí tehdy, když systém dospěje k situacím, které jejich vykonání vyžadují. Pokud se týká expertních systémů, pak takovéto prostředky představují jeden z hlavních předpokladů jejich vzniku. Deklarativním jazykem je například jazyk SQL.

Příklad: PRO_KAŽDÉ (x ležící_v Z) JESTLIŽE VÝŠKA (x > 175cm) PAK VYSOKÝ(x)

Def.: Jestliže mezi aktuálním a požadovaným stavem řešení vznikl rozdíl, pak jej odstraň vhodnou akcí (operací).

evoluční programování

Třetí případ je použití programů, které se dovedou učit a usuzovat na základě analogií. To se týká principu evolučního programování.
Def.: Jestliže je zadaný problém analogický s problémem, v minulosti úspěšně vyřešeným metodou M, pak se pokus tuto metodu použít i při řešení daného problému

Umělá inteligence změnila nároky na programováním, která spočívá v nutnosti přechodu od zpracování dat ke zpracování informací. Toto se promítlo v odklonu od klasického procedurálního programování a přechodu na programování deklarativní. Programový systém formalizuje otázku co se má řešit, bez nutnosti explicitního a detailního předpisu jak dospět k výsledku řešení.

Logické programování Použití klasických programovacích jazyků je pro realizaci nástrojů umělé inteligence neefektivní. Jazyk pro realizaci takovýchto nástrojů většinou vyžadují efektivní práci s daty v symbolickém tvaru, s bohatou vnitřní strukturou (seznamy, řetězce, stromy), mechanismus navracení, při prohledávání prostoru řešení, asociativní paměť a mechanismus pro automatickou dedukci. Proto byl vytvořen jazyk LISP a PROLOG.

Facebook Twitter Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
--==[FReeZ]==-- z IP *** | 17.6.2006 21:08
Tento clanek se mi velice zalibil, skoda ze to neni delsi a detailnejsi, rad bych take videl ukazky zdrojoveho kodu u jednotlivych metod programovani
Mgr.Radovan Kaluža | 18.6.2006 23:31
to byl jen takový náhled

pokud chceš vědět více o

procedurálním: tak něco třeba o PHP, C/C++, Pascal

deklarativní: jazyk MySQL

evoluční: PROLOG

něco najdeš na www.owebu.cz

z IP *** | 4.9.2006 02:11
Škoda že nejsi toho článku autorem.
kódl z IP 94.242.117.*** | 16.5.2010 15:39
škoda, že jsi ten článek celý zkopířoval a tvojeho tam není ani Ň debile
Robert z IP 78.108.102.*** | 13.6.2011 16:59
Ty tři stupně jsou snad:
Imperativní, Deklarativní a Evoluční - to je pohled z hodně obecnýho hlediska - z hlediska "jakym zp;sobem zadáváme programovacímu jazuku zadání"

Procedurální tam podle mě nepatří ... to patří do pohledu "jakym způsobem je psanej kód" To spíš patří do skupiny funkcionální, procedurální, objektové což je ale poněkud jiný téma než článek rozebírá


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
[*1*] [*2*] [*3*] [*4*] [*5*] [*6*] [*7*] [*8*] [*9*] [*10*] [*11*] [*12*] [*13*] [*14*] [*15*] [*16*] [*17*] [*18*] [*19*] [*20*] [*21*] [*22*] [*23*] [*24*] [*25*] [*26*] [*27*] [*28*] [*29*] [*30*] [*31*] [*32*] [*33*] [*34*] [*35*] [*36*] [*37*] [*38*] [*39*] [*40*] [*41*] [*42*] [*43*] [*44*] [*45*] [*46*] [*47*] [*48*] [*49*] [*50*]   [b] [obr]
Odpovězte prosím číslicemi: Součet čísel čtyři a sedm