Last checked or modified: Mar. 4, 1997
- PNG
- Portable Network Graphics is
a format for portable graphics, as you might surmise from the
name. PNG unofficially stands for PNG's Not GIF,
which originates
from the decision of Unisys and CompuServe to require royalties
from programs using the GIF format since Unisys has a patent on
the LZW compression format used therein.
The main advantages which PNG has over GIF are:
alpha channels (variable transparency),
gamma correction (cross-platform control of image brightness), and
2-D interlacing (a method of progressive display).
It also compresses better in almost every case, with the
difference generally ranging from 10% to 30%.
Since PNG is intended to be single-image format only, it
doesn't feature multiple-image support.
PNG also has the advantage that it has one and only one
official pronunciation, i.e. ``ping.''
Standard PNG features include:
support for three main image types, i.e. truecolor, grayscale, and
palette (with JPEG
supporting the first two and GIF only the third);
compression filters which are a way of transforming the image
data (losslessly) so it will compress better;
file integrity checks, e.g. an 8-byte magic signature at the beginning of
every image, a 32-bit cyclic redundancy check, and an Adler-32 checksum
applied to the complete stream of uncompressed data.
The PNG standard has been implemented in
libpng.
Image viewers, editor and converters which can handle PNG include
gd, gforge,
Ghostview,
GIMP, Gnuplot,
ImageMagick,
PIL,
xli, xpaint,
and xv.
Web browsers which support the PNG format include
Amaya, Arena,
Chimera,
Grail, Mosaic,
Netscape, and
XEmacs.
[http://www.wco.com/~png/]
[http://shire.ncsa.uiuc.edu/PNG/
]
- libpng
- A companion library to the PNG
specification written to reduce the amount of time and effort
it takes to support said specification.
Libpng is designed to handle multiple simultaneous sessions,
to be easily modifiable, and to be portable to most machines.
It uses zlib for the compression and
decompression of PNG files.
The source code for libpng, written in C, is available and
should compile on most machines since that is a design goal.
It is documented in an ASCII file included with the distribution.
[http://www.wco.com/~png/pngcode.html]
- PNG Magick
- See under the
Netscape entry since
this is a Netscape plug-in.
- PNM
- See Pbmplus.
- pod2ps
- A program which takes one or multiple Perl
POD files and produces a single PostScript
file. It can be run on single or multiple files from the
command line or using a script or command file.
The output includes PDFMARK operators that can be used by the Adobe
Acrobat Distiller program to produce a fully indexed PDF file.
[http://www.oasis.leo.org/perl/scripts/textproc/pod2ps.dsc.html]
- Point
- A text editor specifically designed
to use the mouse as much as possible in editing. Point
provides convenient ways to keep a number of windows open
on files and to copy text between and within files using
the mouse.
The features of Point include:
an unlimited number of windows and files;
easy moving and copying within and among windows;
complete configurability including menus, key bindings, titles, etc.;
extensive options for modifying the look and feel;
the use of Tcl/Tk as a macro language and
graphical toolkit;
several searching options including for selection, last string searched
for, a regular expression, the last regular expression, a string in a
list of files, or a C tag;
file browsers;
circular mouse menus, i.e. gesture commands; and
unlimited undo, redo, and again.
A source code distribution of Point is available.
It is written in C with compilation and use also requiring
Tcl 7.0 or greater or Tk 3.3 or greater.
It is documented in a user's guide available in
PostScript format as well as
in a man page. A brief FAQ is also included.
[http://sunsite.unc.edu/pub/Linux/apps/editors/X/]
- POLIS
- A framework and package for the hardware-software co-design of
embedded systems, especially those which are control-intensive,
reactive, real-time systems.
Examples of the types of systems for which POLIS is designed
included microwave ovens, cameras, telephone switches, cellular
phones, engine controllers, anti-lock brake controllers,
robots, and plant monitors.
The POLIS system is based around a single finite state machine-like
(FSM) representation called a co-design finite state machine (CFSM).
The CFSM transforms a set of inputs into a set of outputs with only
a finite amount of internal state.
It differs from FSMs in that the synchronous communication model of
the FSM is replaced by a finite, non-zero, unbounded reaction time
model in the CFSM. This model can be described as globally
asynchronous and locally synchronous, with CSFM specifications
a priori unbiased towards either a hardware or software implementation.
The chief advantage of the abstract CFSM model is that is covers the
behavior of all possible hardware-software implmentations at once.
In POLIS specifications are written in a high-level language
such as Esterel that is directly translated
into CFSMs.
The formal specification and synthesis methodology uses many
of the methods available for CSMs (e.g. VIS)
which are applied via the
inclusion of a translator from CFSMs to FSMs.
The methodology also incorporates a set of abstraction and assumption
rules specific to CFSMs and POLIS which makes is possible to verify
designs larger than was previously possible.
A co-simulation process is used which lets the designer test a wide
range of choices for hardware/software partitioning and CPU and schedular
selection, with the Ptolemy package currently
used as a simulation engine.
The portions of the CFSMs chosen for hardware implementation are
optimized using logic synthesis techniques from the
SIS package.
The portions to be implemented in software are mapped onto a software
structure which includes a procedure for each CFSM together with a simple
real-time operating system.
The reactive behavior of the CFSM portions is synthesized by first
implementing and optimizing the desired behavior in a high-level,
processor-independent form similar to a control/data flow graph,
which is then translated into portable C code for further optimization
on a given compiler.
An application-specific OS consisting of a schedular and I/O drivers
is generated for each partitioned design.
The interfaces between the hardware and software domains are automatically
synthesized within POLIS, and come in the form of cooperating circuits
and software procedures embedded in the synthesized implementation.
A source code distribution of POLIS is available as are
binaries for several platforms including Linux Intel.
The source can be compiled on most UNIX flavors using
the GCC compiler.
The documentation includes a user's manual in
PostScript format.
[http://www-cad.eecs.berkeley.edu/Respep/Research/hsc/abstract.html]
- POLKA
- A general purpose animation system particularly well-suited to building
animations of programs, algorithsm, and computations (especially
parallel computations). POLKA provides its own high-level
abstractions to make the creation of animations easier and faster
than with many other systems, with programmers not needing to be
graphics experts to develop animations.
It includes an interactive front-end called SAMBA which is an
animation interpreter that reads ASCII commands or animation
directives and performs them.
A source code distribution of POLKA is available. It is
written in C++ on top of
UNIX and X11 and requires either the Motif
or Xaw widget sets.
It is documented in a technical report available in
PostScript format.
[http://www.cc.gatech.edu/gvu/softviz/algoanim/algoanim.html]
- POLMAP
- A Starlink Project package
for the interactive data analysis of linear spectropolarimetric
data.
A linear polarization spectrum is a set of Stokes vectors which
means that spectropolarimetric data is 4-D (and 6-D if the variance
arrays of the Stokes parameters are included) and cannot be
manipulated using standard spectral analysis packages.
POLMAP is designed for the specific needs of these data sets.
TRIPLOT is a command for the flexible display of
polarization spectra. It displays triplots which consist of a
top panel showing the position angle of the polarization in
degrees, a middle section showing the percentage polarization,
and a bottom section showing the intensity spectrum.
A polarization spectrum may also be plotted in the QU plane
using the QUPLOT command.
Other commands include MERGE to merge two stack polarization
spectra, ISFIT to fit a Serkowksi law to the data using
a nonlinear least squares method (in order to subtract the
interstellar polarization vector from the intrinisic polarization
spectrum), and FITPA and PACALIB for PA calibration.
A binary distribution of POLMAP is available for DEC OSF/1,
Linux Intel, and Sun Solaris platforms.
It is documented in a user's manual available in
PostScript format.
[http://star-www.rl.ac.uk/store/storeapps.html]
- PolRadTran
- A plane-parallel fully-polarized atmospheric radiative
transfer model. This package contains separate versions,
one for solar or thermal radiation in a medium of randomly
oriented particles and one for thermal radiation in a medium
of azimuthally symmetrically-oriented particles.
The codes are written in Fortran and documented in
ASCII README files.
[http://nit.colorado.edu/~evans/polrad.html]
- PolyglotMan
- A filter for UNIX man pages.
It takes as input man pages
formatted for a variety of UNIX
flavors (not [tn]roff source)
and produces as output a variety of file formats, e.g. ASCII,
TkMan, [tn]roff, Ensemble,
SGML, HTML,
LaTeX, RTF, etc. This
is written in ANSI C and should compile on any
UNIX box with
a C compiler, including Linux.
This used to be called RosettaMan.
[http://www.cs.berkeley.edu/~phelps/tcltk/index.html]
- POM
- The Princeton Ocean Model is a
sigma-coordinate, free surface, primitive equation ocean
circulation model which includes a turbulence sub-model.
It is written in Fortran 77
and is documented in a large manual
in PostScript format.
[http://www.aos.princeton.edu/WWWPUBLIC/htdocs.pom]
- PONGO
- A Starlink Project application
for interactively plotting data. It is written
to behave similarly to MONGO but to use
PGPLOT as the basic
plotting package.
PONGO features include:
- interactively reading data from a text
file,
- performing complicated mathematical manipulations of the
data using Fortran-like statements that define the required
transformation,
- the availability of specialized extra data columns,
- many interactive cursor functions,
- drawing error ellipses
and vector plots,
- simple statistical analyses of data,
- data resampling,
- the definition of user-specified functions, and
- the plotting of astronomical position data in any of several
available geometries.
A binary distribution of the PONGO package (along with binary
distributions of the needed ancillary packages) is available for
several platforms, including Linux. The documentation is
contained within the distribution in LaTeX format.
[http://star-www.rl.ac.uk/store/storeapps.html]
- POP
- In systems using the Post Office Protocol mail is
delivered to a shared server, with client programs periodically connecting
to the server to download all pending mail. This is called a
store-and-forward service that moves mail on demand from an
intermediate server or drop point to single destination machines.
The protocol is described in RFCs 1734,
1957, 2095, and 2195.
Software capable of acting either as a POP mail server or client
includes:
- Popper
- An implementation of the Post Office Protocol (POP) which
runs on a variety of UNIX computers to manage electronic
mail for Mac and MS-DOS computers.
The features of Popper include:
an idle timeout,
a bulletin board,
statistics gathering,
an xlst (extended list) command,
an uidl (unique identifier list) command,
Kerberos,
shadow passwords,
rpop,
an authorization file,
logging of mail sent via POP to mail debug,
MMDF handling (autodetection),
APOP authentication,
large site support, i.e. a server mode,
a database for bulletin tracking, and
Kerberos enabled no enabelable by a switch.
A source code version of this is available with makefiles
for many flavors of UNIX included.
The package is documented in man pages.
A shadow password version of this can be found in the
Shadow Ina Box tool suite.
[http://sunsite.unc.edu/pub/Linux/system/admin/]
- PORT (Bell)
- The Portable, Outstanding, Reliable and Tested
mathematical subroutine library is a large collection of mathematical
subroutines written in Fortran.
It covers most traditional areas of numerical mathematics except
for statistics.
In addition to the mathematical routines, there are several non-numeric
routines that constitute what is called the Framework of the library.
The Framework consists of error handling, memory stack allocation, and
machine-constant specific routines that underly the mathematical
routines and contain the platform specific features.
The mathematical routines of PORT are divided into several categories
including:
- approximation routines for performing best uniform approximation
with rational splines, interpolation with splines, least squares
approximation to discrete functions, and best uniform approximation
to continuous functions;
- differential equation routines for both stiff and nonstiff ODEs;
- linear algebra software including eigenvalue routines,
basic linear algebra modules, least squares routines, and linear
equation solving programs;
- optimization routines for minimizing functions with one or more
variables;
- partial differential equations in one spatial variable and time;
- quadrature programs for performing numerical integrations;
- root finding programs for finding zeros of polynomials, single
real roots of functions, single roots of complex functions, and roots
of a set of nonlinear equations;
- special functions including all elementary functions defined in
the ANSI 66 Standard Fortran Library, Bessel functions, and the gamma
function;
- fast Fourier transforms; and
- utility functions including random number generators, arithmetic
utilities, functions for evaluating expressions in terms of orthogonal
polynomials, operations on 1-D arrays, and printing functions.
A source code distribution of the PORT library is available under
a limited use non-commercial license.
It is written in Fortran.
Documentation is available in PostScript format.
[http://www.bell-labs.com/project/PORT/]
- PORT (Netlib)
- A library of Fortran routines for performing various
optimization
tasks. The full PORT3 library is a commercial product available
from Lucent Technologies, although a subset of the routines is
publicly available.
An important part of the subset is a set of three subroutines which
handle machine dependencies for integers, real numbers, and
double precision numbers and which are called, respectively, i1mach,
r1mach, and d1mach.
The subset also includes
aoxtrp,
d0xtrp,
dalloc,
dxtrap,
e9rint,
enter,
entsrc,
eprint,
erroff,
i0tk00,
i0tk01,
i8save,
i8tsel,
ialloc,
istkgt,
istkin,
istkmd,
istkqu,
istkrl,
istkst,
leave,
movebc,
movebd,
movebi,
movebl,
movebr,
movefc,
movefd,
movefi,
movefl,
movefr,
mtstak,
n5err,
nerror,
nirall,
retsrc,
s88fmt,
setc,
setd,
seterr,
seti,
setl,
setr,
srecap,
stinit, and
xtrap.
Also available in the public version of PORT are up-to-date
versions of NL2SOL as well as extended variants, i.e.
n2f, a version of NL2SNO;
n2g, a version of NLSSOL;
n2p, a variant of NLSOL that allows the residual
vector and Jacobian matrix to be passed in piece rather than
all at once;
n2[fgp]b, versions of NL2SOL that handle simple bounds;
ns[fg], versions for separable nonlinear least squares;
ns[fg]b versions for separable nonlinear least squares with
simple bounds; and
dn[s2][fgp][b ], double precision versions of the above.
There are also versions of the SMSNO, SUMSL, and
HUMSL algorithms for general unconstrained minimization, e.g.
mnf, which uses function values only;
mng, which uses function and gradient values;
mnh, which uses function, gradient, and Hessian values;
mn[fgh]b, versions of the above which handle simple bounds; and
dmn[fgh][b ], double precision versions of the above.
[http://www.netlib.org/port/]
- PORTA
- The POlyhedron Representation Transformation
Algorithm package is
a collection of optimization routines for analyzing polytopes
and polyhedra given either as the convex hull of a set of
points (plus the convex cone of a set of vectors) or as a system
of linear equations and inequalities.
PORTA guarantees correct numerical results since only integer
operations are performed.
If an arithmetic overflow occurs using integer arithmetic
then the computations are restarted using double precision
integer arithmetic.
The programs in the package include:
- traf, which
performs a transformation from one of the two representations to
the other using a Fourier-Mortzkin elimination algorithm which
projects a linear system onto subspaces;
- vint, which enumerates all of the valid
integral points within given bounds;
- fctp, which
checks the facet inducing property of a set of linear inequalities
for a polyhedron given as a convex hull plus a convex cone;
- dim, which computes the dimension of a polyhedron
given as a convex hull plus a convex cone; and
- portsort, which
sorts and formats given system to improve the readability
of datafiles.
A source code distribution of PORTA is available. It is
written in C and is documented via man pages.
[http://www.zib.de/Optimization/Software/Porta/]
- POSES++
- A software tool for modeling and simulating arbitrary discrete and
discontinuous systems. It can also handle suitably discretized
continuous systems.
POSES++ supports the analysis of existing or planned systems
and optimizes them by creating various variants of the system
and comparing their performance.
It can also be used to generate complex control software by creating
a model containing the optimal algorithms for controlling a system,
and then creating a binary version of that model for the actual
system being modeled.
The modeling is based on high level Petri Net definitions.
POSES++ can most obviously be applied to the field of logistics,
i.e. the safeguarding of investment decisions, the shortening
of development cycles, the optimization of such systems, etc.
The POSES++ system consists of several components which each offer
flexible and extensible interfaces to other POSES++ tools as well as
to external software.
The collection of tools comprises a multiserver-multiclient
structure whose components communicate using
TCP/IP via a command-line interface.
The components include:
- an Editor used to generate and process models based
on a modular design concept with each model capable of being
used independently or as a sub-model of some larger model;
- a Compiler that checks the syntactic correctness of the
source file and then uses it to generate the model needed by
the simulation kernel for evaluation of the rules which
can also create efficient binary codes for varous hardware
and software combinations which represents the executable
simulation model;
- an Animator and Layout Editor which are used to generate
graphical animations of system processes;
- a Simulation Kernel which executes the simulation models
created by the Compiler and handles necessary communication
with the other components; and
- an Experiment Tool which supplies the functions needed to execute
simulation experiments, e.g. contacting the simulation kernel,
selecting the desired model, handling debugging and tracing, etc.
External evaluation tools such as spreadsheets or math packages
can also be used by POSES++ via an appropriate interface.
Binary distributions of POSES++ are available for
DEC OSF/1, Sun SunOS, HP-UX, and Linux Intel platforms.
A user's manual is available in either
PostScript or
HTML format.
[http://www.tu-chemnitz.de/ftp-home/pub/Local/simulation/poses++/www/product.htm]
- POSIX
- The Portable Operating System Interface is
a set of operating system standards.
It is an attempt by a
consortium of vendors to create a single standard version of
UNIX and is intended to define an operating system which behaves
like UNIX whether or not it really is UNIX.
The POSIX.1 standard defines the System Application Program
Interface, i.e. the C procedure calls used in writing programs for
UNIX.
The POSIX.2 standard defines the Shell and Utilities and is heavily
dependent on POSIX.1.
The POSIX.2 standard is the one which will be used to implement
user-level commands.
The major aspects defined by the POSIX.2 standard are:
the Execution Environment Utilities, e.g. cat, kill, etc.;
the User Portability Utilities, e.g. more, vi, etc.;
the Software Development Utilities;
the C Development Utilities;
the shell command language;
language-independent interfaces for high-level programming languages; and
definitions, general requirements, and the UNIX environment, i.e.
locales, guidelines for utility command-line syntax, system-wide
environment variables, and regular expressions.
The complete POSIX standards (as of 6/97) are (where a designation of
the form POSIX.n is short for IEEE 1003.n):
- POSIX.0 - guide to POSIX (+)
- POSIX.1 - system API for the C language (+)
- POSIX.1a - system API extensions (e.g. symlinks, etc.)
- POSIX.1b - real-time and I/O extensions (formerly POSIX.4) (-)
- POSIX.1c - threads (formerly POSIX.4a) (-)
- POSIX.1d - more real-time extensions (formerly POSIX.4b)
- POSIX.1e - security extensions and ACLs (formerly POSIX.6)
- POSIX.1f - transparent network file access (formerly POSIX.8)
- POSIX.1g - protocol independent communications and sockets (formerly
POSIX.12)
- POSIX.1h - fault tolerance
- POSIX.1i - technical corrections to POSIX.1b (-)
- POSIX.1j - advanced real-time extensions
- POSIX.1k - removable media API
- POSIX.1m - checkpointing and restarting
- POSIX.1n - fixes to .1, .1b, .1c and .1i
- POSIX.1q - tracing
- POSIX.2 - shells and common utility programs (+)
- POSIX.2a - more tools and utilities (-)
- POSIX.2b - more utilities
- POSIX.2c - security utilities
- POSIX.2d - batch processing utilities (-)
- POSIX.2e - removable media utilities
- POSIX.5 - Ada binding to POSIX.1 (+)
- POSIX.5b - Ada binding to POSIX.1b (-)
- POSIX.5c - Ada binding to POSIX.1g
- POSIX.9 - Fortran 77 binding to POSIX.1 (+)
- POSIX.10 - supercomputing profile (+)
- POSIX.13 - realtime profile
- POSIX.14 - multi-processing profile
- POSIX.18 - POSIX profile
Other POSIX standards which follow a slightly different numbering
system are:
- IEEE 1387 - system administration
- IEEE 1387.1 - overview
- IEEE 1387.2 - software administration (+)
- IEEE 1387.3 - user/group account administration (+)
- IEEE 1387.4 - printer administration
- IEEE 2003 - test methodology (formerly POSIX.3)
- IEEE 2003.1 - test methods for POSIX.1
- IEEE 2003.1b - test methods for POSIX.1b
- IEEE 2003.2 - test methods for POSIX.2
Finished and published standards are marked with (+),
extensions which have been included in the latest edition of
the corresponding main standard are marked with (-), and
all others are in the draft stage.
Changes in POSIX standard status are announced in
comp.std.unix, and the current status can be viewed
at the first given URL.
See Zlotnick (1991), Lewine (1991), and
Gallmeister (1995).
[http://www.pasc.org/standing/sd11.html]
[http://www2.echo.lu/oii/en/api.html
]
- Possum
- A mathematical tool for the representation and manipulation of finite
partially ordered sets (i.e. posets). Possum is designed especially
for providing tools for domain theory and the construction of approximations
to semantic domains, but can be useful to anyone with an interest
in order theory.
It can produce Hasse diagrams of the posets that it generates via
interaction with the daVinci visualization
system.
The diagrams are displayed on the screen and can be interactively
fine-tuned. They can also be exported as PostScript for
printing.
Interaction is either through the daVinic GUI or a command-line
interpreter which uses the
Objective Caml language.
The latter allows complicated expressions involving posets to be
input concisely.
A source code distribution of Possum is available.
Installation requires daVinci 2.0.3 or
later and Objective Caml 1.05
or later.
The use of the program is documented in several online HTML
documents and the algorithms used in a technical report
available in PostScript format.
[http://www.comlab.ox.ac.uk/oucl/groups/logfound/possum/index.html]
- PostgreSQL
- An enhancement of the POSTGRES database
management system (DBMS),
a next-generation DBMS research prototype.
PostgreSQL retains the data model and data types of POSTGRES while
replacing the PostQuel query language with an extended subset
of SQL. Other enhancements include a program (psql) which supports
GNU readline, a new front-end library
(libpgtcl) which supports Tcl-base clients,
a sample shell (pgtclsh) which provides new Tcl commands to interface
Tcl programs with the PostgreSQL backend, a major overhaul of the
large object interface, and more.
The features of PostgreSQL that distinguish it from conventional
data managers include: inheritance, i.e. a class can inherit from
zero or more other classes and a query can reference either all
instances of a class or all instances of a class plus all of its
descendants; time travel, i.e. a feature that allows a user to
run historical queries by specifying a time range; and
non-atomic values, i.e. attributes can themselves contain sub-values
that can be accessed from the query language, e.g. you can create
attributes that are arrays of base types.
The source code for PostgreSQL, written in C, is available and
can be compiled using gcc. It has been successfully tested on
DEC Alpha, DEC Ultrix, Sun SunOS and Solaris, HP/9000, and
Linux Intel platforms.
An article about PostgreSQL can be found in the February 1998
issue of the Linux Journal.
[http://www.PostgreSQL.org/]
- Postilion
- A mail user agent based on
TkRat with the addition of several
features including robust support for IMAP
in a shared folder environment.
This uses IMAP mailboxes to support multiuser environments with system-wide
configurations, mailboxes and address books, and shared folders.
The source code distribution requires Tcl/Tk
8.0p2 as well as several common image libraries.
[http://www.postilion.org/]
- PostScript
- A programming language optimized for printing graphics and
text. It is a page description language wherein individual
pages or images are described in a device independent manner
within the source code. It is also a stack-based language,
resembling an RPN calculator (e.g. the HP series). A good
introduction to the language and its operators is
A First Guide to PostScript
which is available in both hypertext and
PostScript formats. There is also a
PostScript Tutorial and Reference
in PostScript format.
A couple of extremely useful resources are the
PostScript FAQ
and the
PostScript Sources FAQ
,
the former containing answers to questions
about the language and the latter links and pointers to PostScript
related software.
Useful PostScript-related software includes:
- a2ps, which converts ASCII text into
PostScript and sends it to a printer or a file;
- Distillery, which ensures that a PostScript
document follows the Adobe DSC.
- dvips, a program that converts TeX .DVI files into
PostScript files;
- enscript, which converts text files to
PostScript;
- fontutils, which can convert PostScript
fonts to TeX TK format;
- Ghostscript, an interpreter;
- Ghostview, a previewer;
- Groff, which converts troff source into PostScript;
- hp2xx, for converting HP-GL graphics into
PostScript;
- ImageMagick, an image conversion package;
- Lout, a typesetting system;
- PreScript, a PostScript to plain
text converter which can also produce rudimentary HTML;
- PSPLOT, a library of Fortran-callable
routines for creating PostScript graphs;
- pstoedit, which converts PostScript and PDF
files into other vector graphics formats;
- pstoepsi, for converting PostScript into
Encapsulated PostScript;
- pstotext, which converts PostScript files
into ASCII text files;
- PSTricks, a collection of
macros compatible with most TeX macro packages;
- psutils, a set of
utilities for resizing and various other tasks;
- Quikscript, a portable typesetting system
written in PostScript; and
- Zone, a library of 3-D PostScript operators.
The October 1997 issue of the
Linux Journal contains an
article about PostScript.
- POV-Ray
- The Persistence Of
Vision Raytracer
creates 3-D, photo-realistic
images using a rendering technique called ray tracing. It reads in
a text file containing information describing the objects and lighting
in a scene and generates an image of that scene from the view point
of a camera also described in the text file. It can also add greater
realism to images via a process known as radiosity. It produces
very high quality images with realistic reflections, shading,
perspective and other effects.
The file containing the scene image description cannot be created with
the POV-Ray package. This must be done with a separate package
called a
modeler
]
that allows you to visually arrange structures.
The features of POV-Ray include an easy to use description language;
a large library of example scene files; standard include files
that pre-define many shapes, colors and textures; high quality
output image files in 24-bit color; creation of landscapes using
smoothed height fields; spotlights for sophisticated lighting;
phong and specular highlighting for more realistic looking
surfaces; many basic shape primitives; Constructive Solid Geometry
for easily combining simple shapes into complex shapes; many
built-in color patterns, surface bump patterns, and textures;
combination of textures; and much more.
A generic UNIX source code version is available as well as binary versions
for Linux, DOS, Mac and Amiga platforms. The documentation
is available in both HTML and PostScript formats. Also available
are ancillary packages such as
PVMPOV
for distributing calculations across several platforms.
[http://www.povray.org/]
- VisualPOV
- A graphical interface for POV-Ray
created using Tcl/Tk.
The components include a toolbar for launching applications,
a text editor specializing in the POV-Ray language,
a tool for visualizing colors, and a window for changing
rendering options.
[http://perso.easynet.fr/~philhay/projet.us.html]
- PPBB-Lib
- The Portable Parallel Branch-and-Bound
Library offers an easy way to parallelize sequential branch and
bound algorithms for several architectures.
No knowledge of hardware architecture or parallelization mechanisms
is needed to use PPBB-Lib.
Each parallel running process of the B&B application maintains the
point of view of the sequential algorithm, with the library taking
over the management of the subproblems creating during execution.
Load balancers provided by the library ensure a balanced distribution
of the subproblems.
It is designed to run on an distributed memory multicomputer architecture
using the given message passing functions and a C compiler.
Binary versions of PPBB are available for both sequential and shared
memory Linux Intel platforms as well as for several supercomputer
platforms.
It is documented in a user's manual available in PostScript format.
It can be obtained by filling in an online request form.
[http://www.uni-paderborn.de/fachbereich/AG/monien/SOFTWARE/PPBB/]
- PPCR
- The POSIX Portable Common Runtime package
provides integrated user-level support for pre-emptive lightweight
threads, garbage
collected storage, and dynamic program loading.
PPCR can take advantage of kernel thread extensions in the
underlying system and should run on any
POSIX.1-conforming implementation which
also supports BSD select() or System V poll().
It also uses memory protection features available in some
systems to support incremental garbage collection.
The source code is available and has been successfully built
on Sun SunOS and Solaris, SGI IRIX, Linux Intel, and BSDI platforms.
PPCR is documented in an ASCII file in the distribution.
[ftp://ftp.parc.xerox.com/pub/ppcr/]
- pPCx
- The parallel predictor-corrector package is a parallel version of
the PCx package.
The source code is written in C with
MPI extensions and should be
released soon (4/97).
[http://www.cs.cornell.edu/Info/People/mwagner/pPCx/pPCx2.html
- PPGPLOT
- A Python module that provides an interface
to the functionality of PPGPLOT.
[http://ariadne.di.uoa.gr/ppgplot/]
- PPI++
- The Parallel Portability Interface in C++
is an object-oriented
message-passing library. It is designed to serve as a stable interface
between the client parallel code and the rapidly evolving distributed
computing environments. By taking advantage of encapsulation,
inheritance, and polymorphism supported by C++, PPI++ provides a clean
and consistent programming interface which helps improve the clarity
and expressiveness of client parallel codes and hides implementation
details and complexity from the user to ease parallel programming tasks.
To benefit fully from the functionalities, portability, and efficiency
provided by MPI, the
present implementation of PPI++ uses MPI functions
to achieve interprocess communication and synchronization. However,
the C++ user interface of PPI++ is designed to be very light weight
and independent of MPI.
The source code for PPI++, written in C++, is available.
The package is documented in several technical reports available
in PostScript format and also in Hsieh and Sotelino (1997).
[http://dalmatians.ecn.purdue.edu/~sesde/]
- PPM
- Abbreviation for the Portable PixelMap graphics
format.
This is used in the Pbmplus package.
- ppmake
- A parallel make utility which attempts to run as many parts
of a large set of make jobs simultaneously on different
computers connected by PVM as is
possible.
Ppmake requires on changes in makefiles, and
can be used as easily as starting PVM on each participating
computer and typing ppmake instead of make.
The features include interrupt handling, setting timeouts,
setting prefix commands, counting jobs, and calculation
and display of the degree of parallelism.
The ppmake software is available as source code.
It's use requires GNU make as well as PVM.
[http://www3.informatik.tu-muenchen.de/~zimmerms/ppmake/]
- ppm2fli
- A conversion program which
converts PPM, PGM, and PBM pictures into FLI animations and
vice-versa. This is supposed to be a replacement for
fbm2fli.
[http://sunsite.unc.edu/pub/Linux/apps/graphics/convert/]
- PPP
- The Point-to-Point Protocol is an Internet standard
for the transmission of IP packets over serial
lines. It is designed for simple links transporting packets
between two peers with the links providing full-duplex simultaneous
bi-directional operation.
The three main components of PPP are: (1) a method for
encapsulating multi-protocol diagrams; (2) a link control protocol
(LCP) for establishing, configuring and testing the data-link
connection; and (3) a family of network control protocols (NCP) for
establishing and configuring different network layer protocols.
[http://cs.uni-bonn.de/ppp/faq.html]
- PPR
- A UNIX print spooler designed for operating
PostScript printers.
PPR is a research project designed to explore the possibilities
of the Adobe Document Structuring convention, PPD files, and
automatic filtering with the goal of making printing easy
for end users.
The features of PPR include:
operation of printers connected to parallel and serial ports,
AppleTalk, LAN Manager X clients, LPD servers, and RAW TCP/IP
adapters; capture of messages returned by the printer while
a job is printing (if the printer interface supports it);
sending notices to users when jobs are completed or when they
fail; detection of printer faults and automatic attempts
to clear them; interpretation of Document Structuring Convention (DSC)
comments to support advanced features such as printer redirection,
reverse order printing, collated copies, font downloading, font
substitution, and forced duplex mode; passing print jobs through
Ghostscript before sending them to
print PostScript files on non-PostScript printers;
automatic detection of non-PostScript output and passage through
appropriate filters (e.g. Netpbm,
TeX, and Groff);
automatic detection and decompression of compressed files;
printer queue advertising on AppleTalk networks; accepting
jobs for AT&T's LAN Manager for UNIX; acceptance of jobs from
other computers using the LPD protocol and from the
Samba LAN manager; display of job
percentage done in the queue listing; printing of banner
pages; and much more.
The code is currently being developed on a Linux system and
has also been tested on DEC OSF/1, SGI IRIX, *BSD, and
Sun SunOS platforms.
The documentation includes installation and user's manuals
(available in PostScript and HTML format) and an extensive
set of man pages.
[http://ppr-dist.trincoll.edu/printing/pprfaq.html]
- PRCS
- The Project Revision
Control System is the front
end to a set of tools that provide a way to deal with sets of
files and directories as an entity to preserve coherent versions
of entire sets. It presents the abstraction of named projects
that have multiple versions, each consisting of a set of files
arranged into a directory subtree. PRCS attempts to provide
a much simpler model than similar packages like RCS or CVS.
The operations allowed by the software include creating a copy
of the directory tree for a project version, creating a new
project version, searching for differences between project
versions, inserting changes that occurred between two project
versions (i.e. merging), printing out information about
project versions, adding or subtracting the files contained
in a new project version, moving files from one subdirectory
(i.e. version) to another, etc. PRCS keeps track of all checked-in
project versions in a repository and locks them in only while it
is actually running.
The source code of PRCS is available as are binaries for
FreeBSD, HPUX, IRIX, Linux ELF, Solaris, SunOS and ULTRIX
platforms. The present (9/96) documentation is contained
within a hypertext document at the site (in HTML format).
[http://www.XCF.Berkeley.EDU/~jmacd/prcs.html]
- PRECCX
- The PREttier Compiler Compiler eXtended
is an infinite-lookahead
parser generator
for context
dependent grammars which generates ANSI C code.
Specification scripts are in very extended BNF with inherited
and synthetic attributes allowed.
Scripts can be compiled in separate modules and later linked
together, and meta-production rules are allowed.
The technology is essentially LL(oo) with optimizations, and
a converter for yacc scripts is available.
Lexical analyzers such a lex and flex are suitable pre-filters
for PRECCX and are called in the same way that yacc calls them.
A significant feature of PRECCX is the use of parameterized
grammar definitions which allow context-dependent grammars.
The higher order capability provided by parameterization and the
modular arrangement of scripts make parser specifications much
more maintainable. The infinite lookahead feature makes the
semantics declarative, e.g. a non-terminal can be replaced by
its definition without altering the semantics.
A newer feature is that attributes can be synthesized on the
fly and passed seamlessly into the parser, which extends
the declarative programming paradigm from parameterized attribute
grammar specifications to fully cover mixed and/or synthetic
attributed grammars as well.
A distribution of PRECCX is available for Linux platforms.
It is documented in a user's manual available in
PostScript format.
[http://www.comlab.ox.ac.uk/archive/redo/precc.html]
- premail
- A program for the transparent encryption of email whose goal is to
add privacy and authentication to existing email clients with a
minimum of fiddling while preserving a rich set of functionality
including MIME-based multimedia data types.
The features of premail include:
creation and management of newnym style nyms,
some support for S/MIME using RIPEM
as the cryptographic engine,
integration with Netscape 3.0,
support for all cypherpunk remailers,
support for Mixmaster remailers,
encrypted and signed email including both preparation and decoding,
support for the PGP/MIME standard,
support for MOSS through TIS/MOSS 7.1,
automatic selection of remailer chains,
clean handling of ``cc:'' field and other such interactions,
and more.
A source code distribution of premail is available.
It is written in Perl and requires
version 5 or greater.
Documentation is available online.
[http://atropos.c2.net/~raph/premail.html]
- PREP
- A preprocessor for Fortran programs which is an alternative
to RATFOR.
The features include full macro facilities, a concise
shorthand for array and vector statements,
and support for all of the standard flow control constructs
of Forth.
The vector statement notation makes it possible to incorporate
do loop unrolling automatically to any depth.
The macro processor is a sort of pre-preprocessor for which
the order of translation is file inclusion, macro processing,
flow control extensions, and vector statements.
A source code distribution of PREP is available.
It is written in portable C and can be compiled and used
on most generic UNIX platforms.
Its use is documented in a user's guide in ASCII format.
[ftp://isgate.is/pub/unix/sec1/]
- PreScript
- A utility that converts PostScript to plain ASCII or HTML.
It first converts a PostScript document to plain text and then
inserts rudimentary HTML tags to partly automate the conversion
of PostScript documents into HTML.
PreScript also determines the line spacing of a document and uses
that and indentations to determine paragraph boundaries, removes
hyphenations where needed, and detects and translates most ligatures.
It is written in PostScript and Python and requires
Ghostscript 4.01 or later and
Python 1.3 or later.
[http://www.nzdl.org/technology/prescript.html]
- PRFM
- Piett's Remote File Manager is a tool for
remotely updating Web sites using a Web browser.
[http://www.piett.com/prfm/index.html]
- PriMa
- A printing filter that gives the user the ability to manipulate
a document in various ways (e.g. change paper size, print only
selected pages or ranges, print duplex, rearrange pages, etc.),
to preview a document, and to send it to a file, a printer, mail,
fax systems, or other programs.
PriMa requires documents in PostScript
format, but if they aren't it can use the
MagicFilter package to convert a
file to PostScript.
PriMa is basically an interface built around the
psutils package, and as such has all
its capabilities.
A source code distribution of PriMa is available. It
can be compiled and used on many UNIX flavors including Linux.
Compilation requires the XForms
library at version 0.86 or newer.
It is documented in a README file available in both ASCII
and PostScript formats.
[http://sunsite.unc.edu/pub/Linux/system/printing/]
- printing
- A wide variety of software to enable the performance of various printing tasks
is available for Linux platforms.
Available packages include
a2ps,
GNU enscript,
FLpr,
LPRng,
nenscript,
PPR,
PriMa, and
rlpr.
- Privtool
- A PGP-aware replacement for the standard Sun mailtool
program with a similar user interface and automagick support
for PGP-signing and PGP-encryption.
Privtool displays a list of messages along with flags indicating
whether they are signed or encrypted and if they have had their
signatures verified or have been decrypted.
Double-clicking on a message will automatically decrypt and
display it (and will also check the signature if necessary).
When composing or replying to a message, the resulting message
can be digitally signed and/or encrypted. It can also use
the Mixmaster
anonymous remailer to send the message through
one or more remailers.
The source code for Privtool is available at a European
site which bypasses U.S. cryptography export regulations.
It is known to work on Sun SunOS and Solaris, FreeBSD, and
Linux Intel platforms.
It is documented on the site as well as in documents in the
distribution.
[http://www.unicorn.com/privtool/privtool.html]
- PRL
- The Programmer's Reusable Library is a
family of compatible
software libraries intended to promote software reuse. It consists
of a layered set of seven libraries with a strong emphasis on
computer graphics. These libraries provide a
POSIX (POSIX)
system interface,
programming language primitive data types (PROGRLANG),
graphical device drivers (DEVICE),
low-level graphics (GRAPHICS),
graphical function plotting (PLOT), graphical surface
plotting (SURFACE),
and graphical cartographic map plotting (MAP).
The seven libraries provide a wide array of capabilities.
- The POSIX library is a general purpose Fortran-callable
library which provides application programs with access
to POSIX functions.
- The PROGRLANG library is intended to provide useful operations
on Fortran primitive data types as a supplement to the standard
set of Fortran intrinsic functions.
- The DEVICE library provides a standardized interface to graphics
output devices in support of the GRAPHICS library. Currently
(4/97) supported devices include DEC LN03, HP LaserJet,
PostScript (Level I and II), Tektronix (4014, 4115, 4107, and 4510),
X terminal, and Vector Save file format.
- The GRAPHICS library provides fundamental 2-D graphics
capabilities such as line drawing and graphical text generation.
It also supports graphics attributes such as color, line style,
line thickness, character shading, and area blanking.
- The PLOT library supports the production of 2-D and 3-D
function plots. Supported plot types include: 2-D linear, log,
log-linear, and polar plots; 2-D bar and pie charts; and 3-D
linear and spherical plots.
- The SURFACE library supports the production of 2-D and
3-D surface plots. Supported plot types are: 2-D surface line
contour and color-shaded contour plots; 3-D surface mesh
wireframe (with and without hidden line removal); 3-D
surface line contour plots; and 3-D color-shaded contour plots.
- The MAP library supports the production of 2-D cartographic
projection plots. It currently supports Lambert Equal Area and
Cylindrical Equidistant projections and provides two cartographic
data bases of the Earth, i.e. low and high resolution databases.
The PRL is available
for several platforms and as of 12/15/95 was freely available in
binary form for Linux platforms. A user's manual and reference
guide in PostScript format are included in the
distribution.
[http://isis.iah.com/oa/]
[http://sunsite.unc.edu/pub/Linux/devel/lang/fortran/
]
- PRM
- The Prospero Resource Manager enables users
to run sequential or parallel applications on a network of
workstations. Sequential jobs are offloaded to lightly loaded
processors while parallel jobs use some or all of the processor
collection to achieve speedups in execution time.
The parallel applications are based on the message passing
model and are linked with a communication library which provides
routines for sending and receiving tagged messages, broadcasting,
and global synchronization.
The interfaces available are the CM-5 CMMD library and
a PVM interface, both of which allow the
development of applications without having to modify any source
code for use with PRM.
The resource allocation functions of PRM are distributed across
three entities:
system managers which control access to a collection of processing
resources and allocates them to jobs as requested by job managers;
job managers which acquire processing nodes from system managers
and initiate tasks on these nodes through node managers; and
node managers which initiate and monitor tasks on the nodes on
which they're running.
The features of PRM include:
utility programs to checking the status of running jobs, query the
status of a system manager and the nodes it manages, and to gracefully
shut down a PRM system;
the use of an access control list (ACL) to determine whether
the host requesting resources is authorized;
library routines for standard I/O tasks and for task creation and
resource management;
the checkpoint and migration of tasks to other nodes when the current
node makes itself unavailable;
application debugging;
and more.
A source code distribution of PRM is available. It is written
in C and should compile and install on many generic UNIX
platforms on which PVM is installed.
The documentation includes a user's manual and several
technical papers, all available in
PostScript format.
[http://nii-server.isi.edu/gost-group/products/prm/]
- PRMS
- The Precipitation-Runoff Modeling System
is a modularly-designed, deterministic, distributed-parameter
modeling system developed to evaluate the impacts of various
combinations of precipitation, climate, and land use on streamflow,
sediment yields, and general basin hydrology.
Basin response to normal and extreme rainfall and snowmelt can
be simulated to evaluate changes in water-balance relationships,
flow regimes, flood peaks and volumes, soil-water relationships,
sediment yields, and ground-water recharge.
Parameter optimization and sensitivity analysis capabilities are
provided to fit selected model paramters and evaluate their
individual and joint effects on model output.
PRMS divides a watershed into subunits based on basin characteristics
such as slope, aspect, elevation, vegetation type, soil type,
land use, and precipitation distribution.
Two levels of partitioning are available, with the first dividing
the basin into homogeneous response units (HRU) based on basin
characteristics. The sum of responses for all HRUs, weighted on
a unit area basis, produces the daily system response and streamflow
for a basin. The second partitioning level is used for storm
hydrograph simulation. In this level the watershed in conceptualized
as a series of interconnected flow planes and channel segments.
Surface runoff is routed over the flow planes and into the channel
segments, and channel flow is routed through the watershed channel
system. An HRU can be either the equivalent of a flow plane or
can be separated into a number of flow planes.
A source code distribution of PRMS for UNIX platforms is
available.
The primary documentation is contained within
Leavesley et al. (1983).
This is part of the USGS
Water Resources Applications Software
collection.
[http://water.usgs.gov/software/prms.html]
[http://www.geogr.uni-jena.de/software/prms.html
]
- procmail
- A powerful set of tools which enable the automatic processing
of mail either as it is received or after it is already in
a message folder. The package consists of three programs:
procmail, formail, and lockfile.
The features of the procmail program include:
- small size, easy installation and simple to maintain and configure;
- event driven invokation and no use of temporary files;
- use of standard egrep regular expressions;
- low use of system resources;
- easy yes-no decisions on where the mail should go;
- neural net type weighted scoring of mail messages;
- reliably filtering, delivering, and forwarding mail;
- a reliable hook for starting any programs or shell scripts
upon mail arrival;
- good performance under bad system conditions;
- absolutely undeliverable mail is bounded back to the sender;
- reliable mailbox locking across NFS;
- support for four mailfolder standards;
- provision of a mail log file chock full of gory details;
- display of a wide variety of
diagnostic and error message (using the mail log);
- no limits on line length, mail length, or the use of any
character;
- secure system mailbox handling;
- provision for controlled execution of programs and scripts
from the alias file;
- allowing for shifting of system mailboxes into
home directories;
- clock skew immunity; and
- works with sendmail, ZMailer, smail, MMDF, and mailsurr.
The formail program features include
- generation of auto-reply headers;
- conversion of mail into standard mailbox format (for processing
with a standard mail program);
- splitting up mailboxes, digests, and saved articles
into individual messages;
- simple header munging/extraction;
- extraction of messages from mailboxes; and
- recognition of duplicate messages.
The lockfile program provides NFS-secure lockfiles to shell
script programmers and gives normal users to ability to lock
their system mailbox regardless of the permissions on the
mail-spool directory.
The source code for the procmail package, written in C, is
available on can be installed on most generic UNIX
platforms (since the code is POSIX, ANSI C and K&R conforming).
The documentation is contained within a veritable ocean
of man pages.
[http://www.ii.com/internet/robots/procmail/]
[http://www.best.com/~ii/internet/robots/procmail/
]
- procmail-lib
- A collection of procmail scripts
for building an advanced mail handling system.
The scripts include:
- ackmail.rc, a set of recipes for performing auto-acknowledgement
of incoming mail;
- commands.help, a file of information sent in response to
mail requests for information;
- commands.rc, a set of recipes which recognize commands in
the Subject header and perform them;
- dupcheck.rc, a recipe file which removes duplicate mail;
- get-from.rc, a recipe file which extracts the best address from
the various originating address fields;
- guess-mua.rc, a recipe file which attempts to guess the current
MUA;
- headers.rc, which defines some variables which can be used for
matching against headers; and
- unread-mh.rc, a recipe file which attempts to compute how many
unread messages there are for an MH user.
[http://reality.sgi.com/aks/mail/procmail-lib.html]
- procps
- This package consists of a library which parses the
textual /proc filesystem and a suite of utilities
which uses the library.
The utilities are:
- ps, which gives a snapshot of the current system processes;
- uptime, which tells how long the system's been running;
- w, which displays information about the users on the
machine and their processes;
- free, which displays the total amount of free and used physical
and swap memory in the system;
- pstree, which shows running processes as a tree;
- killall, which sends a signal to all processes running
any of the specified commands;
- fuser, which displays the PIDs of processes using specified
files or filesystems;
- top, which displays the top CPU processes;
- tload, which prints a graph of the current system load average;
- vmstat, which reports information about processes, memory, paging,
block I/O, traps, and CPU activity;
- sessreg, a program for managing utmp/wtmp entries for xdm sessions;
- psupdate, which updates the /etc/psdatabase file to correspond
to the current kernel image system map file;
- watch, which watches a program as it changes;
- skill, which sends the terminate signal to a set of processes;
- snice, which alters the scheduling priority of selected processes;
- xmem;
- xload, which displays a periodically updated histogram of the
system load average;
- xidle;
- XConsole, which displays kernel messages in an X Window;
- xcpustate, which displays bars showing the percentage of time the
CPU spends in different states;
- psdatabase; and
- psdevtab.
The procps utilities are available in source code as well as
in executable form, with both included in the distribution.
Each program is documented in a man page.
[http://sunsite.unc.edu/pub/Linux/system/status/ps/]
- PROFIL/BIAS
- The Programmer's Runtime Optimized Fast
Interval Library is a C++
class library supporting the most commonly needed
interval arithmetic and
real operations. The supported data types are INT, REAL,
INTERVAL, vectors and matrices of these types, and complex
numbers.
PROFIL is based in BIAS (Basic Interval Arithmetic Subroutines),
a package
which aims to do for interval arithmetic what
BLAS has done for non-interval arithmetic, i.e.
provide an interface for basic vector and matrix operations with
specific and fast implementations for various architectures.
The difference between the two is that all interval operations
of PROFIL are independent of the internal representation and
implementation of the interval types.
The PROFIL/BIAS library includes various scalar interval,
vector, integer vector, matrix, interval matrix, and integer
matrix operations.
It also contains a large selection of standard functions, e.g.
trigonometric and log functions, absolute value, etc., as well
as utility functions for finding matrix inverses, transposes,
identities as well as some interval vector functions.
There are also linear system solvers which compute the enclosures
of solution sets.
There is a procedure for using Fortran library functions with
the library, and multiple precision arithmetic is also possible.
An extension package called PROFEXT is available which
contains miscellansous functions, test matrices,
subroutines for local minimization, general linear singly
linked lists, automatic differentiation subroutines, sample
programs, and instructions on how to adapt the library to
non-supported architectures.
Compilation of PROFIL/BIAS on UNIX systems requires the use of
the dmake utility.
The source code is configured to compile and installed on
several platforms, including Linux Intel.
An extensive user's and reference guide is available in
Texinfo format.
[http://www.ti3.tu-harburg.de/indexEnglisch.html]
- ProFit
- A least squares fitting program that fits one protein structure
to another, allowing as much flexibility as possible.
[http://www.biochem.ucl.ac.uk/~martin/programs/index.html]
- Progol
- An inductive logic programming (ILP) system which combines
inverse entailment with general-to-specific search through a
refinement graph.
Inverse entailment is used with mode declarations to derive
the most-specific clause within the mode language which entails
a given example. This clause is used to guide a refinement-graph
search.
The Progol search is efficient and has a provable guarantee
of returning a solution having the maximum compression in the
search-space. It does this by performing an admissible A*-like
search guided by compression over clauses which subsume the most
specific clause.
It deals with noisy data by using the compression measure to trade-off
the description of errors against the hypothesis description length,
and allows arbitrary Prolog programs as
background knowledge and arbitrarily define clauses as examples.
Progol is available in a source code distribution.
It is written in ANSI C and can be compiled and used on
most UNIX platforms.
It is documented in a user's manual available in
PostScript format.
See Muggleton (1995).
[http://www.comlab.ox.ac.uk/oucl/groups/machlearn/progol.html]
- programming environments
- To be completed.
- programming language
- A programming language is a program which usually translates
source code written in a high level language (e.g. C, C++, Fortran)
into assembly code for a specific computer architecture.
Interesting Web sites include
Programming Language Research
site, the
Virtual Library Computer Programming Languages
site, the
Language List
, and the
Catalog of Free Compilers and Interpreters
.
Useful books are
Friedman et al. (1992),
Gunter (1992),
Mitchell (1996), and
Wolfe (1996).
Interesting review sites include:
Implementations of programming languages (interpreters, compilers,
translators, preprocessors, or some combination thereof) include:
ABC,
AL,
aplc,
AppGEN,
April,
ASpecT,
Basis,
BCPL,
Berkeley Logo,
Beta-Prolog,
Bigloo,
BinProlog,
Bongo,
b2c,
C,
C++,
Cambridge Modula-3,
Cellang,
CH,
Cilk,
cim,
Clean,
CLiCC,
Clif,
CLISP,
CM,
CML,
CMUCL,
Cool,
COX,
C*,
CuPit,
DrScheme,
Dynace,
Eiffel/S,
Elk,
ELROS,
EML Kit,
eon,
ePerl,
Esterel,
e-TeX,
EusLisp,
Expect,
F,
f2c,
f2cl,
Flick,
forth2c,
FPKPascal,
Gawk,
gbeta,
GCL,
gema,
Gentle,
gforth,
Glasgow Haskell Compiler,
Glish,
GLU,
GNAT,
GNUDL,
Gödel,
Golem,
Gorby,
gps,
g77,
Guavac,
Guile,
Harissa,
hc,
heitml,
HMML,
Hobbit,
HPFFE,
HTML,
htp,
Hugs,
ICI,
Icon,
ILOG TALK,
INTERCAL,
Jacl,
JACOB,
Jade,
JAS,
JAVAR,
JDK,
JPP,
j2c,
JUMP,
Kaffe,
Kali Scheme,
Kawa,
LaTeX,
lcc,
Leda,
Lout,
Lua,
Maisie,
Marlais,
Marx,
MCPL,
Mentat,
Mercury,
Merle,
METAFONT,
MetaPost,
Mindy,
MIT Scheme,
ML Kit,
MOCKA,
Modula-2*,
Modula-3,
Moscow ML,
mpC,
MUMPS,
MzScheme,
Nascent,
NESL,
Oberon,
Objective Caml,
Obliq,
Octave,
OmSim,
OPAL,
Orca,
OScheme,
Ox,
Oz,
Parallaxis,
Perl,
PFE,
Phantom,
PHP/FI,
Pict,
Pizza,
PM,
Progol,
Python,
Q,
R,
Reactive-C,
Regina,
REXXimc,
Risa,
RLaB,
RNPL,
RScheme,
Sather,
SCC,
Scheme 48,
Scheme-to-C,
SCM,
sC++,
Self,
Shadows,
Siod,
Sisal,
Slang,
Slisp,
Small Eiffel,
Smalltalk/X,
SML/NJ,
SNOBOL4,
SOAR,
Squeak,
SR,
Stalin,
STBasic,
STk,
SWI-Prolog,
Tcl/Tk,
Tela,
TeX,
ThisForth,
Thomas,
Toba,
uC++,
Uncommon Lisp,
VIC,
Wild Life,
W-Prolog,
Xi,
XLisp-Stat,
Yabasic,
Yorick, and
youtoo.
- PROJ
- A cartographic projection program designed as a standard UNIX
filter utility to be employed with other programs in the generation
of maps and charts as well as map digitizing applications.
The PROJ package consists of three programs: proj/invproj, which
performs forward and inverse transformation of cartographic data
to or from cartesian data with a wide range of selectable projection
functions; geod/invgeod, which performs geodesic (Great Circle)
computations for determining latitude, longitude and back azimuth
of a terminus point given an initial point latitude, longitude,
azimuth and distance (direct) or the forward and back azimuths
and the distance between the initial and terminus point latitudes
and longitudes (inverse); and
nad2nad, a North American Datum conversion filter to convert between
the Datum of 1927 (NAD27) and that of 1983 (and which can also process
State Plane Coordinate System (SPCS) and Universal Transverse
Mercator (UTM) grid data as well as geographic data for both
input and output).
The projections originally availabe were: cylindrical projections
(e.g. Mercator, Transverse Mercator, Universal Transverse Mercator,
Oblique Mercator, Central Cylindrical, Transverse Central
Cylindrical, Miller, Lambert Cylindrical Equal Area, Gall
(Stereographic), Transverse Cylindrical Equal Area, Equidistant
Cylindrical, and Cassini); pseudocylindrical projections
(e.g. Sinusoidal, Mollweide, Robinson, Eckert I through VI,
Goode Homolosine, Hatano Asymmetrical Equal-Area, Loximuthal,
McBryde-Thomas Flat-Polar Parabolic (or Quartic or Sinusoidal),
Putnins P2, Quartic Authalic, Winkel I, Boggs Eumorphic,
Collignon, Denoyer Semi-Elliptical, and Craster Parabolic);
conic projections (e.g. Lambert Conformal Conic, Equidistant
Conic, Perspective Conic, Albers Equal Area, Lambert Equal
Area, Bipolar Oblique Conic Conformal, Polyconic (American),
Rectangular Polyconic, and Bonne); azimuthal
projections (e.g. Stereographic, Universal Polar Stereographic,
Orthographic, Airy, Near-Sided Perspective, Lambert Azimuthal
Equal Area, Azimuthal Equidistant, Hammer, Wagner VII,
Aitoff, and Winkel Tripel); and miscellaneous projections (e.g. August
Epicycloidal, Bacon Globular, Nicolosi Globular, Fournier
Globular I, Apian Globular I, Eisenlohr, Ortelius Oval,
Van der Grinten I through IV, and Lagrange).
More projections were added in a second release of the
package, i.e. Two Point Equidistant (Doubly Equidistant),
New Zealand Map Grid, LANDSAT, 50 United States Modified
Stereographic, Alaska Modified Stereographic, Lee Oblated
Stereographic, Miller Oblated Stereographic, Laborde, Mercator
(Wright), Lambert Conformal Conic (Conical Orthomorphic), and
Oblique Mercator (Rectified Skew Orthomorphic).
A third release added yet more projections including:
pseudocylindrical (e.g. Generalized Sinusoidal, Urmaev Flat-Polar
Sinusoidal Series, Eckert V, Wager II through VI, Foucaut Sinusoidal,
Hatano, Kavraisky VII, Putnins P3 through P6, Craster,
MacBryde-Thomas Flat-Polar Parabolic (and Sine and Quartic),
Sine-Tangent Series, Nell-Hammer, Robinson, Denoyer, Fahey,
Ginsburg VIII, and the Urmaev V Series); and miscellaneous
projections (e.g. Aitoff, Hammer-Aitoff, Eckert-Greifendorff,
Larrivée, and Laskowski).
The package contains the source code, written in ANSI C for
portability for all three programs. The documentation is
contained within three technical reports available in
PostScript format (which contain some very nice graphics
for most of the projections). This package can be used as
a standalone package as input for some other program or with
the MAPGEN front-end package.
[ftp://kai.er.usgs.gov/pub/]
- Prolog
- Non-commercial Prolog systems include
Beta-Prolog,
BinProlog,
PM,
SWI-Prolog,
WAMCC,
W-Prolog, and
XSB.
PROLOG texts include
Clocksin and Mellish (1984),
Dodd (1990),
Kim (1991),
Konigsberger and deBruyn (1990),
Pereira and Shieber (1987), and
Shoham (1994).
- Proteus
- An exectutable, high-level, architecture-independent parallel
programming notation in which sophisticated parallel algorithms
free of complex low-level architecture-specific details can be
developed and evaluated.
This is a rapid prototyping system which permits the exploration
of a large and complex space of alternatives.
Proteus represents a refinement based development methodology
where the refinement of a program consists of modifying it to
reflect restrictions in the use of concurrency constructs, with
the restriction expressing the adaptation of a high-level design
to constructs efficiently supported on a specific architecture.
Programs which are suitably refined in their use of the Proteus
notation can be automatically translated to efficient parallel
programs in low-level architecture-specific notations, and can
then be run directly on the targeted architecture.
The Proteus environment consists of several components.
The program repository organizes different versions of Proteus
programs and the low-level generated codes using either CVS
or RCS.
The program modification system creates new versions of programs
via either manual editing to change the functionality or restriction
of a program, or by the automatic generation of a low-level
program from a restricted Proteus program.
The program execution system consists of a Proteus interpreter
including run-time monitoring and analysis functions as well as
an interface to external modules in the form of existing applications
or those generated by the translation of Proteus programs.
The module interconnection facility (MIF) is a socket-based
facility managed by the interpreter to permit Proteus programs
to communicate with concurrently executing external applications.
Proteus currently (5/97) only works with a CVL library
implementation for MasPar computers, but an implementation which
will run on top of PVM is being developed.
A sequential Proteus interpreter is currently available in source
code format.
It should compile and run on many UNIX platforms.
The documentation includes a language manual available in
PostScript format.
[http://www.cs.unc.edu/Research/proteus/]
- ProTeX
- A style-independent
literate programming
system built on top of LaTeX.
ProTeX is extensible, language independent, and produces
multiple output files.
[http://www.cis.ohio-state.edu/~gurari/systems.html]
- protocols
- Various computer and network protocols including:
- ACAP, the Application Configuration Access
Protocol is designed to support remote storage and access of program
option, configuration and preference information (2244);
- AgentX, a protocol for communication between
master agents and subagents within a standardized framework for extensible
SNMP agents (2257);
- AppleTalk
- ATM
- BGP, the Border Gateway Protocol is an
inter-Autonomous System routing protocol whose primary function is to
exchange network reachability information with other BGP systems (1771);
- CAMAC, a standard electronic interface system
protocol generally used for data acquisition;
- CAN, a protocol for a serial bus system with
multi-master capabilities;
- CMIP, the Common Management Information Protocol
- DHCP, the Dynamic Host Control Protocol provides
a framework for passing configuration information to hosts on a TCP/IP
network (2131);
- DICT, the Dictionary Server Protocol is a TCP
transaction-based query/response protocol allowing a client to access
dictionary definitions from a set of natural language dictionary
databases (2229);
- DVMRP, the Distance Vector Multicast Routing
Protocol
- Ethernet
- FDDI, the Fiber Distributed Data Interface
- FireWire, a type of high speed serial
bus protocol for devices requiring significant bandwidth;
- FTP
- Gopher
- GSMP, the General Switch Management Protocol is
a general purpose protocol to control an ATM
switch (2297);
- HDLC, the High-Level Data Link Control protocol
concerns transmitting data at a set flow rate across a network;
- HTCPCP, the Hyper Text Coffee Pot Control
Protocol is for controlling, monitoring and diagnosing coffee pots (2324);
- HTTP, the HyperText Transport Protocol
- ICMP, the Internet Control Message Protocol
- ICP, the Internet Cache Protocol
- IGMP, the Internet Group Management Protocol
is used by IP hosts to report their multicast group memberships to
routers (2236);
- IMAP
- IP
- IPSec
- IPv6
- IRDP, the ICMP Router Discovery Protocol
- ISDN
- Kerberos, a network identification protocol
- LDAP, the Lightweight Directory Access Protocol is
designed to provide access to the X.500 Directory and targeted a simple
management applications and browser applications that provide simple read
or write interactive access to X.500 (2251);
- MIME, the Multipurpose Internet Mail Extensions
- MMS, the Manufacturing Message Specification
is an OSI application layer protocol for the
remote control and monitoring of industrial devices;
- Mobile IP, a protocol for mobile computer
users who wish to connect to the Internet and maintain that connection
while moving from place to place;
- MOSPF, the Multicast Open Shortest Path First
protocol;
- MSIX, the Metered Service Information Exchange is
a protocol designed to enable ISPs to effectively meter usage;
- NDMP, the Network Data Management Protocol
- NHRP, the NBMA Next Hop Resolution Protocol
is used by a host or router connected to a NBMA subnetwork to determine
the internetworking layer address and NBMA subnetwork addresses of the
``NBMA next hop'' towards a destination station (2332);
- NFS, the Network File System
- NNTP, the Network News Transport Protocol
- NPMP, the Network Peripheral Management Protocol
- NTP, the Network Time Protocol
- OSI, the Open Systems Interconnection protocol
is a seven layer model for network communications;
- OSPF, the Open Shortest Path First
TCP/IP routing protocol distributes, based on
link-state or SPF technology, information between routers belonging to
a single Autonomous System (2328);
- OTP, the One-Time Password authentication system
provides authentication for system access and other applications requiring
authentication that is secure against passive attacks based on replaying
captured reusable passwords (2243);
- PIM, the Protocl Independent Multicast, for
establishing multicast connections across wide-area internets where groups
are sparsely represented and bandwidth not plentiful;
- POP
- PPP , the Point-to-Point Protocol
- RADIUS, the Remote Authentication Dial In User
Service protocol provides an open and scalable client/server security
system for dial-up access;
- RIP, the Routing Information Protocol is one
for exchanging routing information among gateways and other hosts;
- RSVP, the ReSerVation Protocol is part of a
larger effort to enhance the Internet architecture with support for
quality of service flows;
- RTP, the Real-time Transport Protocol
- RTSP, the Real Time Streaming Protocol is an
application-level protocol for controlling the delivery of data with
real-time properties (2326);
- SCSP, the Server Cache Synchronization Protocol
attempts to solve the generalized cache synchronization/cache replication
problem for distributed protocol entities (2334);
- SDP, the Session Description Protocol is intended
for describing multimedia sessions for the purposes of session announcement,
invitation, and other forms of session initiation (2327);
- SLIP, the Serial Line Internet Protocol
- SMTP
- SNQP, the Simple Nomenclator Query Protocol
is for querying servers that search collections of data repositories (2259);
- SOCKS, a networking proxy protocol that enables
hosts on one side of a SOCKS server to gain full access to those on the
other side without requiring direct IP reachability by authenticating
and authorizing requests, establishing a proxy connection, and relaying
the data;
- SSL
- TCP
- Telnet
- TFTP, the Trivial File Transfer Protocol
- UDP, the User Diagram Protocol
- USB, the Universal Serial Bus is a low speed
serial bus protocol both hot-pluggable and plug-and-play;
- UUCP
- VNET, the Virtual NETwork protocol is a virtual
protocol that manages multiple physical network protocols
- VRRP, the Virtual Router Redundancy Protocol
specifies an election protocol for dynamically assigning responsibility
for a virtual router to one of the VRRP routers on a LAN (2338);
- VSAP, the Virtual Socket Association Protocol
- WAIS, the Wide Area Information Server
- XTP, the Xpress Transport Protocol is a transport
layer protocol for providing a wide range of communication services via
orthogonal transport mechanisms;
- pscover
- A pair of Perl scripts for combining and
extracting a PostScript cover page and an arbitrary PostScript
document. These utilities use the Adobe Document Structuring
Conventions to create a composite document understandable
to printers and previewers.
[http://www.cs.brown.edu/software/catalog.html]
- PseudoPack
- A Fortran software library for numerical differentiation
by pseudospectral methods. The capabilities include differentiation
of one or several vectors via a single subroutine call, differentiation
on either the first or second index of a 2-D array, minimized
roundoff error for the Chebyshev differentiation, and further
reduction of roundoff error and matrix condition number by the
use of a coordinate mapping. Algorithms provided include
matrix-matrix multiply, even-odd decomposition and cosine
transform-recursion. At presnet (7/96) only Chebyshev methods
and first derivatives are supported although future versions
will expand on both. (And, indeed, version 2 was released
in 10/96 with even more capabilities).
The available source code is written in Fortran 77 and uses
the C preprocessor to compile the code into versions for
Cray, IBM R6000, SGI, and generic platforms. The generic
port requires BLAS
and VFFTPACK, both avaiable from Netlib. A few Fortran 90
extension (long function and variable names and the enddo
keyword) are used in the code and as such it might have to
be tweaked a bit to work with g77. I haven't yet attempted
to compile and use it on my Linux box.
[http://www.cfm.brown.edu/people/wsdon/home.html]
- psmisc
- A collection of /proc-based utilities including:
fuser, which identifies processes using files;
killall, which kills processes by name;
pidof, which lists PIDs of processes specified by name; and
pstree, which shows the currently running processes as
a tree.
A source code distribution of these utilities is available.
[ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/]
- P-SPARSLIB
- A set of tools for solving large sparse linear systems
on distributed memory computers.
Solutions are obtained by first partitioning a linear system,
then splitting it according to the partitioning, constructing
a distributed data structure, and finally invoking a preconditioned
Krylov solver for its solution.
It consists of four major
parts: accelerators, preprocessing tools, preconditioning
routines, and message-passing tools. The accelerators and
preconditioners are the functional layer, with the former
based on Krylov subspace methods and the latter needed because
the former tends to work poorly without preconditioning.
The functional modules are designed to be as independent as
possible from data structures and the specifics of the message
passing libraries used.
The non-functional module contains the message passing layer
of the library, which provides an interface between the communication
functions used in the library and those in standard communication
libraries as well as native libraries of some parallel computers.
The routines are designed to exploit redundancy of communications
and asynchronous message passing capabilities to reduce latency
and allow an overlap between computations and communications.
This layer may be phased out in future releases if one of the
standard message passing libraries improves sufficiently to
supply the desired performance characteristics on the appropriate
architectures.
Source code distributions of P-SPARSLIB are available.
Versions are available for CM5-CMMD, CRAY-T3D,
MPI and
PVM platforms. A technical
report/user's guide is available in
PostScript format.
[http://www.cs.umn.edu/Research/arpa/p_sparslib/psp-abs.html]
- PSPLOT
- A library of Fortran-callable
subroutines for generating two-dimensional technical drawings
or graphics in PostScript format. It supports black and white and
color graphics, and contains 75 subroutines for performing
all the basic operations that are needed for creating
technical graphs. PSPLOT is written in Fortran 77, supports the
standard 35 PostScript fonts, and is platform independent.
[http://www.nova.edu/ocean/psplot.html]
- PStill
- A PostScript to PDF
converter. It is a level 1 clone interpreter so Level 2 jobs won't
run on it (although quite a bit of Level 2 is emulated).
It conforms mostly to the PDF 1.1 specification.
A binary distribution is freely available for Linux platforms.
[http://www.noir.net/frank/pstill.html]
- pstoedit
- A program which converts PostScript
and PDF files to other vector graphic formats
so they can be edited graphically.
Pstoedit consists of a PostScript frontend which needs to call
an interpreter like Ghostscript and
the individual backends which are plugged into a framework.
The framework can be used independently from the frontend and
provides a uniform interface to all of the different backends.
The formats supported by the backends are:
debug, XFig, CGM,
PDF,
Gnuplot, DXF, LWO, Framemaker MIF,
RIB, RPL, JAVA, PS, MET, WMF,
Tgif, Idraw, and dump.
The pstoedit package is written in C++. It can be compiled
using g++.
It is documented in a man page as well as in a user's guide
in HTML format.
[ftp://ftp.digex.net/pub/X/contrib/applications/pstoedit/]
- pstoepsi
- A set of scripts for converting arbitrary PostScript to
Encapsulated PostScript with an optional preview image.
These can generate EPS, EPSI and EPSF formats.
The use of pstoepsi requires both the
Pbmplus tools and the
Ghostscript converter.
[ftp://ftp.cs.purdue.edu/pub/dgc/]
- pstotext
- A program that works with
Ghostscript (version 3.33 or
later) to extract plain text from
PostScript and
PDF files (although the latter
requires Ghostscript 3.51 or later).
This is written in C and should compile on almost any UNIX platform
with a C compiler. The documentation is contained within a
man page.
[http://www.research.digital.com/SRC/virtualpaper/pstotext.html]
- PSTricks
- A collection of PostScript-based
TeX
macros that allow the
inclusion of color, graphics, rotation, trees and overlays in
TeX documents.
[http://www.princeton.edu/~tvz/tex.html]
[http://www.tug.org/applications/PSTricks/
]
- PSTSWM
- The Parallel Spectral Transform Shallow
Water Model is a message passing benchmark code
and parallel algorithm testbed which solves the nonlinear shallow
water equations (SWE) on a rotating sphere using the spectral
transform method. PSTSWM was developed to evaluate parallel algorithms
for the spectral transform method as it is used in global atmospheric
circulation models. Multiple parallel algorithms are embedded in the
code and can be selected at run-time as can the problem size,
number of processors, and data decomposition.
Six different problem test cases are supported, each with associated
reference solutions and solution and error analysis options.
The PSTSWM source code is available. It is written in
Fortran 77 with VMS extensions and a
small number of C preprocessor directives. Message passing
can be implemented with the MPI,
PICL, or PVM
libraries with the choice being made at compile time.
The package is documented in a user's guide and some technical
reports, all available in PostScript
format.
[http://www.epm.ornl.gov/chammp/pstswm/]
- psutils
- A set of utilities to process PostScript source code.
The utilities include:
- psbook, which rearranges pages into
book signatures;
- psselect, which selects pages and page ranges
for printing;
- pstops, which performs general page rearrangement
and selection;
- psnup, which puts multiple pages per physical
sheet of paper;
- psresize, which alters the size of the document
on the paper; and
- epsffit, which fits and EPSF file to a given
bounding box.
These programs are all written in C and can be compiled and
installed on generic UNIX platforms.
The programs are documented in individual man pages.
[ftp://ftp.dcs.ed.ac.uk/pub/ajcd/]
[http://sunsite.unc.edu/pub/Linux/apps/wp/
]
- pt
- The Pluto Tools perform various operations on
text files specified on the command line or standard input.
These operations include: converting any character to upper
or lower case; converting first letters of any word, period,
or paragraph to upper case, switching upper case to lower case
and vice versa, converting to UNIX, DOS, or MAC text file
formats, removing enters that are not at the end of a paragraph,
converting tabs to spaces and vice versa, indentation,
simple encryption, stripping binary parts of files,
stripping 8th bits, and deleting spaces and tabs at the
end of each line.
[http://sunsite.unc.edu/pub/Linux/utils/text/]
- PTC
- Prometheus TrueColor is a portable true color graphics
system suitable for use in the creation of games, demos, emulators and
other real time graphics software.
It is especially useful as the framework for a 2- or 3-D rendering
engine.
PTC is a set of C++ classes that abstracts the
platform-specific details of mode setting, surface handling, pixel
format conversion and display updates.
It allows you to write graphics code once and recompile without changing
anything on all supported platforms.
A feature not found in most other libraries is virtual display modes,
which enable the programmer to work internally in 8-bit indexed color,
RGB565 hilcolor or ARGB8888 true color independently of the display
pixel format.
A source code distribution of PTC is available. It is currently (6/98)
supported on DOS, Win32 and Linux under a wide range of C++ compilers,
and support for X11, BeOS and Amiga is under
development.
Various documentation is available online.
[http://www.gaffer.org/ptc/]
- ptcl
- A package that implements
PGPLOT functions as
Tcl/Tk commands.
This allows users to create plots from the command line or
from scripts and, with the addition of various Tcl extensions,
to also create simple graphical user interfaces that allow
direct interaction with plots. It has been ported to HP-UX
Linux, and SunOS platforms with ports to other platforms
on which PGPLOT and Tcl are already installed not a horribly
difficult task.
[ftp://ftp.fornax.usno.navy.mil/dist/ptcl/ptcl.html]
- pthreads
- Pthreads is the POSIX 1003.1c
threads
standard put out by the IEEE standards committee. It is also
the name of a software package obtainable at the given URL.
See Nichols et al. (1996).
[http://www.mit.edu:8001/people/proven/pthreads.html]
- p2c
- A Pascal to C
translator.
[ftp://cs.caltech.edu/pub/]
[http://www.synaptics.com/people/daveg/
]
- Ptolemy
- A software system upon which to build prototyping environments.
Examples thus far of such environments include dataflow-oriented
graphical programming for signal processing, discrete-event
modeling of communication networks, and synthesis environments
for embedded software. If you think about it, just about
any sort of numerical or digital signal processing
package is possible to implement with
this system. After all, linear algebra and matrix operations
are pretty much universal. The source code is available as
well as binaries, including (I think) a Linux binary.
Fair warning: This, like Khoros, is a *huge* package with
a lot of documentation.
[http://ptolemy.eecs.berkeley.edu/]
- PTool
- A database tool providing persistence for data which supports
the creation, storage, access and querying of complex objects. It
is designed for high performance access to data and to scale as
both the amount of data and the complexity of queries increase.
PTool doesn't have the overhead of a general purpose object oriented
database and thus is particulary well-suited for applications requiring
high performance access to historical data. It is designed to
query data distributed in a hierarchical storage system and is thus
also well suited for data mining applications. It is also designed
to query data in a multi-computer environment which makes it well
suited for applications requiring numerically intensive queries.
The PTool design
optimizes for high-performance access to historical data,
provides a standard interface to IEEE compliant hierarchical storage systems,
provides support for distributed data queries using message passing for
loosely and tightly coupled clusters of workstations,
supports uniform addressing of large amounts of data using 64 bit
pointers,
can be integrated in a modular fashion to existing scientific
computing environments, and
includes class libraries for scientific computing.
The current (3/97) release is broadly
ODMG
compliant and the
next major release is planned to be
CORBA compliant.
The PTool distribution contains the source code including
a variety of container classes, a series of pedagogical examples,
tools for working with tabular data, and other tools including
a basic tool for visualizing series data. The source code is
set up to be compiled on Sun or IBM workstations, but I got it
to compile with fairly minor modifications, i.e. removing the
Sun and IBM specific include files from various programs.
[http://www_lac.eecs.uic.edu/]
- PTUI
- The Python/Tkinter User Interface is
a Python code development user interface
consisting of an editor and an interpreter
which can be embedded in larger applications or used by itself.
It is an attempt to create an environment in which you can run
code from within the Tk mainloop like in the wish interpreter,
and uses a small framework of classes that can be embedded into a
larger application to facilitate rapid development and testing.
The features of PTUI include:
undo;
a modularization feature to communicate between buffers;
automatic indentation;
syntax highlighting;
an argument to execute an initialization script to change height,
colors, fonts, etc.;
searchable online help;
an arbitrary object browser;
multiple buffers with individual namespaces;
usability as a frame which can be embedded in another application;
find/goto;
comment/uncomment regions;
built in output and error windows; and more.
A source code version of PTUI is available. Installation
requires Python 1.4 or higher, Tkinter (part of the Python
distribution), and Tcl/Tk (versions
7.4/4.0 through 7.6/4.2).
[http://starship.skyport.net/crew/zack/ptui/]
- ptx
- A GNU version of a traditional permuted
index generator.
It can handle multiple input files simultaneously, produce
TeX compatible output, and produce
KWIC (KeyWords In Context) indexes.
[http://www.gnu.ai.mit.edu/order/ftp.html]
- PUZZLE
- A package for reconstructing phylogenetic trees from molecular
sequence data by maximum likelihood which implements a fast
tree search algorithm (i.e. quartet puzzling) that allows for the
analysis of large data sets and automatically assigns estimations
of support to each internal branch.
It incorporates rate heterogeneity (invariable sites plus
Gamma distributed rates) in all available substitution
models (e.g. TN, HKY, and F84 for nucleotides; Dayhoff, JTT and
mtREV24 for amino acids).
PUZZLE computes pairwise maximum likelihood distances as
well as branch lengths for user specified trees. It offers a novel
method, i.e. likelihood mapping, to investigate the support of
internal branches without computing and overall tree.
Other features include:
- computation of clock-like branch lengths (and also for
amino acides and non-binary trees);
- an automatic likelihood ratio clock test;
- the display of most probably assignment of rates to sites;
- identifying groups of identical sequences;
- reading multiple input trees;
- the Kishino-Hasegawa test to check whether trees are
significantly different;
- the BLOSUM 62 model of amino acid substitution; and
- application of SH model to 1st and 2nd codon positions.
PUZZLE is written in C and can be compiled and used on UNIX,
VMS, Mac and MS-DOS platforms.
It is documented in a user's manual available in both
HTML and PostScript format.
[http://www.zi.biologie.uni-muenchen.de/~strimmer/puzzle.html]
- PVaniM
- A enhancement of PVM that produces animations
of the execution of PVM applications.
This is actually a couple of separate subsystems, one of which
provides fine-grained, post-mortem visualizations of PVM
applications, and the other which provides on-line, low-overhead,
minimal perturbation visualizations.
Both are built on top of the POLKA
visualization package and can be used on packages with both
POLKA and PVM installed.
[http://www.cc.gatech.edu/gvu/softviz/parviz/parviz.html]
- PVM
- The Parallel Virtual Machine) software
is a package that enables
a collection of heterogeneous computers to be used as a coherent and
flexible concurrent computational resource.
PVM is an integrated set of software tools and libraries which
emulates a general-purpose, flexible, heterogeneous
concurrent computing framework on interconnect computers of
varied architecture.
The system consists of two parts:
a daemon called pvmd which resides on all computers comprising
the virtual machine, and a library of PMV interface routines containing
a functionally complete repertoire of primitives needed for cooperation
between the tasks of an application.
PVM currently (5/97) supports C, C++ and Fortran language interfaces.
The C and C++ language bindings are implemented as functions while
the Fortran bindings are implemented as subroutines
The principles upon which PVM is based include:
a user-configured host pool containing a list of computers upon
which computational tasks can be performed which can be added to
and deleted from before or during operation;
translucent access to hardware where application programs may view
the hardware environment either as an attributeless collection of
virtual processing elements or can exploit the capabilities of
specific machines in the host pool by positioning specific tasks
on the most appropriate machines;
process-based computation in which the basic unit of parallelism
is a task, i.e. an independent sequential thread of control which
alternates between communication and computation;
an explicit message-passing model in which collections of computational
tasks perform the workload for an application using data-, functional-,
or hybrid-decomposition and cooperate by explicitly sending and receving
messages to one another;
heterogeneity support in terms of machines, networks, and applications;
and multiprocessor support wherein PVM uses the native message-passing
facilities on multiprocessors to take advantage of the underlying
hardware.
The January 1998 issue of the
Linux Journal contains an
article on using PVM with Linux.
Ancillary programs or languages which require the use of
PVM include:
Adsmith,
A++/P++,
BLACS,
CL-PVM,
CODE,
Condor,
Converse,
COSMICS,
C*,
Dome,
DPTMA,
DSU,
Emu/fdtd,
fsolver,
GALOPPS,
GLU,
HPF,
JavaPVM,
LPARX,
Maisie,
mEDA-2,
NAMD,
Pade,
Parallax,
Para++,
PCCM,
Perl-PVM,
PFSLib,
PIM,
PIOUS,
POV-Ray,
ppmake,
P-SPARSLIB,
PSTSWM,
PVaniM,
ScaLAPACK,
Sciddle,
Surface Evolver,
Tkpvm,
TRAPPER,
VIC,
VPE, and
Xi.
PVM supports a wide variety
of platforms (including those running Linux) that may be interconnected
by a variety of networks. Extensive documentation is available,
including a PostScript file of a recently published book about PVM.
See Geist et al. (1994).
[http://www.epm.ornl.gov/pvm/pvm_home.html]
- TPVM
- Threads-oriented PVM is an experimental subsystem for
PVM which supports the use of light-weight
processes or threads as the basic unit
of scheduling and parallelism.
TPVM is designed for ease of portability with the changes required
for a different platform, OS, or threads implementation isolated in
a single module.
The thread model overcomes several of the disadvantages of a
process-oriented model, principal among which are task initiation
and scheduling costs, overlapping computation and communication
on a single processor, smaller granularity, exploiting
small-scale SMMPs, and supporting event- or data-driven active
message based computation.
[http://www.cs.virginia.edu/~ajf2j/tpvm.html]
- PVRG-JPEG
- A fairly complete JPEG
baseline package targeted toward simulation
and research (where a baseline system is defined as the minimal
system needed to claim JPEG compatibility).
The system includes a flexible encoder which can generate
compressed files through different valid strategies which can
also decode all possible JPEG baseline compressed files.
The source code for PVRG-JPEG, written in C, is available and
can be compiled on most generic UNIX systems with a C compiler.
The package is documented in a 55 page PostScript technical
manual and user's guide.
[ftp://havefun.stanford.edu/pub/jpeg/]
- PVS
- A verification system, i.e. a specification language integrated with
support tools and a theorem prover.
It is intended to capture the state-of-the-art in mechanized
formal methods and to be sufficiently rugged to be used for significant
applications.
The PVS system consists of a specification language, a number of
predefined theories, a theorem prover, various utilities, documentation,
and several examples from a variety of application areas.
PVS has thus far been chiefly applied to algorithms and
architectures for fault-tolerant flight control systems and to
problems in hardware and real-time system design.
The PVS language is based on classical, typed higher-order logic
with base types including uninterpreted types that may be
introduced by the user as well as built-in types such as
booleans, integers, reals, and the ordinals.
Type constructors include functions, sets, tuples, records,
enumerations, and recursively-defined abstract data types such
as lists and binary trees.
The theorem prover provides a collection of powerful primitive
inference procedures which are applied interactively under user
guidance wihtin a sequent calculus framework.
The inferences include propositional and quantifier rules, induction,
rewriting, and decision procedures for linear arithmetic, with the
implementations thereof optimized for large proofs.
PVS uses Emacs to provide an integrated
interface for the language and prover. Extensive help, status
reporting, and browsing tools are available as well as the
capability of typesetting specifications in
LaTeX. Proof trees and theory hierarchies
can be displayed graphically using Tcl/Tk.
PVS is implemented in Common Lisp
and runs on most workstations with a Common Lisp compiler
with an integrated CLOS.
It is supported on Sun SunOS and Solaris, IBM AIX, and Linux Intel
running Redhat 4.0 or greater.
A plethora of manuals are available for PVS, all in
PostScript format. These include
an overview, a quick reference, a language manual, a system
manual, a prover manual, a tutorial, and more.
The package are freely available via the Web but a license
agreement must also be signed to use it.
[http://www.csl.sri.com/pvs.html]
- pWEB
- A parallel Web server harness which provides a request-forwarding
context-switching infrastructure for building
HTTP services over a cluster
of workstations. Popular servers like Apache, NCSA, Spinner,
Plexus, etc. can be hooked up onto the harness for parallel
processing HTTP requests. This provides the most benefit on
workstation clusters with fast interconnects like ATM or on
distributed memory parallel computers, although it can be used
over ethernet connections. Advantages which can be derived
from pWEB include load balancing (i.e. CPU intensive CGI requests
can be distributed across workstation nodes) and distributed
file I/O (i.e. file access congestion can be decreased by
directing file requests to a specific node's local disk).
The pWEB package includes the source code which is written
in C. The Makefile includes parameters to compile on UNICOS,
SGI IRIX, IBM AIX, Sun Solaris and SunOS, DEC OSF/1, and Linux
systems. The documentation is included in the package and
is also available online.
[http://phobos.nsrc.nus.sg/STAFF/edward/pweb.html]
- PXI
- A program developed to allow for the convenient visualization
of n-dimensional economectric data which is useful for
displaying all types of data.
PXI offers publication quality output, a convenient
graphical user interface (GUI), and powerful data manipulation
features.
The features of PXI include:
- graph annotation in a variety of fonts;
- fitting experimental data including the plotting of
the likelihood function, various tokens to annotate each
data point, and the numerical annotation of data points;
- a built-in algorithm for generating complete quantal response
correspondence for normal form games;
- a choice of graph types including each data column plotted
against the dependent variable on a rectangular grid,
- two data columns plotted on a triangular grid to simulate
3-D graphics, and
- one data column plotted against another.
PXI is a shareware package with binaries available for
MS Windows, Sun SunOS and Solaris, HP-UX, IBM RS/6000, and,
upon request, Linux platforms.
[http://www.cco.caltech.edu/~egrayver/pxi.html]
- PyNG
- The Python Network Grapher is a tool designed to
give visible insight into network usage. It summarizes network
traffic flow through a GUI and plots a usage graph for the current
day as well as overviews for the week, month, and year.
[http://www.cb.hva.nl:81/PyNG/]
- PyOpenGL
- A Python interface to the
OpenGL widget set.
[http://www.python.de/]
- PyrTools
- A collection of Matlab tools for multi-scale
image processing.
The PyrTools set includes programs for:
recursive multi-scale image decompositions including Laplacian
pyramids, QMFs, wavelets, and steerable pyramids to operator on 1-D
or 2-D signals of arbitrary dimension;
fast 2-D convolution routines with subsampling and boundary handling;
fast point operations, histograms, and histogram matching;
fast synthetic image generation;
and display routines for images and pyramids.
[ftp://ftp.cis.upenn.edu/pub/eero/]
- Python
- An interpreted, interactive, object-oriented programming/scripting
language. It has modules, classes, exceptions, high level
dynamic data types, and dynamic typing along with interfaces
to many system calls, libraries and various windowing systems
(e.g. X11,
Motif,
Tcl/TK,
Mac, MFC, STDWIN). New modules are
easily written in C or C++, and it is usable as an extension
language for applications that need a programmable interface.
The source code is available and easily installable on UNIX
platforms, and binaries are available for many platforms
including Linux. A nicely done
Python Tutorial
can be found at
UnixWorld Online
. The
Jan. 1996 issue of the Linux Journal
has an introduction to Python by Jeff Bauer.
A project to develop a matrix language called
Numerical Python
is well under way as of 7/96.
See Lutz (1996) and
Watters et al. (1996).
Related packages which are written in, extend or use Python in
some way include:
Apache,
Bobo,
BSCW,
Chautauqua,
FastCGI,
Fnorb,
Gadfly,
Grail,
GraphApp,
Guile,
HTMLgen,
ILU,
JPython,
Mailman,
Medusa,
MMTK,
mSQL,
NSAPY,
NumPy,
Paos,
PIL,
Pipermail,
Pmw,
PTUI,
PyNG,
PyOpenGL,
PythonNetCDF,
PyXForms,
Rivet,
SAML,
SNMPY,
SWIG,
SYLU,
Wafe,
Wily,
WPY,
wxPython,
X-extension, and
zlib.
[http://www.python.org/]
[http://starship.skyport.net/
]
- PIL
- The Python Imaging Library adds an image
object to the Python interpreter. This
allows loading image objects from a variety of file formats as
well as applying a large set of image operations to them.
The operations which can be performed using the PIL objects include:
color manipulations including
bilevel, greyscale, palette, true color (RGB), true color with
transparency, and color separation (CMYK); copying, cutting, and
pasting; transparency; channel and point operations; color transforms
including matrix operations; and image enhancement including
convolution filters.
File formats which can be opened, loaded, and saved are: BMP, EPS (with
Ghostscript), GIF, IM,
JPEG, MSP, PNG,
PPM, TIFF and XMB.
Read only formats are CUR, DCX, FLI, FLC,
GBR, GD, ICO, IMT, PhotoCD, PCX, PSD, TGA, SGI, SUN, and WMF, and
save only formats are PDF and EPS (without GhostScript).
PIL can be installed on most platforms which support Python.
Full functionality requires the aforementioned Ghostscript as
well as the IJG JPEG library and the ZLIB library.
The package is documented in a 40 page manual in
PostScript format.
[http://www.python.org/sigs/image-sig/Imaging.html]
- PyXForms
- A package that basically binds together the
Python interpreted language and
the
XForms GUI builder.
This faciliates the quick and easy construction of
GUIs on many UNIX/X Window platforms. It is object oriented,
extensible, and allows the non-graphic portions of the program
to be written in Python, C or C++.
[http://ultra7.unl.edu.ar/pyxforms]