Pseudo kód - Pseudocode
Ve vědě o počítačích , pseudokód je prostý jazyk popis kroků k algoritmu nebo jiného systému. Pseudokód často používá strukturální konvence běžného programovacího jazyka , ale je určen spíše pro čtení člověkem než pro strojové čtení. Obvykle vynechává detaily, které jsou nezbytné pro strojové porozumění algoritmu, například deklarace proměnných a kód specifický pro jazyk. Programovací jazyk je doplněn o detaily popisu přirozeného jazyka , kde je to vhodné, nebo o kompaktní matematický zápis . Účelem používání pseudokódu je to, že je lidem srozumitelnější než konvenční kód programovacího jazyka a že je to efektivní a na prostředí nezávislý popis klíčových principů algoritmu. Běžně se používá v učebnicích a vědeckých publikacích k dokumentaci algoritmů a při plánování softwaru a dalších algoritmů.
Neexistuje žádný široký standard pro syntaxi pseudokódů , protože program v pseudokódu není spustitelný program, nicméně existují určité omezené standardy (například pro akademické hodnocení). Pseudokód připomíná kostrové programy , které lze kompilovat bez chyb. Vývojové diagramy , drakonové diagramy a grafy UML ( Unified Modeling Language ) lze považovat za grafickou alternativu k pseudokódu, ale potřebují více místa na papíře. Jazyky, jako je HAGGIS, překlenují propast mezi pseudokódem a kódem napsaným v programovacích jazycích.
aplikace
Učebnice a vědecké publikace související s počítačovou vědou a numerickými výpočty často používají pseudokód při popisu algoritmů, takže jim mohou porozumět všichni programátoři, i když všichni neznají stejné programovací jazyky. V učebnicích je obvykle průvodní úvod vysvětlující konkrétní používané konvence. Úroveň podrobnosti pseudokódu se v některých případech může blížit formalizovaným obecným jazykům.
Programátor , který potřebuje realizovat specifický algoritmus, obzvláště neznámý, bude často začínat popisem pseudokódu, a pak „překládat“ ten popis do cílového programovacího jazyka a modifikovat to správně komunikovat se zbytkem programu. Programátoři mohou také zahájit projekt načrtnutím kódu v pseudokódu na papíře před jeho napsáním v jeho skutečném jazyce, jako strukturační přístup shora dolů , s procesem kroků, které je třeba dodržovat.
Syntax
Pseudokód obecně ve skutečnosti nedodržuje pravidla syntaxe žádného konkrétního jazyka; neexistuje systematický standardní formulář. Někteří autoři si půjčují styl a syntaxi z řídicích struktur z nějakého konvenčního programovacího jazyka, i když se to nedoporučuje. Některé zdroje syntaxe zahrnují Fortran , Pascal , BASIC , C , C ++ , Java , Lisp a ALGOL . Deklarace proměnných se obvykle vynechávají. Volání funkcí a bloky kódu, jako je kód obsažený ve smyčce, jsou často nahrazeny jednořádkovou větou v přirozeném jazyce.
V závislosti na autorovi se proto pseudokód může velmi lišit stylem, od téměř přesné imitace skutečného programovacího jazyka v jednom extrému až po popis blížící se formátované próze v druhém.
Toto je příklad pseudokódu (pro fizz buzz matematické hry ):
Pseudokód ve stylu Fortran: program fizzbuzz
Do i = 1 to 100
set print_number to true
If i is divisible by 3
print "Fizz"
set print_number to false
If i is divisible by 5
print "Buzz"
set print_number to false
If print_number, print i
print a newline
end do
|
Pseudokód ve stylu Pascal: procedure fizzbuzz
For i := 1 to 100 do
set print_number to true;
If i is divisible by 3 then
print "Fizz";
set print_number to false;
If i is divisible by 5 then
print "Buzz";
set print_number to false;
If print_number, print i;
print a newline;
end
|
Pseudokód ve stylu C: void function fizzbuzz {
for (i = 1; i <= 100; i++) {
set print_number to true;
If i is divisible by 3 {
print "Fizz";
set print_number to false; }
If i is divisible by 5 {
print "Buzz";
set print_number to false; }
If print_number, print i;
print a newline;
}
}
|
Strukturovaný základní styl pseudokódu: Sub fizzbuzz()
For i = 1 to 100
print_number = True
If i is divisible by 3 Then
Print "Fizz"
print_number = False
End If
If i is divisible by 5 Then
Print "Buzz"
print_number = False
End If
If print_number = True Then print i
Print a newline
Next i
End Sub
|
Pseudokód v matematickém stylu
V numerických výpočtech se pseudokód často skládá z matematického zápisu , typicky z množinové a maticové teorie, smíchaného s řídicími strukturami konvenčního programovacího jazyka a možná také s popisy přirozeného jazyka . Jedná se o kompaktní a často neformální zápis, kterému rozumí široká škála matematicky vyškolených lidí a často se používá jako způsob popisu matematických algoritmů . Například operátor součtu ( značení kapitál-sigma ) nebo součin operátor ( zápis velkého písmene ) může představovat smyčku pro a výběrovou strukturu v jednom výrazu:
Return
Obvykle se pro matematické rovnice používá sazba, která není ASCII , například pomocí značkovacích jazyků, jako je TeX nebo MathML , nebo proprietárních editorů vzorců .
Pseudokód v matematickém stylu je někdy označován jako pidgin kód , například pidgin ALGOL (původ konceptu), pidgin Fortran , pidgin BASIC , pidgin Pascal , pidgin C a pidgin Lisp .
Běžné matematické symboly
Typ operace | Symbol | Příklad |
---|---|---|
Úkol | ← nebo: = |
c ← 2πr , c := 2πr
|
Srovnání | =, ≠, <,>, ≤, ≥ | |
Aritmetický | +, -, ×, /, mod | |
Podlaha/strop | ⌊, ⌋, ⌈, ⌉ |
a ← ⌊b⌋ + ⌈c⌉
|
Logický | a , nebo | |
Částky, produkty | Σ Π |
h ← Σa∈A 1/a
|
Příklad
Následuje delší příklad pseudokódu v matematickém stylu pro algoritmus Ford – Fulkerson :
algorithm ford-fulkerson is input: Graph G with flow capacity c, source node s, sink node t output: Flow f such that f is maximal from s to t (Note that f(u,v) is the flow from node u to node v, and c(u,v) is the flow capacity from node u to node v) for each edge (u, v) in GE do f(u, v) ← 0 f(v, u) ← 0 while there exists a path p from s to t in the residual network Gf do let cf be the flow capacity of the residual network Gf cf(p) ← min{cf(u, v) | (u, v) in p} for each edge (u, v) in p do f(u, v) ← f(u, v) + cf(p) f(v, u) ← −f(u, v) return f
Strojová kompilace jazyků ve stylu pseudokódů
Gramatika přirozeného jazyka v programovacích jazycích
Různé pokusy o vnesení prvků gramatiky přirozeného jazyka do počítačového programování přinesly programovací jazyky jako HyperTalk , Lingo , AppleScript , SQL , Inform a do jisté míry Python . V těchto jazycích jsou závorky a další speciální znaky nahrazeny předložkami, což má za následek docela hovorný kód. Tyto jazyky jsou typicky dynamicky zadávány , což znamená, že deklarace proměnných a další standardní kód lze vynechat. Takové jazyky mohou člověku bez znalosti jazyka usnadnit porozumění kódu a možná i jeho osvojení. Podobnost s přirozeným jazykem je však obvykle spíše kosmetická než skutečná. Pravidla syntaxe mohou být stejně přísná a formální jako v konvenčním programování a nemusí nutně usnadňovat vývoj programů.
Matematické programovací jazyky
Alternativou k použití matematického pseudokódu (zahrnujícího notaci teorie množin nebo maticových operací) pro dokumentaci algoritmů je použití formálního matematického programovacího jazyka, který je kombinací jiných než ASCII matematických zápisů a struktur řízení programu. Potom může být kód analyzován a interpretován strojem.
Několik jazyků formální specifikace obsahuje notaci teorie množin pomocí speciálních znaků. Příklady jsou:
- Z notace
- Vienna Development Method Specification Language (VDM-SL).
Některé programovací jazyky pole obsahují vektorizované výrazy a maticové operace jako vzorce jiné než ASCII, smíchané s konvenčními řídicími strukturami. Příklady jsou:
- Programovací jazyk (APL) a jeho dialekty APLX a A+ .
- MathCAD .
Viz také
- Programování konceptu
- Drakonův diagram
- Vývojový diagram
- Gramotné programování
- Programovací jazyk programu
- Krátký kód
- Strukturovaná angličtina
Reference
Další čtení
- Zobel, Justin (2013). „Algoritmy“. Psaní pro počítačovou vědu (druhé vydání.). Springer. ISBN 978-1-85233-802-2.
externí odkazy
- Standard pseudokódu
- Shromážděné algoritmy ACM
- Pokyny pro pseudokód , soubor PDF.