probabilistic

<probability>

Relating to, or governed by, probability. The behaviour of a probabilistic system cannot be predicted exactly but the probability of certain behaviours is known. Such systems may be simulated using pseudorandom numbers. Evolutionary computation uses probabilistic processes to generate new (potential) solutions to a problem.

See also deterministic, non-probabilistic.

Last updated: 1995-09-22

probabilistic automaton

nondeterministic automaton

Probability of Failure on Demand

<systems>

(POFOD) The likelihood that some system will fail when a service request is made.

Last updated: 2010-09-26

Probe

An object-oriented logic language based on ObjVlisp.

["Proposition d'une Extension Objet Minimale pour Prolog", Actes du Sem Prog en Logique, Tregastel (May 1987), pp. 483-506].

problem state

IBM jargon for user mode, the opposite of "supervisor state".

On IBM System 360, 370 and 390 mainframes privileged instructions may only be executed in "supervisor state". Application programs request the operating system to perform these operations by using the Supervisor Call (SVC) instruction.

Last updated: 1995-02-15

Problem Statement Language/Problem Statement Analyser

<language>

(PSL/PSA) A CASE system developed by D. Teichroew that allows computer-based development and analysis of a statement of requirements, and assistance during the design phase.

Last updated: 2010-01-26

PROC

<language>

The job control language used in the Pick operating system.

["Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986].

Last updated: 1998-10-13

procedural

procedural language

procedural language

<language>

Any programming language in which the programmer specifies an explicit sequences of steps to follow to produce a result (an algorithm).

The term should not be confused with "imperative language" - a language that specifies explicit manipulation of state. An example (non-imperative) procedural language is LOGO, which specifies sequences of steps to perform but does not have an internal state.

Other procedural languages include Basic, Pascal, C, and Modula-2.

Both procedural and imperative languages are in contrast to declarative languages, in which the programmer specifies neither explicit steps nor explicit state manipulation.

Last updated: 2004-05-17

Procedural Language/SQL

<language>

(PL/SQL) Oracle Corporation's proprietary procedural language extension of industry-standard SQL.

[Features? Reference? Any relation to PL/I?]

Last updated: 1999-09-14

procedure

subroutine

proceedings

<publication>

(Proc.) A printed collection of papers presented at a conference or meeting, e.g. "The Proceedings of the Fifth International Conference on Microelectronics for Neural Networks and Fuzzy Systems". Along with learned journals, conference proceedings are a major repository of peer-reviewed research results.

Last updated: 2008-07-16

process

<operating system, software>

1. The sequence of states of an executing program. A process consists of the program code (which may be shared with other processes which are executing the same program), private data, and the state of the processor, particularly the values in its registers. It may have other associated resources such as a process identifier, open files, CPU time limits, shared memory, child processes, and signal handlers.

One process may, on some platforms, consist of many threads. A multitasking operating system can run multiple processes concurrently or in parallel, and allows a process to spawn "child" processes.

Last updated: 2001-06-16

<business>

2. The sequence of activities, people, and systems involved in carrying out some business or achieving some desired result. E.g. software development process, project management process, configuration management process.

Last updated: 2001-06-16

Process and Experiment Automation Real-Time Language

<language>

(PEARL) A real-time language for programming process control systems, widely used in Europe. Size and complexity exceeds Ada. Defined in DIN 66253 Teil 2.

["Programmiersprache PEARL", Beuth-Verlag, Nov 1980].

Last updated: 2000-08-16

process data

data processing

Process Design Language 2

<language>

(PDL2) A language developed for the Texas Instruments ASC computer.

["Texas Instruments Process Design Methodology - Design Specification: Process Design Language", Volume I (Sep 1976)].

[Mentioned in "An Overview of Ada" J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980)].

Last updated: 1995-08-13

process ID

process identifier

process identifier

<operating system>

(PID) An integer used by the Unix kernel to uniquely identify a process. PIDs are returned by the fork system call and can be passed to wait() or kill() to perform actions on the given process.

Last updated: 1996-12-09

processing

<data>

Performing some predefined sequence of operations on an input to produce an output or change of internal state; activity specifically involving the computer's CPU.

The term is often qualified: "data processing" treats digital data, "signal processing" treats analog data (possibly in digital form), "word processing" takes in typed human language input and produces digital documents, image processing transforms digital images.

Last updated: 2003-10-23

processor

central processing unit

Processor Direct Slot

<hardware>

(PDS) Apple Computer's name for a local bus connection. Most Macintoshes have only one PDS connector. Different Apple computers have different PDS specifications.

Last updated: 1995-05-02

processor farm

<computer, parallel>

A parallel processor where tasks are distributed, or "farmed out", by one "farmer" processor to several "worker" processors, and results are sent back to the farmer. This arrangement is suitable for applications which can be partitioned into many separate, independent tasks, the canonical examples being ray tracing and the Mandelbrot set. In order to be efficient, the extra time spent on communications must be small compared to the time spent processing each task.

Last updated: 2001-05-28

Processor System Modeling Language

<language>

(PSML) A language for simulating computer systems designs, implemented as a preprocessor to SIMSCRIPT.

["Processor System Modeling - A Language and Simulation System", F. Pfisterer, Proc Symp on Simulation of Computer Systems, Aug 1976].

Last updated: 2009-05-11

processor time

<software>

The amount of time a process takes to run, given that it has exclusive and uninterrupted use of the CPU. Note that in a modern computer, this would be very unusual, and so the processor time calculation for most processes involves adding up all the small amounts of time the CPU actually spends on the process.

Some systems break processor time down into user time and system time.

Compare wall clock time.

Last updated: 1998-03-13

process scheduling

multitasking

process table

<operating system, process>

A table containing all of the information that must be saved when the CPU switches from running one process to another in a multitasking system.

The information in the process table allows the suspended process to be restarted at a later time as if it had never been stopped. Every process has an entry in the table. These entries are known as process control blocks and contain the following information:

process state - information needed so that the process can be loaded into memory and run, such as the program counter, the stack pointer, and the values of registers.

memory state - details of the memory allocation such as pointers to the various memory areas used by the program

resource state - information regarding the status of files being used by the process such as user ID.

Accounting and scheduling information.

An example of a UNIX process table is shown below.

 SLOT  ST  PID  PGRP  UID  PRI  CPU  EVENT  NAME  FLAGS
  0    s    0     0     0   95   0  runout  sched load sys
  1    s    1     0     0   66   1    u     init  load
  2    s    2     0     0   95   0  10bbdc  vhand load sys

SLOT is the entry number of the process.

ST shows whether the process is paused or sleeping (s), ready to run (r), or running on a CPU (o).

PID is the process ID.

PGRP is the process Group.

UID is the user ID.

PRI is the priority of the process from 127 (highest) to 0 (lowest).

EVENT is the event on which a process is paused or sleeping.

NAME is the name of the process.

FLAGS are the process flags.

A process that has died but still has an entry in the process table is called a zombie process.

Last updated: 1998-04-24

PROCOL

<language>

A parallel object language with protocols, constraints and distributed delegation by J. Van Den Bos of Erasmus University, Rotterdam.

["PROCOL: A Parallel Object Language with Protocols", J. Van Den Bos et al, SIGPLAN Notices 24(10):95-102 (OOPSLA '89), Oct 1989].

Last updated: 1998-03-23

Procomm

<communications, product>

A terminal emulator program, originally from Datastorm Technologies, used for connection to BBSes etc.

Procomm Plus for Windows incorporates automatic modem detection, a custom log-on script generator and sophisticated off-line message managers for CompuServe and MCI Mail. It also has a fax send and receive capability.

Version 2.0 was chosen as the Editors Choice in PC Magazine 1995-03-14.

Procomm Plus is now distributed by Symantec, Inc..

Procomm Home.

Version 2.4.3 1989-01-01.

Current Version: Procomm Plus 4.8, as of 2004-06-29.

Last updated: 2004-06-29

Procrustean string

<programming>

A fixed-length string. If a string value is too long for the allocated space, it is truncated to fit; and if it is shorter, the empty space is padded, usually with space characters.

This is an allusion to Procrustes, a legendary robber of ancient Attica. He bound his victims to a bed, and if they were shorter than the bed, he stretched their limbs until they would fit; if their limbs were longer, he lopped them off.

Last updated: 1997-09-12

Prodigy

<networking>

A commercial on-line conferencing service, co-developed by IBM and Sears, Roebuck, Inc.

Prodigy's main competitors are AOL and Compuserve.

Last updated: 1995-03-01

ProDoc

<documentation>

A set of tools for software documentation from SPC.

Last updated: 2006-10-12

product

<mathematics, programming>

An expression in mathematics or computer programming consisting of two other expressions multiplied together. In mathematics, multiplication is usually represented by juxtaposition, e.g. "x y", whereas in programming, "*" is used as an infix operator, e.g. "salary * tax_rate.

In the most common type of product, each operand is a number (integer, real number, fraction or imaginary number) but the term extends naturally to cover more complex operations like multiplying a string by an integer (e.g., in Perl, "foo" x 2) or multiplying vectors and matrices or more than two operands.

In type systems, a tuple is sometimes known as a "product type".

Last updated: 2006-10-12

production system

<programming>

A production system consists of a collection of productions (rules), a working memory of facts and an algorithm, known as forward chaining, for producing new facts from old. A rule becomes eligible to "fire" when its conditions match some set of elements currently in working memory. A conflict resolution strategy determines which of several eligible rules (the conflict set) fires next. A condition is a list of symbols which represent constants, which must be matched exactly; variables which bind to the thing they match and "<> symbol" which matches a field not equal to symbol.

Example production systems are OPS5, CLIPS, flex.

Last updated: 2005-06-17

Professional Graphics Adapter

<graphics, specification>

(PGA) A computer video display standard produced by IBM for early CAD applications. It had a resolution of 640x400 pixels.

Last updated: 1997-04-25

Professional Office System

<messaging>

(PROFS) An office messaging system from IBM, used worldwide, mainly on IBM mainframes.

Last updated: 1996-03-23

professional programming

paranoid programming

professional services

<job>

A department of a supplier providing consultancy and programming manpower for the supplier's products.

Last updated: 2004-03-09

PROFILE

Simple language for matching and scoring data. "User's Manual for the PROFILE System", Cambridge Computer Assoc (May 1974).

[Jargon File]

profile

1. A control file for a program, especially a text file automatically read from each user's home directory and intended to be easily modified by the user in order to customise the program's behaviour. Used to avoid hard-coded choices (see also dot file, rc file).

2. A report on the amounts of time spent in each routine of a program, used to find and tune away the hot spots in it. This sense is often verbed. Some profiling modes report units other than time (such as call counts) and/or report at granularities other than per-routine, but the idea is similar.

PROFS

Professional Office System

PROGENY

1961. Report generator for UNIVAX SS90.

proglet

/prog'let/ [UK] A short extempore program written to meet an immediate, transient need. Often written in BASIC, rarely more than a dozen lines long and containing no subroutines. The largest amount of code that can be written off the top of one's head, that does not need any editing, and that runs correctly the first time (this amount varies significantly according to one's skill and the language one is using). Compare toy program, noddy, one-liner wars.

[Jargon File]

program

software

Program Composition Notation

(PCN) A specification language for parallelism between C and Fortran modules. PCN provides a simple language for specifying concurrent algorithms, interfaces to Fortran and C, a portable toolkit that allows applications to be developed on a workstation or small parallel computer and run unchanged on supercomputers and integrated debugging and performance analysis tools. PCN was developed at Argonne National Laboratory and the California Institute of Technology. It has been used to develop a wide variety of applications, in areas such as climate modelling, fluid dynamics, computational biology, chemistry, and circuit simulation.

Version 2.0 runs on networks of workstations: Sun-4, NeXT, RS/6000, SGI; multicomputers: iPSC/860, Touchstone DELTA; and shared memory multiprocessors: Symmetry/Dynix.

ftp://info.mcs.anl.gov/pub/pcn.

E-mail: Ian Foster <[email protected]>, Steve Tuecke <[email protected]>.

["Productive Parallel Programming: The PCN Approach", I. Foster et al, Sci Prog 1(1):51-66 (1992)].

Last updated: 1993-02-12

program counter

<hardware>

(PC) A register in the central processing unit that contains the addresss of the next instruction to be executed. After each instruction is fetched, the PC is automatically incremented to point to the following instruction. It is not normally manipulated like an ordinary register but instead, special instructions are provided to alter the flow of control by writing a new value to the PC, e.g. JUMP, CALL, RTS.

IBM call it the Instruction Address Register.

Last updated: 1995-03-21

Program Design Language

Any of a large class of formal and profoundly useless pseudo-languages in which management forces one to design programs. Too often, management expects PDL descriptions to be maintained in parallel with the code, imposing massive overhead of little or no benefit.

See also flow chart.

Last updated: 1995-04-01

Program Evaluation and Review Technique

<programming>

(PERT) A method used to size a software product and calculate the Standard Deviation (SD) for risk assessment. The PERT equation (beta distribution) estimates the Equivalent Delivered Source Instructions (EDSIs) and the SD based on the analyst's estimates of the lowest possible size, the most likely size, and the highest possible size of each computer program component (CPC).

Last updated: 1996-05-29

Program Information File

<file format>

Under Windows, a file providing information on how a non-Windows application program should be run, including how much memory should be allocated to it and what graphics interface it requires.

Filename extension: .pif

Last updated: 1997-10-11

Programmable Airline Reservation System

<application>

(PARS) An IBM proprietary large scale airline reservation application, executing under the control of IBM's ACP (and later its successor, TPF).

In the early days of automated reservations systems in the 1960s and 1970s the combination of ACP and PARS provided unprecendented scale and performance from an on-line real-time system, and for a considerable period ranked among the largest networks and systems of the era.

IPARS was the international version.

Last updated: 1999-01-18

Programmable Array Logic

<hardware>

(PAL) A family of fuse-programmable logic integrated circuits originally developed by MMI. Registered or combinatorial output functions are modelled in a sum of products form. Each output is a sum (logical or) of a fixed number of products (logical and) of the input signals. This structure is well suited for automatic generation of programming patterns by logic compilers.

PAL devices are programmed by blowing the fuses permanently using overvoltage.

Today, more complex devices based on the same original architecture are available (CPLD's for Complex PLD's) that incorporate the equivalent of several original PAL chips. PAL chips are, however, still popular due to their high speed.

Generic Array Logic devices are reprogrammable and contain more logic gates.

Last updated: 1995-12-09

Programmable Interrupt Controller

<integrated circuit>

PIC A special-purpose integrated circuit that functions as an overall manager in an interrupt driven system. It accepts requests from the peripheral equipment, determines which of the incoming requests is of the highest priority, ascertains whether the incoming request has a higher priority value than the level currently being serviced, and issues an interrupt to the CPU based on this determination.

PICs typically have eight interrupt lines, and two PICs are often cascaded to provide 15 available interrupt lines.

See also: Advanced Programmable Interrupt Controller.

Last updated: 2003-03-18

Programmable Logic Controller

<hardware>

(PLC) A device used to automate monitoring and control of industrial plant. Can be used stand-alone or in conjunction with a SCADA or other system.

Last updated: 1997-02-11

Programmable Read-Only Memory

<storage>

(PROM) A kind of ROM which can be written using a PROM programmer. The contents of each bit is determined by a fuse or antifuse. The memory can be programmed once after manufacturing by "blowing" the fuses, which is an irreversible process. Blowing a fuse opens a connection while blowing an antifuse closes a connection (hence the name). Programming is done by applying high-voltage pulses which are not encountered during normal operation.

Last updated: 1995-04-22

Programmed Data Processor

<computer>

(PDP) Early (1960's?) Digital Equipment Corporation family of minicomputers. The best known ranges were the PDP-10 and PDP-11. PAL was the assembly language.

Last updated: 1997-11-21

PROgrammed Graph REwriting Systems

<language>

(PROGRES) A very high level language based on graph grammars, developed by Andy Scheurr <[email protected]> and Albert Zuendorf <[email protected]> of RWTH, Aachen in 1991.

PROGRES supports structurally object-oriented specification of attributed graph structures with multiple inheritance hierarchies and types of types (for parametric polymorphism). It also supports declarative/relational specification of derived attributes, node sets, binary relationships (directed edges) and Boolean constraints, rule-oriented/visual specification of parameterised graph rewrite rules with complex application conditions, nondeterministic and imperative programming of composite graph transformations (with built-in backtracking and cancelling arbitrary sequences of failing graph modifications).

It is used for implementing abstract data types with graph-like internal structure, as a visual language for the graph-oriented database GRAS, and as a rule-oriented language for prototyping nondeterministically specified data/rule base transformations.

PROGRES has a formally defined semantics based on "PROgrammed Graph Rewriting Systems". It is an almost statically typed language which additionally offers "down casting" operators for run time checked type casting/conversion (in order to avoid severe restrictions concerning the language's expressiveness).

Version RWTH 5.10 includes an integrated environment.

[A. Scheurr, "Introduction to PROGRES, an Attribute Graph Grammar Based Specification Language", in Proc WG89 Workshop on Graphtheoretic Concepts in Computer Science", LNCS 411, Springer 1991].

ftp://ftp.informatik.rwth-aachen.de/pub/Unix/PROGRES/ for Sun-4.

Last updated: 1993-11-02

programmer

<job>

(Or "computer programmer", "developer") Someone who writes or debugs computer programs, for a living or for fun. "Analyst/developer" is a common equivalent job title, implying the added role of system analysis. The term may be qualified according to the type of software or programming language - "application programmer", "system programmer", Perl programmer, etc.

A contract programmer usually has a fixed-length contract, unlike a permanent employee.

Last updated: 2000-01-24

Programmer Brain Damage

<humour>

(PBD) A classification of a bug which was obviously introduced by an incompetent or short-sighted programmer.

Compare UBD. See also brain-damaged.

Last updated: 1996-10-13

Programmer's Cheer

<humour>

 "Shift to the left!
 Shift to the right!
 Pop up, push down!
 Byte!  Byte!  Byte!"

[Origin?]

[Jargon File]

Last updated: 1996-10-13

Programmers Hierarchical Interactive Graphics System

(PHIGS) An ANSI/ISO standard. Worked on by the ISO/IEC group JTC1/SC24.

[More detail?]

Last updated: 1995-01-04

PROgrammer's Microapplication Language

<language>

(PROMAL) An interpreted C-like language from Systems Management Associates for MS-DOS, Commodore 64, and Apple II.

[Computer Language, Mar 1986, pp. 128-134].

Last updated: 1996-03-21

Programmer's Switch

<hardware>

A button on the front of some Apple Macintosh computers which, when pressed, causes a command line prompt to appear. This gives access to the built-in mini-debugger, which has commands to dump memory, return to the application that was broken out, and others. A more sophisticated debugger must be installed in order to inspect breakpoints, etc.

Last updated: 2000-11-01

programming

1. The art of debugging a blank sheet of paper (or, in these days of on-line editing, the art of debugging an empty file).

2. A pastime similar to banging one's head against a wall, but with fewer opportunities for reward.

3. The most fun you can have with your clothes on (although clothes are not mandatory).

[Jargon File]

Last updated: 2003-02-12

programming fluid

<jargon>

(Or "wirewater") Coffee, unleaded coffee (decaffeinated), Cola, or any caffeinacious stimulant. Many hackers consider these essential for those all-night hacking runs.

Last updated: 1996-05-01

programming language

<language>

A formal language in which computer programs are written. The definition of a particular language consists of both syntax (how the various symbols of the language may be combined) and semantics (the meaning of the language constructs).

Languages are classified as low level if they are close to machine code and high level if each language statement corresponds to many machine code instructions (though this could also apply to a low level language with extensive use of macros, in which case it would be debatable whether it still counted as low level). A roughly parallel classification is the description as first generation language through to fifth generation language.

The other major classification of languages distinguishes between imperative languages, procedural language and declarative languages.

Programming languages in this dictionary.

Programming languages time-line/family tree.

Last updated: 2004-05-17

Programming Language/Cornell

<language>

(PL/C) A large subset of PL/I from Cornell University, aimed at novice programmers.

["Introduction to PL/1 and PL/C programming", Kochenburger, Ralph J., Santa Barbara, Hamilton, c1974].

["User's Guide to PL/C", S. Worona et al, Cornell, June 1974].

["PL/C - A High Performance Compiler" H.L. Morgan et al, Proc SJCC, AFIPS 38:503-510 (1971)].

Last updated: 1999-05-26

Programming Language/Systems

<language>

(PL/S) An IBM machine-oriented language derived from PL/I, in the late 1960s, for the IBM 360 and IBM 370. PL/S permitted inline assembly language and control over register usage.

Previous IBM 360 operating systems such as OS/MFT and OS/MVT had been written entirely in assembly language. The first IBM OS that had any significant portion written in PL/S was MVS, followed by OS/VS1, OS/VS2 and OS/SVS.

PL/S was part of IBM's OCO (object code only) effort, started in 1983. PL/S was used internally and never released to the public. It is documented in various IBM internal ZZ-? publications.

Versions: PLS1, PLSII.

["PL/S, Programming Language/Systems", W.R. Brittenham, Proc GUIDE Intl, GUIDE 34, May 14, 1972, pp. 540-556].

Last updated: 2012-01-20

Program Temporary Fix

<programming>

(PTF) (Colloquially: Probably This Fixes) An IBM sanctioned patch, often implemented using ZAP or SUPERZAP.

Last updated: 1998-07-08

program transformation

The systematic development of efficient programs from high-level specifications by meaning-preserving program manipulations. Also known as optimisation. See fusion, loop combination, peephole optimisation, register allocation, tupling, unfold/fold.

Prograph

<language>

A visual dataflow programming language and environment from the Technical University of Halifax.

Prograph is an entirely graphical visual programming language, other than for the text of method names, and supports the program development process in a highly-interactive fashion. Operation icons are connected by data links through which information flows. It supports object orientation via class-based data abstraction with single inheritance.

Prograph is available for the Macintosh, and soon for Windows and Unix, from TGS Systems.

Last updated: 1995-03-31

PROGRES

<language>

PROgrammed Graph REwriting Systems.

progressive coding

<graphics, file format, algorithm>

(Or "interlacing") An aspect of a graphics storage format or transmission algorithm that treats bitmap image data non-sequentially in such a way that later data adds progressively greater resolution to an already full-size image. This contrasts with sequential coding.

Progressive coding is useful when an image is being sent across a slow communications channel, such as the Internet, as the low-resolution image may be sufficient to allow the user to decide not to wait for the rest of the file to be received.

In an interlaced GIF89 image, the pixels in a row are stored sequentially but the rows are stored in interlaced order, e.g. 0, 8, 4, 12, 2, 6, 8, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15. Each vertical scan adds rows in the middle of the gaps left by the previous one.

PNG interlaces both horizontally and vertically using the "Adam7" method, a seven pass process named after Adam M. Costello.

Interlacing is also supported by other formats. JPEG supports a functionally similar concept known as Progressive JPEG. [How does the algorithm differ?]

JBIG uses progressive coding.

See also progressive/sequential coding.

["Progressive Bi-level Image Compression, Revision 4.1", ISO/IEC JTC1/SC2/WG9, CD 11544, 1991-09-16].

Last updated: 2000-09-12

Progressive JPEG

<graphics, file format>

(PJPEG) An implementation of JPEG that supports progressive coding.

[Standards documents?]

Last updated: 1998-02-10

progressive/sequential coding

<compression, algorithm>

The kind of image compression algorithm used in JBIG where an image coded using progressive coding can be decoded sequentially, and vice versa.

Last updated: 1995-03-01

PROJECT

Subsystem of ICES. Sammet 1969, p.616.

project assurance

The process of specifying the support system: techniques, internal standards, measurements, tools, and training for a project; counselling the project team in the application of these elements and monitoring the adherence to the standards.

Project Athena

<project>

A distributed system project for support of educational and research computing at MIT. Much of the software developed is now in wider use, especially the X Window System.

Last updated: 2000-02-24

Project Guardian

<project, security>

A project which grew out of the ARPA support for Multics and the sale of Multics systems to the US Air Force. The USAF wanted a system that could be used to handle more than one security classification of data at a time. They contracted with Honeywell and MITRE Corporation to figure out how to do this. Project Guardian led to the creation of the Access Isolation Mechanism, the forerunner of the B2 labeling and star property support in Multics. The DoD Orange Book was influenced by the experience in building secure systems gained in Project Guardian.

Last updated: 1997-01-29

projection

<theory>

In domain theory, a function, f, which is (a) idempotent, i.e. f(f(x))=f(x) and (b) whose result is no more defined than its argument. E.g. F(x)=bottom or F(x)=x.

In reduction systems, a function which returns some component of its argument. E.g. head, tail, \ (x,y) . x. In a graph reduction system the function can just return a pointer to part of its argument and does not need to build any new graph.

Last updated: 1997-01-29

projective plane

<mathematics>

The space of equivalence classes of vectors under non-zero scalar multiplication. Elements are sets of the form

 {kv: k != 0, k scalar, v != O, v a vector}

where O is the origin. v is a representative member of this equivalence class.

The projective plane of a vector space is the collection of its 1-dimensional subspaces. The properties of the vector space induce a topology and notions of smoothness on the projective plane.

A projective plane is in no meaningful sense a plane and would therefore be (but isn't) better described as a "projective space".

Last updated: 1996-09-28

Project MAC

<project>

A project suggested by J C R Licklider; its founding director was MIT Prof. Robert M Fano. MAC stood for Multiple Access Computers on the 5th floor of Tech Square, and Man and Computer on the 9th floor. The major efforts were Corbato's Multics development and Marvin Minsky's Artificial Intelligence Laboratory. In 1963 Project MAC hosted a summer study, which brought many well-known computer scientists to Cambridge to use CTSS and to discuss the future of computing.

Funding for Project MAC was provided by the Information Processing Techniques Office of the Advanced Research Projects Agency (ARPA) of the US Department of Defense.

See also Early PL/I, MacLisp, MACSYMA, MDL, Multipop-68, OCAL.

Last updated: 1997-01-29

project management

<project, job>

The process of planning, organising, staffing, directing and controlling the production of a system. Software tools are available to help with this, e.g. PERT chart editors.

Last updated: 1998-12-12

project planning

project management

Prolog

<programming>

Programming in Logic or (French) Programmation en Logique. The first of the huge family of logic programming languages.

Prolog was invented by Alain Colmerauer and Phillipe Roussel at the University of Aix-Marseille in 1971. It was first implemented 1972 in ALGOL-W. It was designed originally for natural-language processing but has become one of the most widely used languages for artificial intelligence.

It is based on LUSH (or SLD) resolution theorem proving and unification. The first versions had no user-defined functions and no control structure other than the built-in depth-first search with backtracking. Early collaboration between Marseille and Robert Kowalski at University of Edinburgh continued until about 1975.

Early implementations included C-Prolog, ESLPDPRO, Frolic, LM-Prolog, Open Prolog, SB-Prolog, UPMAIL Tricia Prolog. In 1998, the most common Prologs in use are Quintus Prolog, SICSTUS Prolog, LPA Prolog, SWI Prolog, AMZI Prolog, SNI Prolog.

ISO draft standard at Darmstadt, Germany. or UGA, USA.

See also negation by failure, Kamin's interpreters, Paradigms of AI Programming, Aditi.

A Prolog interpreter in Scheme. ftp://cpsc.ucalgary.ca/pub/prolog1.1.

A Prolog package from the University of Calgary features delayed goals and interval arithmetic. It requires Scheme with continuations.

["Programming in Prolog", W.F. Clocksin & C.S. Mellish, Springer, 1985].

Last updated: 2001-04-01

Prolog++

(After C++) Prolog with object-oriented features added by Phil Vasey of Logic Programming Associates. Prolog++ is available for MS-DOS and the X Window System. It is distributed by AI International Ltd. in England and by Quintus.

Prolog-2

An implementation of Edinburgh Prolog by Nick Henfrey, ESL.

["An Advanced Logic Programming Language", Anthony Dodd].

Prolog-D-Linda

Embeds the Linda parallel paradigm into SISCtus Prolog.

ftp://ftp.cs.uwa.au/. E-mail: <[email protected]>.

Prolog-II

Prolog with two new predicates: "dif" for coroutines and "freeze" for delayed evaluation.

Available from ExperIntelligence, Santa Barbara CA.

["Prolog II Reference Manual and Theoretical Model", A. Colmerauer, Internal Report, GroupeIA, U Aix-Marseille (Oct 1982)].

Prolog-III

A. Colmerauer, U Aix-Marseille, ca 1984. Marseille Prolog, with unification replaced by constraint resolution. [deferred goals too?] (Not to be confused with Prolog 3, a commercial product?)

Version 1.2 for MS-DOS.

["Opening the Prolog-III Universe", BYTE 12(9):177-182 (Aug 1987)].

["An Introduction to Prolog III", A. Colmerauer, CACM 33(7):69-90 (1990)].

Prolog-Linda

1. Prolog extended with Linda-style parallelism. Proc 4th Australian Conf on Artif Intell.

ftp://bison.cs.uwa.oz.au/.

2. Neil MacDonald, U Edinburgh 1989. Another Prolog extended with Linda, implemented on a Computing Surface.

Prolog/Mali

<language>

(PM) Lambda-Prolog for the MALI-V06 abstract memory system, developed by Pascal Brisset at IRISA, France. There is a compiler which compiles to C, a linker, libraries, run-time system, and documentation. It runs under Unix.

ftp://ftp.irisa.fr/pm/.

Mailing list: [email protected]. E-mail: <[email protected]>.

Last updated: 1992-07-06

PROM

Programmable Read-Only Memory

PROMAL

PROgrammer's Microapplication Language

Prometheus

<language>

A programmaing language geared for logic, mathematics, AI, and string, list and database processing. Prometheus runs on a variety of platforms from Macintosh to MS-DOS

http://aard.tracor.com/Jason/Prometheus/.

Last updated: 1996-03-04

promiscuous mode

<networking>

Where a node on a network accepts all packets, regardless of their destination address.

Last updated: 1996-03-04

PROM monitor

<operating system>

a small program stored in PROM (or ROM), responsible for both loading the OS and providing some means to analyse OS crashes. It may also have some sort of user interface which can be used to examine and change the contents of memory, control the boot process (specifying arguments to the kernel, or changing where to look for the it), and so forth.

The main difference between a PROM monitor and a bootstrap loader is that the PROM monitor regains control when the OS terminates. This may enable a wizard to find out what went wrong if the OS crashed, although it is usually of little help for the average sysadmin.

Last updated: 1996-12-03

pron

<jargon>

(Or "pr0n") B1FF-speak for pornography. Often seen on IRC in such desperate cries for help as "I WNAT PRON!!!!!"

Last updated: 1997-09-14

Pronet

<language>

["The Design of a Programming Language Based on Connectivity Networks", R. LeBlanc et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp. 532-541].

Last updated: 1997-09-14

Pronunciation

In this dictionary slashes (/../) bracket phonetic pronunciations of words not found in a standard English dictionary. The notation, and many of the pronunciations, were adapted from the Hacker's Jargon File.

Syllables are separated by dash or followed single quote or back quote. Single quote means the preceding syllable is stressed (louder), back quote follows a syllable with intermediate stress (slightly louder), otherwise all syllables are equally stressed.

Consonants are pronounced as in English but note:

 ch	soft, as in "church"
 g	hard, as in "got"
 gh	aspirated g+h of "bughouse" or "ragheap"
 j	voiced, as in "judge"
 kh	guttural of "loch" or "l'chaim"
 s	unvoiced, as in "pass"
 zh	as "s" in "pleasure"

Uppercase letters are pronounced as their English letter names; thus (for example) /H-L-L/ is equivalent to /aych el el/. /Z/ is pronounced /zee/ in the US and /zed/ in the UK (elsewhere?).

Vowels are represented as follows:

 a	back, that
 ah	father, palm (see note)
 ar	far, mark
 aw	flaw, caught
 ay	bake, rain
 e	less, men
 ee	easy, ski
 eir	their, software
 i	trip, hit
 i:	life, sky
 o	block, stock (see note)
 oh	flow, sew
 oo	loot, through
 or	more, door
 ow	out, how
 oy	boy, coin
 uh	but, some
 u	put, foot
 *r      fur, insert (only in stressed
 	syllables; otherwise use just "r")
 y	yet, young
 yoo	few, chew
 [y]oo	/oo/ with optional fronting as
 	in `news' (/nooz/ or /nyooz/)

A /*/ is used for the `schwa' sound of unstressed or occluded vowels (often written with an upside-down `e'). The schwa vowel is omitted in unstressed syllables containing vocalic l, m, n or r; that is, "kitten" and "colour" would be rendered /kit'n/ and /kuhl'r/, not /kit'*n/ and /kuhl'*r/.

The above table reflects mainly distinctions found in standard American English (that is, the neutral dialect spoken by TV network announcers and typical of educated speech in the Upper Midwest, Chicago, Minneapolis/St.Paul and Philadelphia). However, we separate /o/ from /ah/, which tend to merge in standard American. This may help readers accustomed to accents resembling British Received Pronunciation.

Entries with a pronunciation of `//' are written-only.

Last updated: 1997-12-10

proof

<logic>

1. A finite sequence of well-formed formulas, F1, F2, ... Fn, where each Fi either is an axiom, or follows by some rule of inference from some of the previous F's, and Fn is the statement being proved.

See also proof theory.

2. A left-associative natural language parser by Craig R. Latta <[email protected]>. Ported to Decstation 3100, Sun-4.

ftp://scam.berkeley.edu/pub/src/local/proof/.

E-mail: <[email protected]>. Mailing list: [email protected] (Subject: add me).

Last updated: 1994-11-29

PROOF/L

A functional, object-oriented language with implicit parallelism.

[J Parallel Dist Comp 12:202-212 (1991)].

[Forthcoming Technical Report from RADC].

Last updated: 1994-10-31

proof theory

<logic>

The branch of logic describing procedures for combining logical statements to show, by a series of truth-preserving transformations, that one statement is a consequence of some other statement or group of statements.

Last updated: 1994-10-31

propeller head

<jargon>

Used by hackers, this is synonym with computer geek. Non-hackers sometimes use it to describe all techies. Probably derives from SF fandom's tradition (originally invented by old-time fan Ray Faraday Nelson) of propeller beanies as fannish insignia (though nobody actually wears them except as a joke).

[Jargon File]

Last updated: 1995-01-18

propeller key

feature key

proportionally spaced font

proportional font

Proposal Writing

Extension of Fortran for proposal writing.

[Sammet 1969, p. 170].

Last updated: 1995-01-18

proposition

<logic>

A statement in propositional logic which may be either true or false. Each proposition is typically represented by a letter in a formula such as "p => q", meaning proposition p implies proposition q.

Last updated: 2006-03-14

propositional calculus

propositional logic

propositional logic

<logic>

(or "propositional calculus") A system of symbolic logic using symbols to stand for whole propositions and logical connectives. Propositional logic only considers whether a proposition is true or false. In contrast to predicate logic, it does not consider the internal structure of propositions.

Last updated: 2002-05-21

Proposition of a Language Useable for Structured Specifications

<language>

(PLUSS) An algebraic specification language, built on top of ASL.

["A First Introduction to PLUSS", M.C. Gaudel, TR, U Paris Sud, Orsay 1984].

Last updated: 2006-03-14

proprietary

1. In marketroid-speak, superior; implies a product imbued with exclusive magic by the unmatched brilliance of the company's own hardware or software designers.

2. In the language of hackers and users, inferior; implies a product not conforming to open-systems standards, and thus one that puts the customer at the mercy of a vendor who can inflate service and upgrade charges after the initial sale has locked the customer in.

[Jargon File]

PROSE

1. PROblem Solution Engineering. Numerical problems including differentiation and integration. "Computing in Calculus", J. Thames, Research/Development 26(5) (May 1975).

2. A constraints-and-sequencing system similar to Kaleidoscope. "Reflexive Constraints for Dynamic Knowledge Bases", P. Berlandier et al in Proc First Intl CS Conf '88: AI: Theory and Appls, Dec 1988.

ProSet

A derivative of SETL with Ada-like syntax developed at the University of Essen in 1990. Formerly known as SETL/E.

["SETL/E, A Prototyping System Based on Sets", E.E. Doberkat et al, in Tagungsband TOOL90, W. Zorn ed, pp. 109-118, U Karlsruhe, Nov 1990].

["ProSet - A Language for Prototyping with Sets", E.-E. Doberkat et al, in Proc Third Intl Workshop on Rapid System Prototyping, N. Kanopoulos ed, IEEE Comp Soc Press, June 1992, pp. 235-248].

PROSPER

["PROSPER: A Language for Specification by Prototyping", J. Leszczylowski, Comp Langs 14(3):165-180 (1989)].

Prospero

A tool for organising Internet resources. Prospero allows each user to organise the contents of remote file servers into his own virtual file system with his own hierarchical name space consisting of links to remote objects. Remote indexing services are made available by treating the results as a virtual directory. A "union link" allows the contents of the link's target directory to appear as part of the directory containing the link. Arbitrary filters can be associated with links to modify the representation of the target directory as desired. Prospero directories can be shared between users. The Prospero protocol is used for communication between clients and servers in the archie system.

A prototype of Prospero has been available since December 1990. It interfaces with Sun NFS, the Andrew File System and FTP (with local caching) and Archie. Support for web and WAIS is planned (1992).

E-mail: <[email protected]>. ftp://prospero.isi.edu/pub/prospero.

ProTalk

Quintus. An object-oriented Prolog.

protected mode

An operating mode of Intel 80x86 processors. The opposite of real mode. The Intel 8088, Intel 8086, Intel 80188 and Intel 80186 had only real mode, processors beginning with the Intel 80286 feature a second mode called protected mode.

In real mode, addresses are generated by adding an address offset to the value of a segment register shifted left four bits. As the segment register and address offset are 16 bits long this results in a 20-bit address. This is the origin of the one megabyte (2^20) limit in real mode.

There are 4 segment registers on processors before the Intel 80386. The 80386 introduced two more segment registers. Which segment register is used depends on the instruction, on the addressing mode and of an optional instruction prefix which selects the segment register explicitly.

In protected mode, the segment registers contain an index into a table of segment descriptors. Each segment descriptor contains the start address of the segment, to which the offset is added to generate the address. In addition, the segment descriptor contains memory protection information. This includes an offset limit and bits for write and read permission. This allows the processor to prevent memory accesses to certain data. The operating system can use this to protect different processes' memory from each other, hence the name "protected mode".

While the standard register set belongs to the CPU, the segment registers lie "at the boundary" between the CPU and MMU. Each time a new value is loaded into a segment register while in protected mode, the corresponding descriptor is loaded into a descriptor cache in the (Segment-)MMU. On processors before the Pentium this takes longer than just loading the segment register in real mode. Addresses generated by the CPU (which are segment offsets) are passed to the MMU to be checked against the limit in the segment descriptor and are there added to the segment base address in the descriptor to form a linear address.

On a 80386 or later, the linear address is further processed by the paged MMU before the result (the physical address) appears on the chip's address pins. The 80286 doesn't have a paged MMU so the linear address is output directly as the physical address.

The paged MMU allows for arbitrary remapping of four klilobyte memory blocks (pages) through a translation table stored in memory. A few entries of this table are cached in the MMU's Translation Lookaside Buffer to avoid excessive memory accesses.

After processor reset, all processors start in real mode. Protected mode has to be enabled by software. On the 80286 there exists no documented way back to real mode apart from resetting the processor. Later processors allow switching back to real mode by software.

Software which has been written or compiled to run in protected mode must only use segment register values given to it by the operating system. Unfortunately, most application code for MS-DOS, written before the 286, will fail in protected mode because it assumes real mode addressing and writes arbitrary values to segment registers, e.g. in order to perform address calculations.

Such use of segment registers is only really necessary with data structures that are larger than 64 kilobytes and thus don't fit into a single segment. This is usually dealt with by the huge memory model in compilers. In this model, compilers generate address arithmetic involving segment registers. A solution which is portable to protected mode with almost the same efficiency would involve using a table of segments instead of calculating new segment register values ad hoc.

To ease the transition to protected mode, Intel 80386 and later processors provide "virtual 86 mode".

Last updated: 1995-03-29

PROTEUS

An extensible language, the core of PARSEC.

["The Design of a Minimal Expandable Computer Language", J.R. Bell, PhD Thesis, CS, Stanford University (Dec 1968)].

protocal

<spelling>

It's spelled "protocol".

protocol

A set of formal rules describing how to transmit data, especially across a network. Low level protocols define the electrical and physical standards to be observed, bit- and byte-ordering and the transmission and error detection and correction of the bit stream. High level protocols deal with the data formatting, including the syntax of messages, the terminal to computer dialogue, character sets, sequencing of messages etc.

Many protocols are defined by RFCs or by OSI.

See also handshaking.

[Jargon File]

Last updated: 1995-01-12

protocol analyser

<communications, hardware, networking, testing, tool>

Any device that captures and interprets the network traffic between two or more connected computer systems. The traffic can then be decoded so that it is possible to see what processes are occurring.

By examining the flow of traffic, protocol analysers can be used to find out where problems (such as bottlenecks or the failure of a network device) are on a LAN.

Advanced protocol analysers can also provide statistics on the traffic that can help to identify trends that may in future lead to further problems with the network.

Last updated: 2000-07-24

protocol converter

<networking>

A device or program to translate between different protocols which serve similar functions (e.g. TCP and TP4).

Some call this a "gateway", though others use that term for other kinds of internetworking device.

Last updated: 1996-03-07

Protocol Data Unit

(PDU) A packet of data passed across a network. The term implies a specific layer of the OSI seven layer model and a specific protocol.

Last updated: 1994-10-13

protocol layer

<networking>

The software and/or hardware environment of two or more communications devices or computers in which a particular network protocol operates. A network connection may be thought of as a set of more or less independent protocols, each in a different layer or level. The lowest layer governs direct host-to-host communication between the hardware at different hosts; the highest consists of user application programs. Each layer uses the layer beneath it and provides a service for the layer above. Each networking component hardware or software on one host uses protocols appropriate to its layer to communicate with the corresponding component (its "peer") on another host. Such layered protocols are sometimes known as peer-to-peer protocols.

The advantages of layered protocols is that the methods of passing information from one layer to another are specified clearly as part of the protocol suite, and changes within a protocol layer are prevented from affecting the other layers. This greatly simplifies the task of designing and maintaining communication systems.

Examples of layered protocols are TCP/IP's five layer protocol stack and the OSI seven layer model.

Last updated: 1997-05-05

protocol stack

<protocol>

A layered set of protocols which work together to provide a set of network functions. Each intermediate protocol layer uses the layer below it to provide a service to the layer above.

The OSI seven layer model is an attempt to provide a standard framework within which to describe protocol stacks.

Last updated: 1997-12-07

protoduction

<jargon>

A prototype that ends up in a production environment.

[chris-pebble, Dodgy Coder]

Last updated: 2014-09-21

PROTON

1. A home computer made by Acorn Computers under a contract won from the BBC in April 1981.

[Details?]

2. Something to do with Microsoft SoftLib?

Last updated: 1994-11-28

Protosynthex

A query system for English text.

[Sammet 1969, p. 669].

prototype

<systems>

1. An early version of a product, designed to demonstrate feasability and elicit feedback. A prototype usually has some subset of the functions, behaviour and appearance of the finished product. It is usually made using a method suitable for producing a one-off rather than mass production.

<programming>

2. In prototype-based programming, an object that is intended to be cloned to create similar objects which may then be modified independently and/or cloned themselves.

Last updated: 2010-03-02

Prototyper

An interface builder for the Macintosh from Smethers Barnes.

Last updated: 1994-11-28

prototyping

The creation of a model and the simulation of all aspects of a product. CASE tools support different degrees of prototyping. Some offer the end-user the ability to review all aspects of the user interface and the structure of documentation and reports before code is generated.

provably difficult

The set or property of problems for which it can be proven that no polynomial-time algorithm exists, only exponential-time algorithms.

provably unsolvable

The set or property of problems for which no algorithm at all exists. E.g. the Halting Problem. See also provably difficult.

provider

Internet Access Provider

provocative maintenance

[Common ironic mutation of "preventive maintenance"] Actions performed upon a machine at regularly scheduled intervals to ensure that the system remains in a usable state. So called because it is all too often performed by a field servoid who doesn't know what he is doing; such "maintenance" often *induces* problems, or otherwise results in the machine's remaining in an *un*usable state for an indeterminate amount of time. See also scratch monkey.

[Jargon File]

prowler

(Unix) A daemon that is run periodically (typically once a week) to seek out and erase core files, truncate administrative logfiles, nuke "lost+found" directories, and otherwise clean up the cruft that tends to pile up in the corners of a file system.

See also GFR, reaper, skulker.

Last updated: 1995-02-14

proxy

<networking>

A process that accepts requests for some service and passes them on to the real server. A proxy may run on dedicated hardware or may be purely software. It may transform the request in some way or provide some additional layer of functionality such as caching or remote access. A proxy may be intended to increase security, e.g. a web proxy that allows multiple clients inside an organisation to access the Internet through a single secure, shared connection.

Last updated: 2007-09-03

proxy ARP

<networking>

The technique in which one host, usually a router, answers Address Resolution Protocol (ARP) requests intended for another machine. By "faking" its identity, the router accepts responsibility for routing packets to the "real" destination. Proxy ARP allows a site to use a single IP address with two physical networks. Subnetting would normally be a better solution.

Last updated: 2007-09-03

proxy gateway

proxy server

Proxy Server

<software, security>

(Capitalised) Microsoft's proxy server and proxy gateway, designed to provide extensible firewall and network security. Proxy Server is part of BackOffice.

Last updated: 1999-09-17

proxy server

<networking>

A server process that intercepts requests from a client, passes them to an origin server and returns the response to the client while performing various other operations in the process. An HTTP proxy server is a common example.

A proxy may be used for purposes of security, performance (caching) or anonymity. It may be purely software or may run on its own hardware, either a standard PC or server machine or a custom hardware appliance. A software proxy may be on the same computer as the client or the origin server, separate hardware may be anywhere on the network in between.

The proxy may filter requests, rejecting some if the request or response matches certain conditions (e.g. an antivirus proxy). It may cache requests and responses to reduce load on the origin server or data volume on the network or to provide quicker response to the client for common requests. The proxy may modify the request or response, e.g. to convert between different protocols or interfaces.

Proxy servers are often used in large companies as part of a firewall so that users within the company need have no direct connection to the Internet (and can use a private IP address range) but can still access the web, instant messenger, etc via the proxy. Usually this requires each client to be configured to use the proxy.

The term "proxy gateway" may more imply transparency (less intervention) in the request-response process, though is often used as a synonym for proxy server.

Last updated: 2008-07-01

Nearby terms:

PRMLprobabilisticprobabilistic automatonProbability of Failure on Demand

Try this search on Wikipedia, Wiktionary, Google, OneLook.



Loading