PostScript

PostScript
İlk versiyonun tarihi 1982
Paradigma multiparadigm  : yığın yönelimli , prosedürel
Geliştirici Adobe Sistemleri
Son sürüm 3 (1997)
Yazıyor dinamik, güçlü
Tarafından etkilenmiş İleri
Etkilenen PDF
Uygulamalar Adobe PostScript , TrueImage , Ghostscript
Dosya uzantısı ps
PostScript Özellikler
Uzantı .ps
MIME türü application/postscript
PUID fmt / 501 , x-fmt / 408 , x-fmt / 407 , x-fmt / 406 , x-fmt / 91
Tarafından geliştirildi Adobe
Biçim türü dosya formatını yazdır
Menşei Encapsulated PostScript

PostScript , Adobe tarafından geliştirilmiş bir sayfa açıklama dilidir . Öğelerinin çoğunun vektör formülasyonlarına dayanmaktadır . Ayrıca raster görüntülerin nasıl işleneceğini de bilir (nokta nokta).

Bu platformlar arası dil , sayfayı tanımlayan tüm unsurları (metinler, resimler, yazı tipleri, renkler, vb.) İçeren tek bir dosya elde etmeyi mümkün kılar .

PostScript pratik olarak bir standart haline geldi, çoğu lazer yazıcı bir yorumlayıcı içerir ve bu formatta açıklanan bir belgeyi doğrudan işleyebilir. Diğerlerinde, PostScript dilini bu yazıcılar tarafından anlaşılabilir raster biçimine dönüştürmek için bir girdi yazılım filtresi kullanmak gerekir .

PostScript'in geliştirilmesi 2007'den beri Adobe tarafından durduruldu, böylece PDF devralabilir.

PostScript'in diğer soyundan gelenler şunlardır:

Dil

Postscript, herhangi bir algoritmanın kodlanmasına izin veren eksiksiz bir dildir . Bu tür programları doğrudan yazmak oldukça mümkün olsa da, genellikle yazıcı sürücüleri gibi başka programlar tarafından yapılırlar.

Postscript, yürütüleceği ortamdan ayrılamaz. Bu dilin tamamen dinamik doğası göz önüne alındığında, aslında yorumlanacaktır .

Tercüman, bir yığın ve birkaç sözlük işleyerek çalışır. Yığın, işlev parametreleri ve ardından sonuçları için geçici depolama olarak kullanılır. Sözlükler, değişkenlerin ve işlev kodlarının depolanmasına izin verir.

Bir PostScript programı, boşluklar, sekme (TAB), satır başı (CR), satır besleme (LF) veya yorumlarla ayrılmış bir dizi sözcükten oluşur . Yorumlayıcı, ters Lehçe gösterimde bir hesap makinesi olarak çalışarak PostScript programının her bir kelimesini sırayla analiz eder , yani her kelime değerlendirilir, ardından bu değerlendirmenin sonuçları yığının üstüne yerleştirilir ve bu şekilde devam eder.

Örnek, basit sayısal hesaplamayı gerçekleştirmek için b 2 - 4 ac , bu kodlanabilir: b b mul 4 a mul c mul sub

PostScript, aşağıdaki beş tür kelimeyi destekler:

Sayısal sabit integer ( 123) veya real ( 3.14159), değerlendirme sayısal değeri yığının en üstüne ekler; Dize sabiti parantez içine alınmış karakter dizileridir, örneğin (Abc)"Abc" dizesini temsil eder; Bir isme referans /abir değişkeni veya işlevi adlandırmak için kullanılabilen "a" adını temsil eder; referans yığının en üstüne eklenir; Soyadı önceden tanımlanmış veya oluşturulmuş bir prosedürün, bir değişkenin, bir sözlüğün adı olabilir; isim aktif sözlüklerde aranır, o zaman bir değer ise yığına yerleştirilir ve bir fonksiyon ise denir (çalıştırılır); bir işlevi değerlendirmek yığının en üstündeki değerleri kullanabilir ve bunları herhangi bir sonuçla değiştirebilir; Oluşturucu dört kurucu, değişken boyutlu veri yapıları oluşturmanıza olanak sağlar. Yapının başlangıcını ve sonunu sınırlayan eşleştirilmiş karakterlerden oluşurlar: Yapıcı açılışı yığının üzerine bir işaret koyar ve ardından bu yapının tüm öğelerini sırayla yerleştirir. Yapıcı kapanışı, yığındaki açılış işaretinden tüm öğeleri alır, karşılık gelen yapıyı "oluşturur" ve onu yığının üzerine yerleştirir.

Sözlükler yalnızca iki sütunlu tablolardır:

Bu özellik ile, bir sözlük bu nedenle tek sütunlu bir dizi gibi çalışır, ancak dizini basit bir tamsayı aralığı ile sınırlandırılmadan herhangi bir tipte olabilir.

Sözlük, bir karma tablo gibi yönetilir (dilin kendisi tarafından önceden tanımlanmış bir karma işlevi sayesinde), başlangıç ​​boyutu, kişinin istediği ad-değer çifti sayısına göre oluşturulma sırasında tanımlanabilir. Saklamak için. çarpışmaların oluşumunu sınırlar (ancak PostScript, isimlerdeki çarpışma sayısına veya doldurulma hızına göre bir sözlüğü dinamik olarak nasıl yeniden boyutlandıracağını bilir). PostScript sözlükleri, esas olarak (ancak özel olarak değil) , dilde başka bir yerde adlandırılan ve başvurulan değişkenlerin kapsamını (dinamik olarak) tanımlamak için kullanılır .

Önceden tanımlanmış operatörler arasında en önemlisi, defmevcut sözlüğe yeni değişkenlerin değerleriyle tanımlanmasına veya değerlerinin değiştirilmesine ve işlevlerin tanımlanmasına veya yeniden tanımlanmasına izin veren bir ad-değer ilişkisi eklemeye izin vermesidir. Bu nedenle, Postscript'te çalıştırılabilir kodun neredeyse diğerleri gibi veriler olduğunu ve anında oluşturulup değiştirilebileceğini görebiliriz.

Örnekler:

Yukarıdaki son örnekte, hiçbir şey "counter" adlı değişkenin değeri çıkardığımız değişkenin aynısı olacağını göstermez. Aslında, "def" bir ad-değer ilişkisini yalnızca geçerli sözlükte ve kapsam yığınındaki başka bir sözlükte saklamak için kullanılır. Bununla birlikte, sayaç değişkenini okumak (yukarıdaki koddaki ikinci referans), mevcut sözlükten başka bir sözlükte bulunan bir değişkenin değerini döndürebilir (veya kapsam yığınındaki sözlüklerden hiçbiri yoksa çalışma zamanında bir istisna oluşturabilir. Bu isimde bir değişken içerir): bu durumda, yeni bir değişken, bulunduğu yerde orijinal değişkeni değiştirmeden mevcut sözlüğe "def" tarafından eklenecektir ve bu nedenle değerini koruyacaktır; ancak, mevcut sözlük aktif olduğu sürece, yeni değişken eskisini gizleyecektir. Bu cihaz, bu nedenle, yığındaki göreceli bir konum dışında yerel değişkenlerin yönetilmesini mümkün kılar.

PostScript, bir değişkene yapılan başvurular (a'dan sonra verilen adına göre /) ve değerine yapılan başvurular arasında ayrım yapabilir . Bununla birlikte, referans, kapsamlı bir sözlükte, onu aramak için bir sözlükle ilişkilendirilene kadar çözümlenmez. Bir ad, /baş harfsiz kullanıldığında , işlev etkin kapsamlı sözlüklerde derlendiğinde hemen aranır (derleme sırasında geçerli sözlükten başlayarak işlev yürütüldüğünde etkin olacak olanı değil), ardından adı değişken, yığındaki çalışma zamanında, adın bulunduğu sözlükte bu adla ilişkilendirilen değerle değiştirilir.

Ayrıca, değerine veya başka bir sözlükte aynı adı taşıyan başka bir değişkene değil, iyi tanımlanmış bir değişkene tam bir referans oluşturmak için, yalnızca bu değişkenin adını değil, aynı zamanda onu içeren sözlüğe bir referansı da belirtmeliyiz ve nerede aranmalıdır. Sözlüğe referans verilmediyse (örneğin, a ile ön ek olmaksızın /), ad çözümlemesi dinamiktir ve bu nedenle yürütme bağlamına bağlı olarak farklı değişkenlere başvurabilir.

Bu nedenle Postcript, bir değişkene referans kullanımı için iki farklı bağlam tanımlar:

Bu nedenle, bir değişkenin referansını kaldırmak için bu davranış (okuma erişimi) def, her zaman yalnızca yürütme sırasında mevcut sözlüğe göre yapılan bir değişkeni depolamaktan çok farklıdır .

Operatörler

hiç pop - öğeyi yığından kaldırır
herhangi 1 herhangi 2 değişim hepsi 2 hepsi 1 iki öğeyi takas et
... ...
1 numara 2 numara Ekle toplam döner sayısı 1 artı sayısı 2
1 numara 2 numara div bölüm döner sayısı 1 bölünmüş sayısı 2
tam sayı 1 tam sayı 2 idiv bölüm döner tamsayıdır 1 bölünmüş tam sayı 2
... ...

Uygulama

PostScript, Adobe Company lisansı altında sağlanır. Bununla birlikte, Ghostscript adında ücretsiz bir PostScript yorumlayıcısı vardır .

Notlar ve referanslar

  1. (in) "  Nasıl Adobe Başarılı $ 95 milyar SaaS Şirketi Oldu  " üzerine Ürün giysi ,15 Ocak 2018(erişim tarihi 14 Mart 2019 )
  2. Nicolas Six, "  Charles Geschke, bilgisayar öncüsü ve Adobe kurucu ortağı, öldü  ", Le Monde ,19 Nisan 2021( çevrimiçi okuyun )

Ayrıca görün

İlgili Makaleler

Dış bağlantılar