Snoball

Snoball  je programovací jazyk na vysoké úrovni vyvinutý v letech 1962-1967 a určený především pro zpracování textových dat .

Hlavním cílem jazyka Snobol bylo ukázat princip (možnost jeho plné existence), že vše je struna . Navenek jazyk vypadá v takzvaném „starém stylu“: moderní myšlenky postupů jsou v něm těžko rozpoznatelné, ale jeho síla není nižší než LISP v práci v prostředí „umělé inteligence“.

Shoda vzorů založená na BNF gramatikách . Plně dynamický jazyk, včetně deklarací, typů, alokace paměti, dokonce i vstupních a výstupních bodů procedur. Implementace využívá virtuální makra pro zpracování řetězců, jednoduché přepsání maker pro jakýkoli existující počítač.

Jazyk, který je jazykem překladačů psaní, v němž základní princip, že vše je řetězec a má takovou „ošklivou“ syntaxi, se „přerodil“ do úplně jiného, ​​ani navenek podobného: Icon . Zpočátku to byl jen doplněk pro Snobol4, ale brzy se stal nezávislým programovacím jazykem.

Historie

Vývoj zahájili v roce 1962 Ralph Griswold, Ivan Polonsky a David Farber v AT&T Bell Labs. Jejich cílem bylo vytvořit jazyk pro zpracování řetězců pro práci se vzorci a analýzu grafů.

V roce 1950 Yngve z MIT vyvinul jazyk COMIT pro zpracování přirozeného jazyka na základě pravidel NFB, ale tým Bell Labs shledal COMIT pro jejich účely příliš restriktivním.

Jazyk se původně jmenoval SCL7 (Symbolic Computation Language 7), poté se jeho název změnil na SEXI (String Expression Interpreter), který byl v 60. letech 20. století zastaralý , a nakonec se stal známým jako SNOBOL (StriNg Oriented symBOlic Language) - uměle vytvořená zkratka. postrádající intuitivní význam. Bylo vyvinuto několik verzí jazyka Snobol - SNOBOL, SNOBOL2, SNOBOL3 a SNOBOL4. Ten měl úspěch v 70. letech 20. století .

Příklad

Najděte mezi vstupními řetězci palindrom složený z 0 a 1, maximální lichá délka:

START GRAMATIKA = 0 | 1| 0 *GRAMATIKA 0 | 1*GRAMATIKA 1 * Nastaví gramatiku NFB jako šablonu LOOP NEWLINE – TRIMCINPUT): F(END) * Získá další řádek bez mezer na konci. * V případě chyby přejděte na END. NEWLINE (POS(0) SPAN('0l") PROS(0)) : F(BAD) * Kontroluje řetězec pouze na nuly a jedničky. * SPAN je řetězec nul a jedniček. * POS(0) je první pozice. * PROS(0) je poslední. SN = VELIKOST (NOVÝ ŘÁDEK) DALŠÍ NOVÝ ŘÁDEK POS(0) GRAMATIKA . PALINDROME POS (SN) - :S(OK) F(NOTOK) * Řetězec je zkontrolován na gramatiku pomocí POS(SN) * Pokud se srovnání nezdaří, přejděte na poslední pozici. * V případě úspěchu se odpověď vytiskne. * Odpovídající část je přiřazena k PALINDROME OK OUTPUT="MATCH: " PALINDROME :(LOOP) NOTOK SN = SN - 1 :(DALŠÍ) ŠPATNÝ VÝSTUP = "NESPRÁVNÝ VSTUP: " NEWLINE :(LOOP) KONEC

Viz také

Odkazy

Literatura

Přehledy jazyků v knihách o programovacích jazycích obecně

Jazykové příručky