Snoballia

Snoball  on korkean tason ohjelmointikieli , joka on kehitetty vuosina 1962-1967 ja tarkoitettu ensisijaisesti tekstidatan käsittelyyn .

Snobol-kielen päätavoite oli osoittaa periaate (sen täyden olemassaolon mahdollisuus), että kaikki on merkkijonoa . Ulkoisesti kieli näyttää ns. "vanhan tyylin" mukaiselta: siinä on vaikea tunnistaa nykyaikaisia ​​ideoita menettelytavoista, mutta sen teho ei ole huonompi kuin LISP "keinoälyn" ympäristössä työskennellessä.

BNF - kielioppiin perustuva kuvioiden sovitus . Täysin dynaaminen kieli, mukaan lukien ilmoitukset, tyypit, muistin varaus, jopa prosessin sisään- ja poistumispisteet. Toteutus käyttää merkkijonokäsittelyn virtuaalisia makroja, yksinkertaista makrojen korvaamista missä tahansa olemassa olevassa tietokoneessa.

Kieli, joka on kääntäjien kirjoituskieli, jossa perusperiaate, että kaikki on merkkijonoa ja jolla on niin "ruma" syntaksi, "syntyi uudelleen" täysin erilaiseksi, ei edes ulkoisesti samanlaiseksi: Icon . Alun perin se oli vain lisäosa Snobol4:lle, mutta siitä tuli pian itsenäinen ohjelmointikieli.

Historia

Kehityksen aloittivat vuonna 1962 Ralph Griswold, Ivan Polonsky ja David Farber AT&T Bell Labsissa. Heidän tavoitteenaan oli luoda merkkijonojen käsittelykieli kaavojen käsittelyä ja graafien analysointia varten.

Vuonna 1950 MIT:n Yngve kehitti COMIT-kielen luonnollisen kielen käsittelyyn NFB-sääntöihin perustuen, mutta Bell Labs -tiimi havaitsi COMITin liian rajoittavan heidän tarkoituksiinsa.

Kielen nimi oli alun perin SCL7 (Symbolic Computation Language 7), sitten sen nimi muutettiin SEXI:ksi (String Expression Interpreter), joka poistettiin käytöstä 1960-luvulla , ja lopulta se tunnettiin nimellä SNOBOL (StriNg Oriented symBOlic Language) - keinotekoisesti luotu lyhenne. vailla intuitiivista merkitystä. Snobol-kielestä on kehitetty useita versioita - SNOBOL, SNOBOL2, SNOBOL3 ja SNOBOL4. Jälkimmäinen menestyi 1970 - luvulla .

Esimerkki

Etsi syötemerkkijonoista palindromi , joka koostuu 0:sta ja 1:stä, suurin pariton pituus:

ALOITA KIELIOPAS = 0 | 1| 0 *KIELIOPAS 0 | 1*KIEMIOPPI 1 * Asettaa NFB-kieliopin malliksi SILMUKAUS UUSI - TRIMCINPUT) : F(END) * Saa seuraavan rivin ilman välilyöntejä. * Jos tapahtuu virhe, siirry kohtaan END. UUSI (POS(0) SPAN('0l") PLUSSAT(0)) : F(BAD) * Tarkistaa merkkijonosta vain nollia ja ykkösiä. * SPAN on nollien ja ykkösten merkkijono. * POS(0) on ensimmäinen paikka. * PROS(0) on viimeinen. SN = KOKO (UUSI) SEURAAVA UUSI LINE POS(0) KIELIOPAS . PALINDROME POS(SN) - :S(OK) F(EI OK) * Merkkijonon kielioppi tarkistetaan käyttämällä POS(SN) * Jos vertailu epäonnistuu, hyppää viimeiseen kohtaan. * Jos onnistuu, vastaus tulostetaan. * Vastaava osa on määritetty PALINDROMElle OK OUTPUT="MATCH: " PALINDROME :(LOOP) NOTOK SN = SN - 1 :(SEURAAVA) BAD OUTPUT = "VIRHEELLINEN SYÖTTÖ: " NEWLINE :(LOOP) LOPPU

Katso myös

Linkit

Kirjallisuus

Kielten yleiskatsaukset ohjelmointikieliä koskevissa kirjoissa

Kielioppaat