P ′ ′ - P′′
Paradigma | Rozkazovací způsob, strukturovaný |
---|---|
Navrhl | Corrado Böhm |
Poprvé se objevil | 1964 |
Psací disciplína | bez typu |
Dialekty | |
Brainfuck | |
Ovlivněno | |
Brainfuck |
P ′ ′ (P double prime[1]) je primitivní počítač programovací jazyk vytvořil Corrado Böhm[2][3] v roce 1964 popsat rodinu Turingovy stroje.
Definice
(dále psáno P ′ ′) je formálně definována jako sada slov na abecedě se čtyřmi instrukcemi , jak následuje:
Syntax
- a jsou slova v P ′ ′.
- Li a jsou tedy slova v P ′ ′ je slovo v P ′ ′.
- Li je tedy slovo v P ′ ′ je slovo v P ′ ′.
- Pouze slova odvozitelná z předchozích tří pravidel jsou slova v P ′ ′.
Sémantika
- je pásová abeceda a Turingův stroj s levou nekonečnou páskou, být prázdný symbol, ekvivalent k .
- Všechny pokyny v P ′ ′ jsou obměny sady všech možných konfigurací pásky; to znamená všechny možné konfigurace jak obsahu pásky, tak polohy hlavy pásky.
- je predikát říká, že aktuální symbol není . Není to instrukce a nepoužívá se v programech, ale místo toho se používá k definování jazyka.
- znamená přesunout hlavu pásky doprava o jednu buňku (pokud je to možné).
- znamená nahradit aktuální symbol s a poté posuňte hlavu pásky doleva o jednu buňku.
- znamená složení funkce . Jinými slovy, instrukce se provádí dříve .
- znamená iterovat v zatímco smyčka, s podmínkou .
Vztah k jiným programovacím jazykům
- P ′ ′ byl první “JÍT DO - bez imperativu strukturované programování jazyk k prokázání Turing-kompletní[2][3]
- The Brainfuck jazyk (kromě jeho I / O příkazů) je menší neformální variace P ′ ′. Böhm dává explicitní P ′ ′ programy pro každou ze sady základních funkcí dostatečných k výpočtu jakékoli vypočítatelná funkce, pouze pomocí , a čtyři slova kde s označující th opakovat z , a . Toto jsou ekvivalenty šesti příslušných příkazů Brainfuck [, ], +, -, <, >. Všimněte si, že od té doby , zvyšující aktuální symbol times will wrap around so that the result is to "decrement" the symbol in the current cell by one ().
Ukázkový program
Böhm[2] dává následující program pro výpočet předchůdce (X-1) celého čísla X > 0:
což se překládá přímo na ekvivalent Brainfuck program:
>[>]<[−[<[<]]−<]>+
Program očekává, že bude zastoupeno celé číslo bijective base-k notace, s kódování číslic respektive a mít před a za číslicovým řetězcem. (Např. V bijektivu base-2 by číslo osm bylo zakódováno jako , protože 8 v bijektivu base-2 je 112.) Na začátku a na konci výpočtu je pásková hlava na před číslicovým řetězcem.
Reference
- ^ https://github.com/Pbtflakes/pdbl
- ^ A b C Böhm, C .: „O rodině strojů Turing a související programovací jazyk“, ICC Bull. 3, 185-194, červenec 1964.
- ^ A b Böhm, C. a Jacopini, G .: „Vývojové diagramy, Turingovy stroje a jazyky s pouhými dvěma formačními pravidly“, CACM 9 (5), 1966. (Poznámka: Toto je nejvíce citovaný článek na věta o strukturovaném programu.)
Webové odkazy
- P ′ ′Online tlumočník: Demonstrace iterativu 99 lahví piva píseň vyložena v 337568 P ′ ′ instrukce.