Utóirat

Utóirat
Az első változat kelte 1982
Paradigma multiparadigm  : veremorientált , eljárási
Fejlesztő Adobe Systems
Utolsó verzió 3 (1997)
Gépelés dinamikus, erős
Befolyásolta Tovább
Befolyásolt PDF
Végrehajtások Adobe PostScript , TrueImage , Ghostscript
Fájlkiterjesztés ps
Utóirat Jellemzők
Kiterjesztés .ps
MIME típus application/postscript
PUID fmt / 501 , x-fmt / 408 , x-fmt / 407 , x-fmt / 406 , x-fmt / 91
Fejlesztette Vályogtégla
Formátum típusa nyomtatási fájlformátum
Eredete Kapszulázott PostScript

A PostScript az Adobe által kifejlesztett oldalleíró nyelv . A legtöbb elemének vektoros megfogalmazásain alapul . Azt is tudja, hogyan kell raszteres képeket feldolgozni (pontról pontra).

Ez a platformközi nyelv lehetővé teszi egyetlen fájl megszerzését, amely tartalmazza az oldalt leíró összes elemet (szövegek, képek, betűtípusok, színek stb.).

PostScript vált gyakorlatilag egy hagyományos, a legtöbb lézer nyomtatók tartalmaznak tolmács és közvetlenül feldolgozni a dokumentumokat le ebben a formátumban. A többieknél szoftveres szűrőt kell használni a bemenetben a PostScript nyelv konvertálásához a nyomtatók által érthető raszteres formátumba .

Az Adobe 2007 óta leállította a PostScript fejlesztését, hogy a PDF átvehesse.

A PostScript további leszármazottai:

Nyelv

A Postscript egy teljes nyelv, amely lehetővé teszi bármely algoritmus kódolását . Bár ilyen programokat közvetlenül lehet írni, ezeket általában más programok készítik, például nyomtató-illesztőprogramok.

A Postscript elválaszthatatlan attól a környezettől, amelyben végrehajtják. Tekintettel e nyelv teljesen dinamikus jellegére, valójában értelmezni fogják .

A tolmács verem és több szótár manipulálásával működik. A verem ideiglenes tárolóként szolgál a funkcióparaméterekhez, majd azok eredményéhez. A szótárak lehetővé teszik a változók, valamint a függvények kódjának tárolását.

A PostScript program szóközökből áll, szóközökkel, tabulátorral (TAB), kocsivissza (CR), sor előtolással (LF) vagy megjegyzésekkel elválasztva . Az tolmács egymás után elemzi a PostScript program egyes szavait úgy, hogy számológépként működik fordított lengyel jelöléssel , vagyis minden szót kiértékel, majd az értékelés eredményét a verem tetejére helyezzük, és így tovább.

Például a b 2 - 4 ac egyszerű numerikus számítás elvégzéséhez ez kódolható: b b mul 4 a mul c mul sub

A PostScript a következő öt típusú szót támogatja:

Numerikus állandó integer ( 123) vagy real ( 3.14159), az értékelés hozzáadja a numerikus értéket a verem tetejéhez; Karakterlánc állandó zárójelekkel körülvett karaktertömbök, például (Abc)az "Abc" karakterláncot képviseli; Hivatkozás egy névre /aaz "a" nevet jelenti, amely egy változó vagy egy függvény megnevezésére használható; a hivatkozás a verem tetejére kerül; Vezetéknév lehet egy előre definiált vagy létrehozott eljárás neve, egy szótár változója; a nevet az aktív szótárakban keressük meg, majd ha érték, akkor a veremre kerül, és ha függvény, akkor meghívjuk (végrehajtjuk); egy függvény értékelése felhasználhatja a verem tetején lévő értékeket, és helyettesítheti őket bármilyen eredménnyel; Építész négy konstruktor lehetővé teszi változó méretű adatstruktúrák létrehozását. Párosított karakterekből állnak, amelyek körülhatárolják a szerkezet elejét és végét: A kivitelező nyílása jelet helyez a veremre, majd egymás után ennek a szerkezetnek az összes elemét. A konstruktor bezárása lekéri az összes elemet a verem nyitójeléről, „felépíti” a megfelelő struktúrát és elhelyezi a veremben.

A szótárak csak két oszlopot tartalmazó táblázatok:

Ezzel a tulajdonsággal egy szótár tehát tömbként működik, mint egy oszlop, de amelynek indexe bármilyen típusú lehet, anélkül, hogy az egész számok egyszerű tartományára korlátozódna.

A szótár kezelése hash-tábla módjára történik (a nyelv által előre definiált hash-függvénynek köszönhetően), amelynek kezdeti mérete a létrehozáskor meghatározható annak a névérték-pároknak a száma szerint, amelyet szeretne. korlátozza az ütközések előfordulását (a PostScript azonban tudja, hogyan kell dinamikusan átméretezni egy szótárat a neveken szereplő ütközések száma vagy kitöltési aránya szerint). A PostScript szótárakat elsősorban (de nem kizárólag) arra használják, hogy (dinamikusan) meghatározzák a nyelv másutt megnevezett és hivatkozott változók körét .

Az előre definiált operátorok közül a legfontosabb def, hogy lehetővé teszi egy név-érték társítás hozzáadását az aktuális szótárba, amely lehetővé teszi új változók definiálását az értékükkel, vagy az értékük módosítását, valamint a funkciók definiálását vagy újradefiniálását. Láthatjuk tehát, hogy a Postscriptben a futtatható kód szinte minden más adat, és menet közben is módosítható.

Példák:

A fenti utolsó példában semmi sem jelzi, hogy a "számláló" nevű változó megegyezik azzal, amelyből az értéket kivontuk. Valójában a "def" név-érték társítás tárolására csak az aktuális szótárban használható, és egyetlen más szótárban sem a hatókör veremben. A számlálóváltozó (a fenti kód második hivatkozása) elolvasása azonban visszaadhatja az aktuális szótáraktól eltérő szótárban található változó értékét (vagy futás közben kivételt hozhat, ha a tárolókészletben lévő szótárak egyike sem tartalmazzon egy ilyen nevű változót): ebben az esetben egy új változót a "def" betűvel egészítünk ki az aktuális szótárban, anélkül, hogy módosítanánk az eredeti változót, ahol találtuk, ami ezért megtartja az értékét; mindaddig, amíg az aktuális szótár aktív, az új változó elrejti a régit. Ez az eszköz tehát lehetővé teszi a helyi változók kezelését a verem relatív pozíciójától eltérő módon.

A PostScript meg tudja különböztetni a változóra való hivatkozásokat (az a után megadott név alapján /) és az értékére való hivatkozásokat. A hivatkozást azonban egyetlen hatókörű szótár sem oldja meg, amíg a kereséshez nem társítják azt egy szótárral. Ha egy nevet /kezdőbetű nélkül használnak , azonnal meg kell keresni, amikor a függvény össze van állítva az aktív hatókörű szótárakban (kezdve a fordítás során az aktuális szótárral és nem azzal, amelyik a funkció végrehajtásakor aktív lesz), akkor a név A változó változik futás közben a veremben ezzel a névvel társított értékkel azon szótárban, ahol a nevet megtalálták.

Továbbá, hogy egy jól definiált változóra, és ne annak értékére vagy más azonos nevű változóra való teljes hivatkozást hozzunk létre egy másik szótárban, meg kell adnunk nemcsak a változó nevét, hanem hivatkozást arra a szótárra is, amely azt tartalmazza, és ahol meg kell keresni. Ha a szótárra nincs hivatkozás (például az a betű előtagozásával /), a névfeloldás dinamikus, ezért a végrehajtási kontextustól függően különböző változókra hivatkozhat.

A Postcript ezért két külön összefüggést határoz meg a változóra történő hivatkozás használatához:

Ez a viselkedés a változó elhatárolásához (olvasási hozzáférés) tehát nagyon eltér a változó tárolásának viselkedésétől, defamellyel mindig csak az aktuális szótár szerint történik csak a végrehajtáskor.

Operátorok

Bármi pop - eltávolítja az elemet a veremből
bármelyik 1 bármelyik 2 exch mind a 2 mind 1 cserélje ki a két elemet
... ...
1. szám 2. szám hozzá összeg visszatér száma 1 plusz szám 2
1. szám 2. szám div hányados visszatér száma 1 osztva száma 2
egész szám 1 egész szám 2 idiv hányados visszatér egész szám 1 osztva egész 2 számot
... ...

Végrehajtás

A PostScript az Adobe Company licence alapján biztosított. Van azonban egy ingyenes PostScript-tolmács, Ghostscript .

Megjegyzések és hivatkozások

  1. (in) "  Hogyan lett az Adobe sikeres 95 milliárd dolláros SaaS vállalat  " a termékruhákon ,2018. január 15(megtekintve : 2019. március 14. )
  2. Nicolas Six, "  Charles Geschke, a számítógéppioneer és az Adobe társalapítója meghalt  ", Le Monde ,2021. április 19( online olvasás )

Lásd is

Kapcsolódó cikkek

Külső linkek