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 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 /****************************************************** * 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