PostScript

PostScript (PS) ialah bahasa pengaturcaraan perangkaian penjenisan dinamik yang dicipta oleh John Warnock dan Charles Geschke pada 1982. Ia paling terkenal kerana penggunaannya sebagai bahasa perihal halaman dalam bidang elektronik dan penerbitan meja.

Sejarah 
Konsep untuk bahasa PostScript dilahirkan pada 1976 semasa John Warnock bekerja di  Evans & Sutherland, sebuah syarikat grafik komputer yang termasyhur. Pada waktu itu, beliau sedang membangunkan perisian pentafsir untuk pangkalan data grafik tiga-dimensi pelabuhan New York. Warnock memikirkan bahasa Design System untuk memproses grafik.

Pada waktu yang sama, para penyelidik di Xerox PARC telah berjaya membangunkan pencetak laser yang pertama dan menyedari keperluan untuk menggunakan cara yang standard untuk mentakrifkan imej halaman. Kemudian pada 1975-76, sepasukan penyelidik yang diketuai oleh Bob Sproull membangunkan format Press yang kemudian digunakan dalam sistem Xerox Star untuk menjalankan pencetak laser. Bagaimanapun, Press merupakan format data dan bukan bahasa pengaturcaraan dan justera itu, tidak mempunyai kebolehubahan. Oleh itu, PARC memulakan usaha InterPress untuk mencipta penggantinya.

Pada 1978, Evans dan Sutherland meminta Warnock berpindah dari San Francisco Bay Area ke ibu pejabat utama di Utah, akan tetapi Warnock tidak berminat. Namun beliau menyertai Xerox PARC untuk bekerja dengan Martin Newell. Bersama-sama, mereka menulis semula Design System untuk mencipta JaM (singkatan untuk "John and Martin") yang kemudian digunakan untuk reka bentuk VLSI serta penyelidikan pencetakan taip dan grafik. Karya mereka itu kemudian berkembang menjadi bahasa InterPress.

Warnock kemudian meletakkan jawatan bersama-sama dengan Chuck Geschke untuk mengasaskan Adobe Systems pada Disember 1982. Mereka mencipta PostScript, sebuah bahasa yang serupa dengan InterPress tetapi lebih mudah, dan memasarkannya pada 1984. Pada waktu yang lebih kurang sama, Steve Jobs mengunjungi mereka dan menggalakkan mereka supaya menyesuaikan PostScript untuk digunakan sebagai bahasa bagi pencetak laser.

Pada Mac 1985, LaserWriter Apple menjadi pencetak yang pertama dijual dengan PostScript, dan mencetuskan revolusi penerbitan meja (DTP) pada pertengahan 1980-an. Gabungan merit teknikal serta ketersediaan yang meluas menjadikan PostScript sebagai sebuah bahasa pilihan untuk output grafik bagi kegunaan pencetakan. Buat seberapa waktu, pentafsir (kekadang dirujuk sebagai RIP, singkatan untuk "Pemproses Imej Raster") untuk bahasa PostScript menjadi komponen yang biasa untuk pencetak laser sehingga 1990-an.

Bagaimanapun, kos pelaksanaan PostScript sangat tinggi. Komputer mengoutput kod PostScript yang kemudian ditafsirkan oleh pencetak menjadi imej raster pada peleraian tabii pencetak. Ini memerlukan mikropemproses yang berprestasi tinggi serta ingatan komputer yang mencukupi. LaserWriter menggunakan  Motorola 68000 12 MHz yang menyebabkannya lebih cepat berbanding dengan mana-mana komputer Macintosh yang disambungkannya. Sewaktu enjin pencetak laser berharga melebihi seribu dolar Amerika Syarikat, kos tambahan untuk menyediakan PostScript kelihatan memadai, akan tetapi apabila harga mekanisme pencetak turun, kos melaksanakan PostScript menjadi semakin mahal secara perbandingan.

Sebagai suatu standard de facto seketika untuk mengedarkan dokumen elektronik bertujuan penerbitan, PostScript kemudian beransur-ansur diambil alih oleh Format Dokumen Mudah Alih (PDF), salah satu keturunan sendiri. Menjelang 2001, tidak terdapat banyak model pencetak lagi yang datang dengan sokongan untuk PostScript, sebahagian besar diakibatkan oleh  persaingan yang semakin meningkat daripada pencetak pancut dakwat bukan PostScript yang jauh lebih murah, serta juga kemunculan kaedah-kaedah berasaskan perisian baharu yang sesuai untuk mana-mana pencetak menafsirkan imej PostScript pada komputer (PDF membekalkah salah satu kaedah tersebut). Bagaimanapun, penggunaan pencetak laser PostScript masih dapat mengurangkan beban kerja unit pemprosesan pusat (CPU) dengan ketara semasa mencetak dokumen menerusi perpindahan kerja menafsirkan imej PostScript daripada komputer kepada pencetak. Oleh itu, PostScript masih merupakan satu pilihan untuk kebanyakan model "atasan".

Bahasa 
PostScript ialah bahasa pengaturcaraan Turing-lengkap yang tergolong dalam kumpulan perangkaian. Ia biasanya bukan dihasilkan oleh manusia tetapi oleh atur cara yang lain. Bagaimanapun, atur cara PostScript boleh ditulis sebagaimana dengan bahasa pengaturcaraan yang lain.

PostScript ialah bahasa tertafsir berasaskan tindanan yang serupa dengan bahasa pengaturcaraan Forth, tetapi mempunyai struktur data penjenisan kuat dan dinamik yang ilhami oleh struktur data bahasa Lisp, ingatan beruang lingkup dan, sejak bahasa peringkat ke-2, pemungutan sampah. Sintaks bahasanya menggunakan tatanama Poland songsang yang menyebabkan urutan pengendaliannya tidak jelas. Membaca atur cara PostScript memerlukan setakat latihan kerana seseorang perlu sentiasa mengingati bentangan tindanannya. Kebanyakan operator (diistilahkan sebagai fungsi dalam bahasa yang lain) mengambil argumen daripada tindanan dan kemudian mengembalikan hasilnya. Literal (misalnya, nombor) meletakkan satu salinan diri ke dalam tindanan. Struktur data yang canggih boleh dibina pada jenis tatasusunan dan kamus tetapi tidak boleh diisytiharkan kepada sistem jenis yang memperlihat kesemuanya hanya sebagai tatasusunan dan kamus. Justera, sebarang disiplin penjenisan lanjut yang dikenakan pada "jenis" tertakrif-pengguna sebegini ditinggalkan kepada kod yang melaksanakannya.

Aksara "%" digunakan untuk memasukkan ulasan dalam atur cara PostScript. Sebagai kelaziman umum, setiap atur cara PostScript perlu bermula dengan aksara "%!" supaya semua peranti akan mentafsirkannya sebagai PostScript dengan betul.

"Hello world" 
Atur cara Hello World, cara yang lazim untuk menunjukan satu contoh kecil atur cara yang lengkap dalam sesuatu bahasa, boleh berbentuk sepert iyang berikut dalam PostScript:
 %!PS
 /Courier findfont
 20 scalefont
 setfont
 72 500 moveto
 (Hello world!) show
 showpage

atau jika peranti output mempunyai konsol:

 %!PS
 (Hello world!) =

Unit ukuran 

Postscript menggunakan poin sebagai unit kepanjangan. Bagaimanapun, berbeza dengan sesetengah versi poin yang lain, PostScript menggunakan tepat 72 poin setiap inci. Oleh itu:

 

Misalnya, untuk melukis garis mengufuk yang panjangnya 4 sentimeter, menaip teks yang berikut adalah mencukupi:

 0 0 moveto 
 0 113.385827 lineto stroke

PostScript menggunakan nombor nyata kepersisan tunggal (mantisa 24-bit) dan oleh itu, tidaklah bermakna jika melebihi 9 digit perpuluhan digunakan untuk menentukan nombor nyata itu. Untuk grafik draf, bilangan digit bererti boleh dikurangkan.

Lihat juga 

 Adobe Systems
 Fon komputer
 Format Dokumen Mudah Alih
 Ghostscript
 Grafik vektor
 InterPress
 Konvensi Pembentukan Dokumen
 Muka taip
 PCL
 Perihal Pencetak PostScript
 PostScript Berkapsul
 Senarai piawai komputer
 Tatatanda Poland songsang

Rujukan

Pautan luar 

 PostScript Language Reference, third edition (PLR3), plus its Supplement, is the de facto defining work, known as "The Red Book" on account of its covers.  The first edition covered PostScript Level 1, the second edition covered a greatly expanded language known as PostScript Level 2, and includes documentation for Display PostScript as well. The third edition covers PostScript 3 (with this version, Adobe dropped "level" from the name) but no longer includes DPS.
 PostScript Language Tutorial and Cookbook is the corresponding introductory text, known as "The Blue Book" on account of its covers.
 PostScript language program design is "The Green Book".
 Adobe: PostScript vs. PDF - Official introductory comparison of PS, EPS vs. PDF.
 Adobe: The Type 1 Font Format  (PDF file).
 A First Guide to PostScript
 Mathematical Illustrations: A Manual of Geometry and PostScript — a book by Bill Casselman.
 Thinking in PostScript - 1990 by Glenn Reid, Addison-Wesley — available online courtesy of the author. A thorough tutorial.

Bahasa perihal halaman
Tipografi digital
Adobe Systems

Komunikasi teknikal
Grafik vektor
Bahasa pengaturcaraan berorientasi tindanan
Bahasa pengaturcaraan perangkaian
Percetakan digital
Percetakan komputer