PostScript | |
Ensimmäisen version päivämäärä | 1982 |
---|---|
Paradigma | multiparadigma : pino suuntautunut , menettelyllinen |
Kehittäjä | Adobe Systems |
Viimeinen versio | 3 (1997) |
Kirjoittaminen | dynaaminen, vahva |
Vaikuttanut | Neljäs |
Vaikuttanut | |
Toteutukset | Adobe PostScript , TrueImage , Ghostscript |
Tiedostopääte | ps |
Laajennus | .ps |
---|---|
MIME-tyyppi | application/postscript |
PUID | fmt / 501 , x-fmt / 408 , x-fmt / 407 , x-fmt / 406 , x-fmt / 91 |
Kehittäjä | Adobe |
Formaatin tyyppi | tulosta tiedostomuoto |
Alkuperä | Koteloitu PostScript |
PostScript on sivunkuvauskieli kehittämä Adoben . Se perustuu useimpien sen elementtien vektoriformulaatioihin . Se osaa myös käsitellä rasterikuvia (kohta kohdalta).
Tämän alustojen välisen kielen avulla on mahdollista saada yksi tiedosto, joka sisältää kaikki sivua kuvaavat elementit (tekstit, kuvat, fontit, värit jne.).
PostScript on tullut käytännöllisesti katsoen vakio, useimmat laser- tulostimet sisältää tulkin ja voi suoraan käsitellä asiakirja on kuvattu tässä muodossa. Toisissa tapauksissa on välttämätöntä käyttää syöttöohjelmistosuodatinta muuntamaan PostScript-kieli näiden tulostimien ymmärtämään rasterimuotoon .
Adobe on pysäyttänyt PostScript-kehityksen vuodesta 2007, jotta PDF voi ottaa sen käyttöön.
Muita PostScript-jälkeläisiä ovat:
Postscript on täydellinen kieli, joka sallii minkä tahansa algoritmin koodaamisen . Vaikka tällaisten ohjelmien kirjoittaminen on täysin mahdollista, ne valmistavat yleensä muut ohjelmat, kuten tulostinohjaimet.
Postscript on erottamaton ympäristöstä, jossa se suoritetaan. Kun otetaan huomioon tämän kielen täysin dynaaminen luonne, sitä tullaan tulkitsemaan .
Tulkki toimii manipuloimalla pinoa ja useita sanakirjoja. Pinoa käytetään väliaikaisesti toimintoparametrien ja sitten niiden tulosten tallentamiseen. Sanakirjat sallivat muuttujien sekä toimintokoodin tallentamisen.
PostScript-ohjelma koostuu sekvensseistä, jotka on erotettu välilyönneillä, sarkaimella (TAB), rivinvaihdolla (CR), rivinvaihdolla (LF) tai kommenteilla. Tulkki analysoi jokaisen PostScript-ohjelman sanan peräkkäin toimimalla laskimena käänteisessä puolankielisessä merkinnässä , ts. Jokainen sana arvioidaan, sitten kyseisen arvioinnin tulos (t) sijoitetaan pinon päälle ja niin edelleen.
Esimerkki yksinkertaisen numeerisen laskennan b 2 - 4 ac suorittamiseksi voidaan koodata: b b mul 4 a mul c mul sub
PostScript tukee seuraavia viittä sanatyyppiä:
Numeerinen vakio kokonaisluku ( 123) tai real ( 3.14159), arviointi lisää numeerisen arvon pinon yläosaan; Merkkijono vakio ne ovat sulkujen ympäröimiä merkistöjä, esim (Abc). merkkijono "Abc"; Viittaus nimeen /aedustaa nimeä "a", jota voidaan käyttää muuttujan tai funktion nimeämiseen; viite lisätään pinon yläosaan; Sukunimi se voi olla ennalta määritetyn tai luodun menettelyn, muuttujan, sanakirjan nimi; nimi etsitään aktiivisista sanakirjoista, sitten jos se on arvo, se sijoitetaan pinoon ja jos se on funktio, sitä kutsutaan (suoritetaan); funktion arviointi voisi käyttää pinon yläosassa olevia arvoja ja korvata ne tuloksilla; Rakentaja neljän rakentajan avulla voit luoda erikokoisia tietorakenteita. Ne koostuvat pariksi yhdistetyistä merkeistä, jotka rajaavat rakenteen alun ja lopun:Sanakirjat ovat taulukoita, joissa on vain kaksi saraketta:
Tämän ominaisuuden avulla sanakirja toimii siten kuin taulukko, jossa on yksi sarake, mutta jonka hakemisto voi olla minkä tahansa tyyppinen rajoittumatta yksinkertaiseen kokonaislukualueeseen.
Sanakirjaa hallitaan kuten hash-taulukko (kielten itse määrittelemän hash-toiminnon ansiosta), jonka alkukoko voidaan määrittää luomisen yhteydessä haluamiesi nimi-arvo-parien lukumäärän mukaan. rajoittaa törmäysten esiintymistä (PostScript kuitenkin tietää kuinka sanakirjan kokoa muutetaan dynaamisesti nimissä olevien törmäysten määrän tai sen täyttöasteen mukaan). PostScript-sanakirjoja käytetään ensisijaisesti (mutta ei yksinomaan) muualla kielellä nimettyjen ja niihin viitattujen muuttujien laajuuden määrittämiseen (dynaamisesti) .
Ennalta määriteltyjen operaattoreiden joukosta tärkein on def, että se sallii nykyiseen sanakirjaan lisätä nimi-arvo-assosiaation, jonka avulla voidaan määritellä uusia muuttujia niiden arvolla tai muokata niiden arvoa ja määrittää tai määritellä uudelleen funktiot. Siksi voimme nähdä, että Postscriptissä suoritettava koodi on tietoja melkein kuin kaikki muutkin, ja se voidaan luoda lennossa, muokattuna.
Esimerkkejä:
Viimeisessä yllä olevassa esimerkissä mikään ei osoita, että muuttuja nimeltä "counter" on sama kuin se, josta otimme arvon. Nimitystä "def" käytetään nimi- ja arvoyhdistelmän tallentamiseen vain nykyiseen sanakirjaan eikä missään muussa sanakirjaan pinoa. Laskurimuuttujan (toinen viite yllä olevassa koodissa) lukeminen voi kuitenkin palauttaa muuttujan arvon, joka löytyy muusta kuin nykyisestä sanakirjasta (tai tuottaa poikkeuksen ajon aikana, jos mikään soveltamisalueen pinossa olevista sanakirjoista ei sisältää muuttujan tällä nimellä): tässä tapauksessa uusi muuttuja lisätään "def": llä nykyiseen sanakirjaan muuttamatta alkuperäistä muuttujaa, josta se löydettiin, mikä säilyttää sen arvon; niin kauan kuin nykyinen sanakirja on aktiivinen, uusi muuttuja piilottaa vanhan. Tämän laitteen avulla on siten mahdollista hallita paikallisia muuttujia muulla tavalla kuin suhteellisen sijainnin avulla pinossa.
PostScript voi erottaa viittaukset muuttujaan (sen nimen jälkeen annettu nimi /) ja viittaukset sen arvoon. Viitettä ei kuitenkaan ratkaista missään laajennetussa sanakirjassa, ennen kuin se on liitetty sanakirjaan sen etsimistä varten. Kun nimeä käytetään ilman /nimikirjainta, se etsitään heti toiminnon kokoamisen aikana aktiivisissa sanakirjoissa (alkaen nykyisestä sanakirjasta käännöksen aikana eikä siitä, joka on aktiivinen, kun toiminto suoritetaan), sitten muuttujan nimi korvataan pinon ajonaikana tähän nimeen liittyvällä arvolla sanakirjassa, josta nimi löytyi.
Jotta voisimme luoda täydellisen viittauksen tarkkaan määriteltyyn muuttujaan eikä sen arvoon tai toiseen samannimiseen muuttujaan toisessa sanakirjassa, meidän on ilmoitettava paitsi tämän muuttujan nimi myös viittaus sitä sisältävään sanakirjaan ja missä sitä on haettava. Jos sanakirjaan ei viitata (esimerkiksi jättämättä etuliitettä a /), nimen tarkkuus on dynaaminen ja voi siksi viitata erilaisiin muuttujiin suoritusyhteyden mukaan.
Postcript määrittelee sen vuoksi kaksi erillistä asiayhteyttä muuttujalle viittauksen käyttämiseen:
Tämä käyttäytyminen muuttujan poissulkemiselle (lukuoikeus) on siten hyvin erilainen kuin muuttujan tallentaminen, defjolla aina tehdään nykyisen sanakirjan mukaan vain suoritushetkellä.
minkä tahansa | pop- | - | poistaa elementin pinosta | |||||||
mikä tahansa 1 | mikä tahansa 2 | Exch | kaikki 2 | kaikki 1 | Vaihda kaksi elementtiä | |||||
... | ... | |||||||||
numero 1 | numero 2 | lisätä | summa | palauttaa numeron 1 plus luvun 2 | ||||||
numero 1 | numero 2 | div | osamäärä | palauttaa luvun 1 jaetun luvun 2 | ||||||
kokonaisluku 1 | kokonaisluku 2 | idiv | osamäärä | palauttaa kokonaisluvun 1 jaetun kokonaisluvun 2 | ||||||
... | ... |
PostScript toimitetaan Adobe Companyn lisenssillä. Siellä on kuitenkin ilmainen PostScript-tulkki, Ghostscript .