Snoball

Snoball  este un limbaj de programare de nivel înalt dezvoltat în 1962-1967 și destinat în principal procesării datelor text .

Scopul principal al limbajului Snobol a fost de a arăta principiul (posibilitatea existenței sale depline) că totul este un șir . În exterior, limbajul arată în așa-numitul „stil vechi”: ideile moderne de proceduri sunt greu de recunoscut în el, dar puterea sa nu este inferioară LISP în lucrul într-un mediu de „inteligență artificială”.

Potrivirea modelelor bazată pe gramaticile BNF . Limbajul complet dinamic, inclusiv declarațiile, tipurile, alocarea memoriei, chiar și punctele de intrare și ieșire ale procedurilor. Implementarea folosește macrocomenzi virtuale de procesare a șirurilor, o simplă suprascriere a macrocomenzilor pentru orice computer existent.

Limbajul, care este limbajul de scriere a compilatoarelor, în care principiul de bază conform căruia totul este un șir și având o sintaxă atât de „urâtă”, a „renascut” într-una complet diferită, nici măcar similară în exterior: Icon . Inițial, a fost doar un supliment pentru Snobol4, dar în curând a devenit un limbaj de programare independent.

Istorie

Dezvoltarea a început în 1962 de Ralph Griswold, Ivan Polonsky și David Farber la AT&T Bell Labs. Scopul lor a fost să creeze un limbaj de procesare a șirurilor de caractere pentru lucrul cu formule și analiza graficelor.

În 1950, Yngve de la MIT a dezvoltat limbajul COMIT pentru procesarea limbajului natural pe baza regulilor NFB, dar echipa Bell Labs a considerat COMIT prea restrictiv pentru scopurile lor.

Limbajul a fost inițial numit SCL7 (Symbolic Computation Language 7), apoi numele său s-a schimbat în SEXI (String Expression Interpreter), care a fost depreciat în anii 1960 , iar în cele din urmă a devenit cunoscut sub numele de SNOBOL (String Oriented symBOlic Language) - un acronim creat artificial. lipsit de sens intuitiv. Au fost dezvoltate mai multe versiuni ale limbajului Snobol - SNOBOL, SNOBOL2, SNOBOL3 și SNOBOL4. Acesta din urmă s-a bucurat de succes în anii 1970 .

Exemplu

Găsiți printre șirurile de intrare un palindrom compus din 0 și 1, lungimea impară maximă:

START GRAMATICA = 0 | 1| 0 *GRAMATICA 0 | 1*GRAMATICA 1 * Setează gramatica NFB ca șablon LOOP NEWLINE - TRIMCIPUT) : F(END) * Obține următoarea linie fără spații în urmă. * În caz de eroare, săriți la END. NEWLINE (POS(0) SPAN('0l") PROS(0)): F(REAL) * Verifică un șir numai pentru zerouri și unu. * SPAN este un șir de zerouri și unu. * POS(0) este prima poziție. * PROS(0) este ultimul. SN = SIZE(NEWLINE) NEXT NEWLINE POS(0) GRAMATĂ . PALINDROME POS(SN) - :S(OK) F(NOTOK) * Șirul este verificat pentru gramatică folosind POS(SN) * Dacă comparația eșuează, săriți la ultima poziție. * Dacă a avut succes, răspunsul este tipărit. * Partea potrivită este atribuită lui PALINDROME OK OUTPUT="MATCH: " PALINDROME :(BUCLA) NOTOK SN = SN - 1 :(URMĂTOR) BAD OUTPUT = "INTRARE IMPROPRIĂ: " NEWLINE :(BUCLA) Sfârşit

Vezi și

Link -uri

Literatură

Prezentare generală a limbilor în cărți despre limbaje de programare în general

Ghiduri lingvistice