🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.windows.news
1 messages
1 total messages Started by Arthur van Hoff Tue, 26 Jan 1993 18:49
PDB 2.1.1 -- ANSI-C to PostScript compiler
#829
Author: Arthur van Hoff
Date: Tue, 26 Jan 1993 18:49
134 lines
3842 bytes
Hi PostScript Hackers,

PdB version 2.1.1 (ANSI-C to PostScript compiler) is now available
via anonymous ftp from the following sites:
	src.doc.ic.ac.uk (146.169.2.1)	in computing/vendor/turing.com
	ftp.uu.net (192.48.96.9)	in graphics/NeWS
	turing.com (192.133.90.28) 	in pub (very slow link)

The following files:
	pdb2.1.1-README		-- this message
	pdb2.1.1-sun4.tar.Z	-- SPARC binaries and NeWS headers
	pdb2.1.1-rs6000.tar.Z	-- RS6000 binaries

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.

New features since version 2.1 are:
- GhostScript compatible
- NeWS support is now optional

The release of version 2.1.1 includes:
- Binaries for Sun SPARC station and IBM RS6000
- Produces PostScript level I
- Include files for Abobe PostScript level I
- Plenty of examples
- Compiler test suite
- Reference manual (PostScript)
- UNIX manual pages (nroff)

NeWS support in version 2.1.1 for SPARC stations:
- Include files for NeWS upto version 3.1
- Include files for TNT upto version 3.1
- Support NeWS classing in a C++ manner
- Support for CPS OpenWindows upto version 3.1
- NeWS/OpenWindows test suite

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.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads