Article View: comp.lang.postscript
Article #6444PDB -- ANSI-C to PostScript compiler
From: Arthur van Hoff
Date: Thu, 21 Jan 1993 13:34
Date: Thu, 21 Jan 1993 13:34
124 lines
3490 bytes
3490 bytes
Hi PostScript Hackers,
PdB version 2.1 (ANSI-C to PostScript compiler) is now available
via anonymous ftp from:
turing.com (192.133.90.28) in pub/pdb2.1-demo.tar.Z
ftp.uu.net (192.48.96.9) in graphics/NeWS/pdb2.1-demo.tar.Z
There is no more need to write PostScript! Start using PdB right now!
PdB is an optimizing compiler to compile ANSI-C (like) code into Adobe
compatible PostScript. It includes executables, examples and many
useful header files. Note that it is not dependend on NeWS.
The release of version 2.1 includes:
- Binaries for Sun SPARC station and IBM RS6000.
- Include files for Abobe PostScript level I.
- Include files for NeWS upto version 3.1.
- Include files for TNT upto version 3.1.
- Support for CPS OpenWindows upto version 3.1.
- Support NeWS classing in a C++ manner.
- Plenty of examples of all the above functions.
- NeWS/OpenWindows test suite.
- PostScript reference manual.
- UNIX manual pages.
Below are some examples of PdB code together with the PostScript
produced by the compiler.
Have fun,
Arthur van Hoff
pdb@turing.com
################################
Code to draw a star shape in PdB
################################
#include <graphics.h>
void starpath(int ang)
{
int i;
newpath();
moveto(100,100);
for (i = 1 ; i <= (int)(360 / ang) ; i++) {
rotate(180 + ang);
rlineto(100,0);
}
setgray(0);
stroke();
}
########################
Verbatim Compiler output
########################
/starpath {
% int --
newpath 100 100 moveto 1 360 2 index div cvi exch sub 1 add 0 max {
dup 180 add rotate 100 0 rlineto
} repeat
pop 0 setgray stroke
} def
###########################
Code for bubble-sort in PdB
###########################
#include <postscript.h>
/******************************************************
* Bubble sort (page 66)
* From: Algorithms + Data Structures = Programs
* Nicklaus Wirth
*/
void bubblesort(int *a)
{
int i, j;
for (i = length(a)-1 ; i > 1 ; i--)
for (j = 0 ; j < i ; j++)
if (a[j] > a[j+1]) {
int x = a[j+1];
a[j+1] = a[j];
a[j] = x;
}
}
########################
Verbatim Compiler output
########################
/bubblesort {
% int * --
dup length 1 sub -1 2 {
0 1 3 -1 roll 1 sub {
2 copy get 2 index 2 index 1 add get gt {
2 copy 1 add get 2 index 2 index 1 add 4 index 4 index get put
2 index 3 1 roll put
} {pop} ifelse
} for
} for
pop
} def
--
Arthur van Hoff
The Turing Institute Limited
36 North Hanover Street,
G1 2AD Glasgow, Scotland
Tel: +44 41 552 8858 or +44 41 552 6400
Fax: +44 41 552 2985
Email: arthur@turing.com
The opinions expressed in this message are not
necessarily those of The Turing Institute Limited.
Technical Details
Message-ID:
<ARTHUR.93Jan21132821@lurch.turing.ac.uk>Path:
arc1-ca.pugleaf.net!sparky!uunet!pipex!warwick!uknet!turing!coulin!arthurShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!pipex!warwick!uknet!turing!coulin!arthur From: arthur@turing.ac.uk (Arthur van Hoff) Newsgroups: comp.lang.postscript Subject: PDB -- ANSI-C to PostScript compiler Message-ID: <ARTHUR.93Jan21132821@lurch.turing.ac.uk> Date: 21 Jan 93 13:34:31 GMT Sender: usenet@turing.ac.uk (Usenet for nntp) Organization: The Turing Institute Ltd., Glasgow, Scotland Lines: 124