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 | |
Végrehajtások | Adobe PostScript , TrueImage , Ghostscript |
Fájlkiterjesztés | ps |
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:
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 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.
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 | ||||||
... | ... |
A PostScript az Adobe Company licence alapján biztosított. Van azonban egy ingyenes PostScript-tolmács, Ghostscript .