PostScript

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 PDF
Toteutukset Adobe PostScript , TrueImage , Ghostscript
Tiedostopääte ps
PostScript Ominaisuudet
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:

Kieli

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: Rakentajan aukko asettaa merkin pinoon, sitten peräkkäin kaikki tämän rakenteen elementit. Rakentajan sulkeminen noutaa kaikki elementit pinon aukkomerkistä, "rakentaa" vastaavan rakenteen ja sijoittaa sen pinoon.

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ä.

Operaattorit

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
... ...

Toteutus

PostScript toimitetaan Adobe Companyn lisenssillä. Siellä on kuitenkin ilmainen PostScript-tulkki, Ghostscript .

Huomautuksia ja viitteitä

  1. (in) "  Kuinka Adobe tuli menestyksekäs $ 95 miljardiin euroon SaaS Yritys  " on tuote vaatteita ,15. tammikuuta 2018(käytetty 14. maaliskuuta 2019 )
  2. Nicolas Six, "  Charles Geschke, tietokoneiden edelläkävijä ja Adoben perustaja, on kuollut  ", Le Monde ,19. huhtikuuta 2021( lue verkossa )

Katso myös

Aiheeseen liittyvät artikkelit

Ulkoiset linkit