P ′ ′ - P′′

P ′ ′
ParadigmaRozkazovací způsob, strukturovaný
NavrhlCorrado Böhm
Poprvé se objevil1964
Psací disciplínabez 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

  1. a jsou slova v P ′ ′.
  2. Li a jsou tedy slova v P ′ ′ je slovo v P ′ ′.
  3. Li je tedy slovo v P ′ ′ je slovo v P ′ ′.
  4. 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

  1. ^ https://github.com/Pbtflakes/pdbl
  2. ^ A b C Böhm, C .: „O rodině strojů Turing a související programovací jazyk“, ICC Bull. 3, 185-194, červenec 1964.
  3. ^ 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