classes ::: Language, class, noun,
children :::
branches ::: grammer

bookmarks: Instances - Definitions - Quotes - Chapters - Wordnet - Webgen


object:grammer
class:Language
class:class
word class:noun

NOTES

[captialize]
  To capitalize is to acknowledge divine status except perhaps in Subjects and many persons names for now.

[predicate]
  the part of a sentence or clause containing a verb and stating something about the subject
  (e.g., went home in John went home ).

[subject]
  the subject is the part of a sentence or clause that commonly indicates
  (a) what it is about, or
  (b) who or what performs the action (that is, the agent). ...
  In a declarative sentence, the subject usually appears before the verb ("The dog barks").

[clause]
  1. a unit of grammatical organization next below the sentence in rank and
  in traditional grammar said to consist of a subject and predicate.
  2. a particular and separate article, stipulation, or proviso in a treaty, bill, or contract.

[sentence]
  1. a set of words that is complete in itself, typically containing
  a subject and predicate, conveying a statement, question, exclamation, or command,
  and consisting of a main clause and sometimes one or more subordinate clauses.
  In non-functional linguistics, a sentence is a textual unit consisting of one or more words that are grammatically linked.
  In functional linguistics, a sentence is a unit of written texts delimited by graphological features such as upper case letters and markers such as periods, question marks, and exclamation marks.


see also :::

questions, comments, suggestions/feedback, take-down requests, contribute, etc
contact me @ integralyogin@gmail.com or
join the integral discord server (chatrooms)
if the page you visited was empty, it may be noted and I will try to fill it out. cheers



now begins generated list of local instances, definitions, quotes, instances in chapters, wordnet info if available and instances among weblinks


OBJECT INSTANCES [20] - TOPICS - AUTHORS - BOOKS - CHAPTERS - CLASSES - SEE ALSO - SIMILAR TITLES

TOPICS
adjective
adverbs
bigram
conjunction
determiner
determiner
exclamations
Interrogative
NLTK
nouns
participle
predeterminer
preposition
pronoun
qualifier
Question
root
strings
the_Tarot
trigram
verbs
SEE ALSO


AUTH

BOOKS

IN CHAPTERS TITLE

IN CHAPTERS CLASSNAME

IN CHAPTERS TEXT
2.02_-_Habit_2__Begin_with_the_End_in_Mind
2.05_-_Habit_3__Put_First_Things_First

PRIMARY CLASS

class
Language
SIMILAR TITLES
grammer
The Bipolar Lisp Programmer

DEFINITIONS


TERMS STARTING WITH


TERMS ANYWHERE

ABC 1. "computer" {Atanasoff-Berry Computer}. 2. "language" An {imperative language} and programming environment from {CWI}, Netherlands. It is interactive, structured, high-level, and easy to learn and use. It is a general-purpose language which you might use instead of {BASIC}, {Pascal} or {AWK}. It is not a systems-programming language but is good for teaching or prototyping. ABC has only five data types that can easily be combined; {strong typing}, yet without declarations; data limited only by memory; refinements to support top-down programming; nesting by indentation. Programs are typically around a quarter the size of the equivalent {Pascal} or {C} program, and more readable. ABC includes a programming environment with {syntax-directed} editing, {suggestions}, {persistent variables} and multiple workspaces and {infinite precision} arithmetic. An example function words to collect the set of all words in a document:  HOW TO RETURN words document:   PUT {} IN collection   FOR line in document:     FOR word IN split line:       IF word not.in collection:        INSERT word IN collection   RETURN collection {Interpreter}/{compiler}, version 1.04.01, by Leo Geurts, Lambert Meertens, Steven Pemberton "Steven.Pemberton@cwi.nl". ABC has been ported to {Unix}, {MS-DOS}, {Atari}, {Macintosh}. {(http://cwi.nl/cwi/projects/abc.html)}. {FTP eu.net (ftp://ftp.eu.net/programming/languages/abc)}, {FTP nluug.nl (ftp://ftp.nluug.nl/programming/languages/abc)}, {FTP uunet (ftp://ftp.uu.net/languages/abc)}. Mailing list: "abc-list-request@cwi.nl". E-mail: "abc@cwi.nl". ["The ABC Programmer's Handbook" by Leo Geurts, Lambert Meertens and Steven Pemberton, published by Prentice-Hall (ISBN 0-13-000027-2)]. ["An Alternative Simple Language and Environment for PCs" by Steven Pemberton, IEEE Software, Vol. 4, No. 1, January 1987, pp. 56-64.] (1995-02-09) 2. "language" Argument, Basic value, C?. An {abstract machine} for implementation of {functional languages} and its intermediate code. [P. Koopman, "Functional Programs as Executable Specifications", 1990]. (1995-02-09)

ABC ::: 1. (computer) Atanasoff-Berry Computer.2. (language) An imperative language and programming environment from CWI, Netherlands. It is interactive, structured, high-level, and easy to learn Pascal or AWK. It is not a systems-programming language but is good for teaching or prototyping.ABC has only five data types that can easily be combined; strong typing, yet without declarations; data limited only by memory; refinements to support top-down programming; nesting by indentation. Programs are typically around a quarter the size of the equivalent Pascal or C program, and more readable.ABC includes a programming environment with syntax-directed editing, suggestions, persistent variables and multiple workspaces and infinite precision arithmetic.An example function words to collect the set of all words in a document: HOW TO RETURN words document:PUT {} IN collection ABC has been ported to Unix, MS-DOS, Atari, Macintosh. . , , .Mailing list: .E-mail: .[The ABC Programmer's Handbook by Leo Geurts, Lambert Meertens and Steven Pemberton, published by Prentice-Hall (ISBN 0-13-000027-2)].[An Alternative Simple Language and Environment for PCs by Steven Pemberton, IEEE Software, Vol. 4, No. 1, January 1987, pp. 56-64.] (1995-02-09)2. (language) Argument, Basic value, C?.An abstract machine for implementation of functional languages and its intermediate code.[P. Koopman, Functional Programs as Executable Specifications, 1990]. (1995-02-09)

Ada "language" (After {Ada Lovelace}) A {Pascal}-descended language, designed by Jean Ichbiah's team at {CII Honeywell} in 1979, made mandatory for Department of Defense software projects by the Pentagon. The original language was standardised as "Ada 83", the latest is "{Ada 95}". Ada is a large, complex, {block-structured} language aimed primarily at {embedded} applications. It has facilities for {real-time} response, {concurrency}, hardware access and reliable run-time error handling. In support of large-scale {software engineering}, it emphasises {strong typing}, {data abstraction} and {encapsulation}. The type system uses {name equivalence} and includes both {subtypes} and {derived types}. Both fixed and {floating-point} numerical types are supported. {Control flow} is fully bracketed: if-then-elsif-end if, case-is-when-end case, loop-exit-end loop, goto. Subprogram parameters are in, out, or inout. Variables imported from other packages may be hidden or directly visible. Operators may be {overloaded} and so may {enumeration} literals. There are user-defined {exceptions} and {exception handlers}. An Ada program consists of a set of packages encapsulating data objects and their related operations. A package has a separately compilable body and interface. Ada permits {generic packages} and subroutines, possibly parametrised. Ada support {single inheritance}, using "tagged types" which are types that can be extended via {inheritance}. Ada programming places a heavy emphasis on {multitasking}. Tasks are synchronised by the {rendezvous}, in which a task waits for one of its subroutines to be executed by another. The conditional entry makes it possible for a task to test whether an entry is ready. The selective wait waits for either of two entries or waits for a limited time. Ada is often criticised, especially for its size and complexity, and this is attributed to its having been designed by committee. In fact, both Ada 83 and Ada 95 were designed by small design teams to be internally consistent and tightly integrated. By contrast, two possible competitors, {Fortran 90} and {C++} have both become products designed by large and disparate volunteer committees. See also {Ada/Ed}, {Toy/Ada}. {Home of the Brave Ada Programmers (http://lglwww.epfl.ch/Ada/)}. {Ada FAQs (http://lglwww.epfl.ch/Ada/FAQ/)} (hypertext), {text only (ftp://lglftp.epfl.ch/pub/Ada/FAQ)}. {(http://wuarchive.wustl.edu/languages/ada/)}, {(ftp://ajpo.sei.cmu.edu/)}, {(ftp://stars.rosslyn.unisys.com/pub/ACE_8.0)}. E-mail: "adainfo@ajpo.sei.cmu.edu". {Usenet} newsgroup: {news:comp.lang.ada}. {An Ada grammar (ftp://primost.cs.wisc.edu/)} including a lex scanner and yacc parser is available. E-mail: "masticol@dumas.rutgers.edu". {Another yacc grammar and parser for Ada by Herman Fischer (ftp://wsmr-simtel20.army.mil/PD2:"ADA.EXTERNAL-TOOLS"GRAM2.SRC)}. An {LR parser} and {pretty-printer} for {Ada} from NASA is available from the {Ada Software Repository}. {Adamakegen} generates {makefiles} for {Ada} programs. ["Reference Manual for the Ada Programming Language", ANSI/MIL STD 1815A, US DoD (Jan 1983)]. Earlier draft versions appeared in July 1980 and July 1982. ISO 1987. [{Jargon File}] (2000-08-12)

Ada Lovelace "person" (1811-1852) The daughter of Lord Byron, who became the world's first programmer while cooperating with {Charles Babbage} on the design of his mechanical computing engines in the mid-1800s. The language {Ada} was named after her. [{"Ada, Enchantress of Numbers Prophit of the Computer Age", Betty Alexandra Toole (http://well.com/user/adatoole)}]. [More details?] (1999-07-17)

Ada Lovelace ::: (person) (1811-1852) The daughter of Lord Byron, who became the world's first programmer while cooperating with Charles Babbage on the design of his mechanical computing engines in the mid-1800s.The language Ada was named after her.[ Ada, Enchantress of Numbers Prophit of the Computer Age, Betty Alexandra Toole ].[More details?] (1999-07-17)

ALAM "language" A language for {symbolic mathematics}, especially General Relativity. See also {CLAM}. ["ALAM Programmer's Manual", Ray D'Inverno, 1970]. (1994-10-28)

ALAM ::: (language) A language for symbolic mathematics, especially General Relativity.See also CLAM.[ALAM Programmer's Manual, Ray D'Inverno, 1970]. (1994-10-28)

Alfl "language" A lazy function language. A {weakly typed}, {lazy} {functional language} developed by Paul Hudak "hudak-paul@cs.yale.edu" of Yale in 1983. Alfl is implemented as a {Scheme} {preprocessor} for the {Orbit} compiler, by transforming laziness into {force}-and-{delay}. ["Alfl Reference Manual and Programmer's Guide", P. Hudak, YALEU/DCS/RR322, Yale U, Oct 1984]. See also {ParAlfl}. (1995-04-24)

Alfl ::: (language) A lazy function language. A weakly typed, lazy functional language developed by Paul HudakScheme preprocessor for the Orbit compiler, by transforming laziness into force-and-delay.[Alfl Reference Manual and Programmer's Guide, P. Hudak, YALEU/DCS/RR322, Yale U, Oct 1984].See also ParAlfl. (1995-04-24)

Amiga "computer" A range of home computers first released by {Commodore Business Machines} in early 1985 (though they did not design the original - see below). Amigas were popular for {games}, {video processing}, and {multimedia}. One notable feature is a hardware {blitter} for speeding up graphics operations on whole areas of the screen. The Amiga was originally called the Lorraine, and was developed by a company named "Amiga" or "Amiga, Inc.", funded by some doctors to produce a killer game machine. After the US game machine market collapsed, the Amiga company sold some {joysticks} but no Lorraines or any other computer. They eventually floundered and looked for a buyer. Commodore at that time bought the (mostly complete) Amiga machine, infused some money, and pushed it through the final stages of development in a hurry. Commodore released it sometime[?] in 1985. Most components within the machine were known by nicknames. The {coprocessor} commonly called the "Copper" is in fact the "{Video} Timing Coprocessor" and is split between two chips: the instruction fetch and execute units are in the "Agnus" chip, and the {pixel} timing circuits are in the "Denise" chip (A for address, D for data). "Agnus" and "Denise" were responsible for effects timed to the {real-time} position of the video scan, such as midscreen {palette} changes, {sprite multiplying}, and {resolution} changes. Different versions (in order) were: "Agnus" (could only address 512K of {video RAM}), "Fat Agnus" (in a {PLCC} package, could access 1MB of video RAM), "Super Agnus" (slightly upgraded "Fat Agnus"). "Agnus" and "Fat Agnus" came in {PAL} and {NTSC} versions, "Super Agnus" came in one version, jumper selectable for PAL or NTSC. "Agnus" was replaced by "Alice" in the A4000 and A1200, which allowed for more {DMA} channels and higher bus {bandwidth}. "Denise" outputs binary video data (3*4 bits) to the "Vidiot". The "Vidiot" is a hybrid that combines and amplifies the 12-bit video data from "Denise" into {RGB} to the {monitor}. Other chips were "Amber" (a "flicker fixer", used in the A3000 and Commodore display enhancer for the A2000), "Gary" ({I/O}, addressing, G for {glue logic}), "Buster" (the {bus controller}, which replaced "Gary" in the A2000), "Buster II" (for handling the Zorro II/III cards in the A3000, which meant that "Gary" was back again), "Ramsey" (The {RAM} controller), "DMAC" (The DMA controller chip for the WD33C93 {SCSI adaptor} used in the A3000 and on the A2091/A2092 SCSI adaptor card for the A2000; and to control the {CD-ROM} in the {CDTV}), and "Paula" ({Peripheral}, Audio, {UART}, {interrupt} Lines, and {bus Arbiter}). There were several Amiga chipsets: the "Old Chipset" (OCS), the "Enhanced Chipset" (ECS), and {AGA}. OCS included "Paula", "Gary", "Denise", and "Agnus". ECS had the same "Paula", "Gary", "Agnus" (could address 2MB of Chip RAM), "Super Denise" (upgraded to support "Agnus" so that a few new {screen modes} were available). With the introduction of the {Amiga A600} "Gary" was replaced with "Gayle" (though the chipset was still called ECS). "Gayle" provided a number of improvments but the main one was support for the A600's {PCMCIA} port. The AGA chipset had "Agnus" with twice the speed and a 24-bit palette, maximum displayable: 8 bits (256 colours), although the famous "{HAM}" (Hold And Modify) trick allows pictures of 256,000 colours to be displayed. AGA's "Paula" and "Gayle" were unchanged but AGA "Denise" supported AGA "Agnus"'s new screen modes. Unfortunately, even AGA "Paula" did not support High Density {floppy disk drives}. (The Amiga 4000, though, did support high density drives.) In order to use a high density disk drive Amiga HD floppy drives spin at half the rotational speed thus halving the data rate to "Paula". Commodore Business Machines went bankrupt on 1994-04-29, the German company {Escom AG} bought the rights to the Amiga on 1995-04-21 and the Commodore Amiga became the Escom Amiga. In April 1996 Escom were reported to be making the {Amiga} range again but they too fell on hard times and {Gateway 2000} (now called Gateway) bought the Amiga brand on 1997-05-15. Gateway licensed the Amiga operating system to a German hardware company called {Phase 5} on 1998-03-09. The following day, Phase 5 announced the introduction of a four-processor {PowerPC} based Amiga {clone} called the "{pre\box}". Since then, it has been announced that the new operating system will be a version of {QNX}. On 1998-06-25, a company called {Access Innovations Ltd} announced {plans (http://micktinker.co.uk/aaplus.html)} to build a new Amiga chip set, the {AA+}, based partly on the AGA chips but with new fully 32-bit functional core and 16-bit AGA {hardware register emulation} for {backward compatibility}. The new core promised improved memory access and video display DMA. By the end of 2000, Amiga development was under the control of a [new?] company called {Amiga, Inc.}. As well as continuing development of AmigaOS (version 3.9 released in December 2000), their "Digital Environment" is a {virtual machine} for multiple {platforms} conforming to the {ZICO} specification. As of 2000, it ran on {MIPS}, {ARM}, {PPC}, and {x86} processors. {(http://amiga.com/)}. {Amiga Web Directory (http://cucug.org/amiga.html)}. {amiCrawler (http://amicrawler.com/)}. Newsgroups: {news:comp.binaries.amiga}, {news:comp.sources.amiga}, {news:comp.sys.amiga}, {news:comp.sys.amiga.advocacy}, {news:comp.sys.amiga.announce}, {news:comp.sys.amiga.applications}, {news:comp.sys.amiga.audio}, {news:comp.sys.amiga.datacomm}, {news:comp.sys.amiga.emulations}, {news:comp.sys.amiga.games}, {news:comp.sys.amiga.graphics}, {news:comp.sys.amiga.hardware}, {news:comp.sys.amiga.introduction}, {news:comp.sys.amiga.marketplace}, {news:comp.sys.amiga.misc}, {news:comp.sys.amiga.multimedia}, {news:comp.sys.amiga.programmer}, {news:comp.sys.amiga.reviews}, {news:comp.sys.amiga.tech}, {news:comp.sys.amiga.telecomm}, {news:comp.Unix.amiga}. See {aminet}, {Amoeba}, {bomb}, {exec}, {gronk}, {guru meditation}, {Intuition}, {sidecar}, {slap on the side}, {Vulcan nerve pinch}. (2003-07-05)

Amiga ::: (computer) A range of home computers first released by Commodore Business Machines in early 1985 (though they did not design the original - see below). feature is a hardware blitter for speeding up graphics operations on whole areas of the screen.The Amiga was originally called the Lorraine, and was developed by a company named Amiga or Amiga, Inc., funded by some doctors to produce a killer game joysticks but no Lorraines or any other computer. They eventually floundered and looked for a buyer.Commodore at that time bought the (mostly complete) Amiga machine, infused some money, and pushed it through the final stages of development in a hurry. Commodore released it sometime[?] in 1985.Most components within the machine were known by nicknames. The coprocessor commonly called the Copper is in fact the Video Timing Coprocessor and is Agnus chip, and the pixel timing circuits are in the Denise chip (A for address, D for data).Agnus and Denise were responsible for effects timed to the real-time position of the video scan, such as midscreen palette changes, sprite the A4000 and A1200, which allowed for more DMA channels and higher bus bandwidth.Denise outputs binary video data (3*4 bits) to the Vidiot. The Vidiot is a hybrid that combines and amplifies the 12-bit video data from Denise into RGB to the monitor.Other chips were Amber (a flicker fixer, used in the A3000 and Commodore display enhancer for the A2000), Gary (I/O, addressing, G for glue logic), card for the A2000; and to control the CD-ROM in the CDTV), and Paula (Peripheral, Audio, UART, interrupt Lines, and bus Arbiter).There were several Amiga chipsets: the Old Chipset (OCS), the Enhanced Chipset (ECS), and AGA. OCS included Paula, Gary, Denise, and Agnus.ECS had the same Paula, Gary, Agnus (could address 2MB of Chip RAM), Super Denise (upgraded to support Agnus so that a few new screen modes were Gayle (though the chipset was still called ECS). Gayle provided a number of improvments but the main one was support for the A600's PCMCIA port.The AGA chipset had Agnus with twice the speed and a 24-bit palette, maximum displayable: 8 bits (256 colours), although the famous HAM (Hold And Modify) use a high density disk drive Amiga HD floppy drives spin at half the rotational speed thus halving the data rate to Paula.Commodore Business Machines went bankrupt on 1994-04-29, the German company Escom AG bought the rights to the Amiga on 1995-04-21 and the Commodore Amiga range again but they too fell on hard times and Gateway 2000 (now called Gateway) bought the Amiga brand on 1997-05-15.Gateway licensed the Amiga operating system to a German hardware company called Phase 5 on 1998-03-09. The following day, Phase 5 announced the introduction of a four-processor PowerPC based Amiga clone called the pre\box. Since then, it has been announced that the new operating system will be a version of QNX.On 1998-06-25, a company called Access Innovations Ltd announced to build a new Amiga chip set, the AA+, based partly on the AGA chips but with backward compatibility. The new core promised improved memory access and video display DMA.By the end of 2000, Amiga development was under the control of a [new?] company called Amiga, Inc.. As well as continuing development of AmigaOS (version 3.9 multiple platforms conforming to the ZICO specification. As of 2000, it ran on MIPS, ARM, PPC, and x86 processors. . . .Newsgroups: comp.binaries.amiga, comp.sources.amiga, comp.sys.amiga, comp.sys.amiga.advocacy, comp.sys.amiga.announce, comp.sys.amiga.applications, comp.sys.amiga.multimedia, comp.sys.amiga.programmer, comp.sys.amiga.reviews, comp.sys.amiga.tech, comp.sys.amiga.telecomm, comp.Unix.amiga.See aminet, Amoeba, bomb, exec, gronk, guru meditation, Intuition, sidecar, slap on the side, Vulcan nerve pinch.(2003-07-05)

Amiga E "tool" An {Amiga} {E} {compiler} by Wouter van Oortmerssen. Amiga E compiles 20000 lines/minute on a 7 Mhz Amiga. It allows {in-line} {assembly code} and has an integrated {linker}. It has a large set of integrated functions and {modules}. V2.04 includes as modules a flexible {type} system, quoted expressions, {immediate} and typed lists, low level {polymorphism} and {exception} handling. It is written in {assembly language} and E. Version 2.1b {(ftp://ftp.wustl.edu/pub/aminet/dev/e/AmigaE21b.lha)}. {(ftp://amiga.physik.unizh.ch/amiga/dev/lang/AmigaE21b.lha)}. {Usenet} newsgroup: {news:comp.sys.amiga.programmer}. (1997-08-26)

Amiga E ::: (tool) An Amiga E compiler by Wouter van Oortmerssen.Amiga E compiles 20000 lines/minute on a 7 Mhz Amiga. It allows in-line assembly code and has an integrated linker. It has a large set of integrated functions expressions, immediate and typed lists, low level polymorphism and exception handling. It is written in assembly language and E.Version 2.1b . .Usenet newsgroup: comp.sys.amiga.programmer. (1997-08-26)

An :::algorithm ::: is set of instructions for solving a problem or accomplishing a task. One common example of an algorithm is a recipe, which consists of specific instructions for preparing a dish/meal. Every computerized device uses algorithms to perform its functions.   BREAKING DOWN 'Algorithm'   Financial companies use algorithms in areas such as loan pricing, stock trading, and asset-liability management. For example, algorithmic trading, known as "algo," is used for deciding the timing, pricing, and quantity of stock orders. Algo trading, also known as automated trading or black-box trading, uses a computer program to buy or sell securities at a pace not possible for humans. Since prices of stocks, bonds, and commodities appear in various formats online and in trading data, the process by which an algorithm digests scores of financial data becomes easy. The user of the program simply sets the parameters and gets the desired output when securities meet the trader's criteria.   Types of Algos   Several types of trading algorithms help investors decide whether to buy or sell. A mean reversion algorithm examines short-term prices over the long-term average price, and if a stock goes much higher than the average, a trader may sell it for a quick profit. Seasonality refers to the practice of traders buying and selling securities based on the time of year when markets typically rise or fall. A sentiment analysis algorithm gauges news about a stock price that could lead to higher volume for a trading period.  Algorithm Example   The following is an example of an algorithm for trading. A trader creates instructions within his automated account to sell 100 shares of a stock if the 50-day moving average goes below the 200-day moving average. Contrarily, the trader could create instructions to buy 100 shares if the 50-day moving average of a stock rises above the 200-day moving average. Sophisticated algorithms consider hundreds of criteria before buying or selling securities. Computers quickly synthesize the automated account instructions to produce desired results. Without computers, complex trading would be time-consuming and possibly impossible.   Algorithms in Computer Science   In computer science, a programmer must employ five basic parts of an algorithm to create a successful program. First, he/she describes the problem in mathematical terms before creating the formulas and processes that create results. Next, the programmer inputs the outcome parameters, and then he/she executes the program repeatedly to test its accuracy. The conclusion of the algorithm is the result given after the parameters go through the set of instructions in the program.  For financial algorithms, the more complex the program, the more data the software can use to make accurate assessments to buy or sell securities. Programmers test complex algorithms thoroughly to ensure the programs are without errors. Many algorithms can be used for one problem; however, there are some that simplify the process better than others.

annotation ::: 1. (programming, compiler) Extra information associated with a particular point in a document or program. Annotations may be added either by a compiler or by the programmer. They are not usually essential to the correct function of the program but give hints to improve performance.2. (hypertext) A new commentary node linked to an existing node. If readers, as well as authors, can annotate nodes, then they can immediately provide feedback if the information is misleading, out of date or plain wrong. (1995-11-26)

annotation 1. "programming, compiler" Extra information associated with a particular point in a document or program. Annotations may be added either by a {compiler} or by the programmer. They are not usually essential to the correct function of the program but give hints to improve performance. 2. "hypertext" A new commentary {node} linked to an existing node. If readers, as well as authors, can annotate nodes, then they can immediately provide feedback if the information is misleading, out of date or plain wrong. (1995-11-26)

Application Developer ::: (job) A person who writes computer programs to meet specific requirements. The term often implies involvement with, or responsibility for, requirements capture and testing, in contrast to the term programmer.(2004-03-06)

application development "programming" Writing {computer programs} to meet specific {requirements}; the job of an Application Developer. Application development often includes responsibility for {requirements capture} and/or {testing} as well as actual {programming} (the more limited activity implied by the term {programmer}). (2013-08-15)

application programming interface (API) ::: A set of subroutine definitions, communication protocols, and tools for building software. In general terms, it is a set of clearly defined methods of communication among various components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware, or software library.

application server 1. "software" A {designer}'s or {developer}'s suite of {software} that helps {programmers} isolate the {business logic} in their {programs} from the {platform}-related code. {Application} {servers} can handle all of the {application} {logic} and {connectivity} found in {client-server} {applications}. Many {application} {servers} also offer features such as {transaction management}, {clustering} and {failover}, and {load balancing}; nearly all offer {ODBC} support. {Application} {servers} range from small {footprint}, web-based {processors} for intelligent appliances or remote {embedded} devices, to complete environments for assembling, deploying, and maintaining {scalable} {multi-tier} applications across an {enterprise}. 2. "software" Production {programs} run on a mid-sized computer that handle all {application} operations between {browser}-based computers and an organisation's back-end business {applications} or {databases}. The {application} {server} works as a translator, allowing, for example, a customer with a {browser} to search an online retailer's {database} for pricing information. 3. "hardware" The device on which {application} {server} {software} runs. {Application Service Providers} offer commercial access to such devices. {Citrix Application Serving White Paper (http://citrix.com/press/corpinfo/application_serving_wp_0700.pdf)}. {Application Server Sites, a list maintained by Vayda & Herzum (http://componentfactory.org/links/appl.htm)}. {The Application Server Zone at DevX, (http://appserver-zone.com/default.asp)}. {TechMetrix Research's Application Server Directory, (http://techmetrix.com/trendmarkers/techmetrixasd.php3)}. (2001-03-30)

application server ::: 1. software> A designer's or developer's suite of software that helps programmers isolate the business logic in their programs from the servers also offer features such as transaction management, clustering and failover, and load balancing; nearly all offer ODBC support.Application servers range from small footprint, web-based processors for intelligent appliances or remote embedded devices, to complete environments for assembling, deploying, and maintaining scalable multi-tier applications across an enterprise.2. software> Production programs run on a mid-sized computer that handle all application operations between browser-based computers and an organisation's translator, allowing, for example, a customer with a browser to search an online retailer's database for pricing information.3. hardware> The device on which application server software runs. Application Service Providers offer commercial access to such devices. . . . .(2001-03-30)

arj "tool, file format" An archive format for the {IBM PC}. ARJ files are handled by the ARJ program, created by the American programmer Robert Jung. [Available from? Compare with PKZIP?] (1996-11-03)

arj ::: (tool, file format) An archive format for the IBM PC. ARJ files are handled by the ARJ program, created by the American programmer Robert Jung.[Available from? Compare with PKZIP?] (1996-11-03)

Arjuna "language" An {object-oriented programming} system developed by a team led by Professor Santosh Shrivastava at the {University of Newcastle}, implemented entirely in {C++}. Arjuna provides a set of tools for the construction of {fault-tolerant} {distributed} applications. It exploits features found in most object-oriented languages (such as {inheritance}) and only requires a limited set of system capabilities commonly found in conventional {operating systems}. Arjuna provides the programmer with {classes} that implement {atomic transactions}, {object level recovery}, {concurrency} control and {persistence}. The system is {portable}, modular and flexible; the system software has been available via FTP since 1992. {(http://arjuna.ncl.ac.uk/)}. (1995-03-06)

aspect-oriented programming "programming" (AOP) A style of programming that attempts to abstract out features common to many parts of the code beyond simple functional modules and thereby improve the {quality} of software. Mechanisms for defining and composing {abstractions} are essential elements of programming languages. The design style supported by the abstraction mechanisms of most current languages is one of breaking a system down into parameterised components that can be called upon to perform a function. But many systems have properties that don't necessarily align with the system's functional components, such as failure handling, {persistence}, communication, replication, coordination, {memory management}, or {real-time} constraints, and tend to cut across groups of functional components. While they can be thought about and analysed relatively separately from the basic functionality, programming them using current {component-oriented languages} tends to result in these aspects being spread throughout the code. The {source code} becomes a tangled mess of instructions for different purposes. This "tangling" phenomenon is at the heart of much needless complexity in existing software systems. A number of researchers have begun working on approaches to this problem that allow programmers to express each of a system's aspects of concern in a separate and natural form, and then automatically combine those separate descriptions into a final executable form. These approaches have been called aspect-oriented programming. {Xerox AOP homepage (http://parc.xerox.com/csl/projects/aop/)}. {AspectJ (http://AspectJ.org/)}. {ECOOPP'99 AOP workshop (http://wwwtrese.cs.utwente.nl/aop-ecoop99/)}. (1999-11-21)

Association of C and C++ Users "body" (ACCU) A community of people with an interest in the {C} family of programming languages: {K&R C}, {ANSI C}, and {C++}. The community includes professional programmers, the suppliers of {compilers}, and those who are just interested in the languages. ACCU members are using C and C++ on a wide range of platforms - {Unix}, {MS-DOS}, {OS/2}, {CP/M} - home computers, {IBM PCs}, {workstations}, and {super-computers}. Although the organisation is based in the UK, the membership is worldwide. There are members in the US, mainland Europe, Russia, the Middle East, and Australia. E-mail: "info@accu.org", "membership@accu.org", "academic@accu.org" (Academic Liaison Officer). Address: The Membership Secretary, 64 Southfield Road, Oxford OX4 1PA, United Kingdom. (1996-12-02)

Atari ::: (company, computer) A maker of arcade games, home video game systems, and home computers, especially during the 1970s and 1980s. Atari are best known for ST, STe, STacy, Mega STe, TT, and Falcon. There are also emulators for the Apple Macintosh and IBM PC/XT/AT available. .Usenet newsgroups: comp.binaries.atari.st, comp.sys.atari.st.tech, comp.sources.atari.st, comp.sys.atari.st, comp.sys.atari.advocacy, comp.sys.atari.programmer. UK Netherlands . (1999-07-12)

Atari "company, computer" A maker of arcade games, home video game systems, and home computers, especially during the 1970s and 1980s. Atari are best known for their range of 16- and 32-bit {microcomputers}, notable for having a built-in {MIDI} interface. As of February 1994 the range included the Atari 520ST, 1040ST, Mega ST, STe, STacy, Mega STe, TT, and Falcon. There are also emulators that run on the Apple {Macintosh} and {IBM PC}/XT/AT. Atari ceased to be a separate company in 1996 when merged with {JTS}. In 1998, JTS sold the Atari assets to Hasbro. In 2001, {Infogrames} North America operations officially changed their name to Atari. {(http://atarigames.com/)}. {Usenet newsgroups}: {news:comp.binaries.atari.st}, {news:comp.sys.atari.st.tech}, {news:comp.sources.atari.st}, {news:comp.sys.atari.st}, {news:comp.sys.atari.advocacy}, {news:comp.sys.atari.programmer}. {Michigan U (ftp://atari.archive.umich.edu)}, {UK (ftp://micros.hensa.ac.uk/)}, {Germany (ftp://ftp.Germany.EU.net)} [192.76.144.75], {Netherlands (ftp://ftp.cs.ruu.nl/)} [131.211.80.17], {UK (ftp://src.doc.ic.ac.uk/computing/systems/atari/umich)}. (2008-07-23)

autopilot code "jargon, humour" {Code} that was written by a programmer on "auto-pilot" who wasn't really thinking about what they were doing. [{Dodgy Coder (http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}]. (2014-08-21)

back door "security" (Or "{trap door}", "{wormhole}"). A hole in the security of a system deliberately left in place by designers or maintainers. The motivation for such holes is not always sinister; some {operating systems}, for example, come out of the box with privileged accounts intended for use by field service technicians or the vendor's maintenance programmers. See also {iron box}, {cracker}, {worm}, {logic bomb}. Historically, back doors have often lurked in systems longer than anyone expected or planned, and a few have become widely known. The infamous {RTM} worm of late 1988, for example, used a back door in the {BSD} Unix "sendmail(8)" {utility}. {Ken Thompson}'s 1983 Turing Award lecture to the {ACM} revealed the existence of a back door in early {Unix} versions that may have qualified as the most fiendishly clever security hack of all time. The C compiler contained code that would recognise when the "login" command was being recompiled and insert some code recognizing a password chosen by Thompson, giving him entry to the system whether or not an account had been created for him. Normally such a back door could be removed by removing it from the source code for the compiler and recompiling the compiler. But to recompile the compiler, you have to *use* the compiler - so Thompson also arranged that the compiler would *recognise when it was compiling a version of itself*, and insert into the recompiled compiler the code to insert into the recompiled "login" the code to allow Thompson entry - and, of course, the code to recognise itself and do the whole thing again the next time around! And having done this once, he was then able to recompile the compiler from the original sources; the hack perpetuated itself invisibly, leaving the back door in place and active but with no trace in the sources. The talk that revealed this truly moby hack was published as ["Reflections on Trusting Trust", "Communications of the ACM 27", 8 (August 1984), pp. 761--763]. [{Jargon File}] (1995-04-25)

back door ::: (security) (Or trap door, wormhole). A hole in the security of a system deliberately left in place by designers or maintainers. The motivation technicians or the vendor's maintenance programmers. See also iron box, cracker, worm, logic bomb.Historically, back doors have often lurked in systems longer than anyone expected or planned, and a few have become widely known. The infamous RTM worm of late 1988, for example, used a back door in the BSD Unix sendmail(8) utility.Ken Thompson's 1983 Turing Award lecture to the ACM revealed the existence of a back door in early Unix versions that may have qualified as the most fiendishly recognizing a password chosen by Thompson, giving him entry to the system whether or not an account had been created for him.Normally such a back door could be removed by removing it from the source code for the compiler and recompiling the compiler. But to recompile the compiler, itself invisibly, leaving the back door in place and active but with no trace in the sources.The talk that revealed this truly moby hack was published as [Reflections on Trusting Trust, Communications of the ACM 27, 8 (August 1984), pp. 761--763].[Jargon File] (1995-04-25)

bare metal ::: 1. New computer hardware, unadorned with such snares and delusions as an operating system, an HLL, or even assembler. Commonly used in the phrase assemblers that will be used to write the compiler back ends that will give the new computer a real development environment.2. Programming on the bare metal is also used to describe a style of hand-hacking that relies on bit-level peculiarities of a particular hardware industrial embedded systems, and in the code of hackers who just can't let go of that low-level control. See Real Programmer.In the world of personal computing, bare metal programming is often considered a Good Thing, or at least a necessary evil (because these computers have often down to the bare metal. People who can do this sort of thing well are held in high regard.[Jargon File]

bare metal 1. New computer hardware, unadorned with such snares and delusions as an {operating system}, an {HLL}, or even {assembler}. Commonly used in the phrase "programming on the bare metal", which refers to the arduous work of {bit bashing} needed to create these basic tools for a new computer. Real bare-metal programming involves things like building {boot PROMs} and {BIOS} chips, implementing basic {monitors} used to test {device drivers}, and writing the assemblers that will be used to write the compiler back ends that will give the new computer a real development environment. 2. "Programming on the bare metal" is also used to describe a style of {hand-hacking} that relies on bit-level peculiarities of a particular hardware design, especially tricks for speed and space optimisation that rely on crocks such as overlapping instructions (or, as in the famous case described in {The Story of Mel}, interleaving of opcodes on a magnetic drum to minimise fetch delays due to the device's rotational latency). This sort of thing has become less common as the relative costs of programming time and computer resources have changed, but is still found in heavily constrained environments such as industrial embedded systems, and in the code of hackers who just can't let go of that low-level control. See {Real Programmer}. In the world of personal computing, bare metal programming is often considered a {Good Thing}, or at least a necessary evil (because these computers have often been sufficiently slow and poorly designed to make it necessary; see {ill-behaved}). There, the term usually refers to bypassing the BIOS or OS interface and writing the application to directly access device registers and computer addresses. "To get 19.2 kilobaud on the serial port, you need to get down to the bare metal." People who can do this sort of thing well are held in high regard. [{Jargon File}]

belief-desire-intention software model (BDI) ::: A software model developed for programming intelligent agents. Superficially characterized by the implementation of an agent's beliefs, desires and intentions, it actually uses these concepts to solve a particular problem in agent programming. In essence, it provides a mechanism for separating the activity of selecting a plan (from a plan library or an external planner application) from the execution of currently active plans. Consequently, BDI agents are able to balance the time spent on deliberating about plans (choosing what to do) and executing those plans (doing it). A third activity, creating the plans in the first place (planning), is not within the scope of the model, and is left to the system designer and programmer.

Bill Gates ::: (person) William Henry Gates III, Chief Executive Officer of Microsoft, which he co-founded in 1975 with Paul Allen. In 1994 Gates is a billionaire, dropped out of Harvard and one of the first programmers to oppose software piracy (Open Letter to Hobbyists, Computer Notes, February 3, 1976). (1995-03-02)

Bill Gates "person" William Henry Gates III, Chief Executive Officer of {Microsoft}, which he co-founded in 1975 with {Paul Allen}. In 1994 Gates is a billionaire, worth $9.35b and {Microsoft} is worth about $27b. He was a {computer nerd} who dropped out of Harvard and one of the first programmers to oppose {software piracy} ("Open Letter to Hobbyists," Computer Notes, February 3, 1976). (1995-03-02)

blivet ::: /bliv'*t/ [allegedly from a World War II military term meaning ten pounds of manure in a five-pound bag] 1. An intractable problem.2. A crucial piece of hardware that can't be fixed or replaced if it breaks.3. A tool that has been hacked over by so many incompetent programmers that it has become an unmaintainable tissue of hacks.4. An out-of-control but unkillable development effort.5. An embarrassing bug that pops up during a customer demo.6. In the subjargon of computer security specialists, a denial-of-service attack performed by hogging limited resources that have no access controls (for example, shared spool space on a multi-user system).This term has other meanings in other technical cultures; among experimental physicists and hardware engineers of various kinds it seems to mean any random fork that appears to depict a three-dimensional object until one realises that the parts fit together in an impossible way.[Jargon File]

blivet /bliv'*t/ [allegedly from a World War II military term meaning "ten pounds of manure in a five-pound bag"] 1. An intractable problem. 2. A crucial piece of hardware that can't be fixed or replaced if it breaks. 3. A tool that has been hacked over by so many incompetent programmers that it has become an unmaintainable tissue of hacks. 4. An out-of-control but unkillable development effort. 5. An embarrassing bug that pops up during a customer demo. 6. In the subjargon of computer security specialists, a denial-of-service attack performed by hogging limited resources that have no access controls (for example, shared spool space on a multi-user system). This term has other meanings in other technical cultures; among experimental physicists and hardware engineers of various kinds it seems to mean any random object of unknown purpose (similar to hackish use of {frob}). It has also been used to describe an amusing trick-the-eye drawing resembling a three-pronged fork that appears to depict a three-dimensional object until one realises that the parts fit together in an impossible way. [{Jargon File}]

bounce ::: 1. (Perhaps by analogy to a bouncing check) An electronic mail message that is undeliverable and returns an error notification (a bounce message) to the sender is said to bounce.2. To play volleyball. The now-demolished D. C. Power Lab building used by the Stanford AI Lab in the 1970s had a volleyball court on the front lawn. From 5 PM followed by Brian McCune loudly bouncing a volleyball on the floor outside the offices of known volleyballers.3. To engage in sexual intercourse; probably from the expression bouncing the mattress, but influenced by Roo's psychosexually loaded Try bouncing me, Tigger! from the Winnie-the-Pooh books.Compare boink.4. To casually reboot a system in order to clear up a transient problem. Reported primarily among VMS users.5. (VM/CMS programmers) Automatic warm-start of a computer after an error. I logged on this morning and found it had bounced 7 times during the night6. (IBM) To power cycle a peripheral in order to reset it.[Jargon File] (1994-11-29)

bounce 1. (Perhaps by analogy to a bouncing check) An {electronic mail} message that is undeliverable and returns an error notification (a "{bounce message}") to the sender is said to "bounce". 2. To play volleyball. The now-demolished {D. C. Power Lab} building used by the {Stanford AI Lab} in the 1970s had a volleyball court on the front lawn. From 5 PM to 7 PM was the scheduled maintenance time for the computer, so every afternoon at 5 would come over the intercom the cry: "Now hear this: bounce, bounce!", followed by Brian McCune loudly bouncing a volleyball on the floor outside the offices of known volleyballers. 3. To engage in sexual intercourse; probably from the expression "bouncing the mattress", but influenced by Roo's psychosexually loaded "Try bouncing me, Tigger!" from the "Winnie-the-Pooh" books. Compare {boink}. 4. To casually reboot a system in order to clear up a transient problem. Reported primarily among {VMS} users. 5. (VM/CMS programmers) Automatic warm-start of a computer after an error. "I logged on this morning and found it had bounced 7 times during the night" 6. (IBM) To {power cycle} a peripheral in order to reset it. [{Jargon File}] (1994-11-29)

breakpoint ::: (programming) A point in a program that, when reached, triggers some special behavior useful to the process of debugging; generally, breakpoints are may be set by the programmer as part of an interactive session with a debugging tool for scrutinizing the program's execution. (1999-06-07)

breakpoint "programming" A point in a {program} that, when reached, triggers some special behavior useful to the process of {debugging}; generally, breakpoints are used to either pause program {execution}, and/or {dump} the values of some or all of the program {variables}. Breakpoints may be part of the program itself; or they may be set by the programmer as part of an {interactive} session with a {debugging tool} for scrutinizing the program's execution. (1999-06-07)

Brooks's Law ::: (programming) Adding manpower to a late software project makes it later - a result of the fact that the expected advantage from splitting work among N communications cost associated with coordinating and then merging their work is O(N^2) (that is, proportional to the square of N).The quote is from Fred Brooks, a manager of IBM's OS/360 project and author of The Mythical Man-Month.The myth in question has been most tersely expressed as Programmer time is fungible and Brooks established conclusively that it is not. Hackers have never forgotten his advice; too often, management still does.See also creationism, second-system effect, optimism.[Jargon File] (1996-09-17)

Brooks's Law "programming" "Adding manpower to a late software project makes it later" - a result of the fact that the expected advantage from splitting work among N programmers is O(N) (that is, proportional to N), but the complexity and communications cost associated with coordinating and then merging their work is O(N^2) (that is, proportional to the square of N). The quote is from Fred Brooks, a manager of {IBM}'s {OS/360} project and author of "{The Mythical Man-Month}". The myth in question has been most tersely expressed as "Programmer time is fungible" and Brooks established conclusively that it is not. Hackers have never forgotten his advice; too often, {management} still does. See also {creationism}, {second-system effect}, {optimism}. [{Jargon File}] (1996-09-17)

brown paper bag bug "programming" A programming {bug} that is so stupid that it makes the programmer want to put a brown paper bag over his head. (2001-01-16)

brown paper bag bug ::: (programming) A programming bug that is so stupid that it makes the programmer want to put a brown paper bag over his head.(2001-01-16)

brute force ::: (programming) A primitive programming style in which the programmer relies on the computer's processing power instead of using his own intelligence heavy-handed, tedious way, full of repetition and devoid of any elegance or useful abstraction (see also brute force and ignorance).The canonical example of a brute-force algorithm is associated with the travelling salesman problem (TSP), a classical NP-hard problem:Suppose a person is in, say, Boston, and wishes to drive to N other cities. In what order should the cities be visited in order to minimise the distance travelled?The brute-force method is to simply generate all possible routes and compare the distances; while guaranteed to work and simple to implement, this algorithm is consider, and for N = 1000 - well, see bignum). Sometimes, unfortunately, there is no better general solution than brute force. See also NP-complete.A more simple-minded example of brute-force programming is finding the smallest number in a large list by first using an existing program to sort the list in ascending order, and then picking the first number off the front.Whether brute-force programming should actually be considered stupid or not depends on the context; if the problem is not terribly big, the extra CPU time algorithm may imply more long-term complexity cost and bug-chasing than are justified by the speed improvement.When applied to cryptography, it is usually known as brute force attack.Ken Thompson, co-inventor of Unix, is reported to have uttered the epigram When in doubt, use brute force. He probably intended this as a ha ha only serious, cleverness is often a difficult one that requires both engineering savvy and delicate aesthetic judgment.[Jargon File] (1995-02-14)

brute force "programming" A primitive programming style in which the programmer relies on the computer's processing power instead of using his own intelligence to simplify the problem, often ignoring problems of scale and applying naive methods suited to small problems directly to large ones. The term can also be used in reference to programming style: brute-force programs are written in a heavy-handed, tedious way, full of repetition and devoid of any elegance or useful abstraction (see also {brute force and ignorance}). The {canonical} example of a brute-force algorithm is associated with the "{travelling salesman problem}" (TSP), a classical {NP-hard} problem: Suppose a person is in, say, Boston, and wishes to drive to N other cities. In what order should the cities be visited in order to minimise the distance travelled? The brute-force method is to simply generate all possible routes and compare the distances; while guaranteed to work and simple to implement, this algorithm is clearly very stupid in that it considers even obviously absurd routes (like going from Boston to Houston via San Francisco and New York, in that order). For very small N it works well, but it rapidly becomes absurdly inefficient when N increases (for N = 15, there are already 1,307,674,368,000 possible routes to consider, and for N = 1000 - well, see {bignum}). Sometimes, unfortunately, there is no better general solution than brute force. See also {NP-complete}. A more simple-minded example of brute-force programming is finding the smallest number in a large list by first using an existing program to sort the list in ascending order, and then picking the first number off the front. Whether brute-force programming should actually be considered stupid or not depends on the context; if the problem is not terribly big, the extra CPU time spent on a brute-force solution may cost less than the programmer time it would take to develop a more "intelligent" algorithm. Additionally, a more intelligent algorithm may imply more long-term complexity cost and bug-chasing than are justified by the speed improvement. When applied to {cryptography}, it is usually known as {brute force attack}. {Ken Thompson}, co-inventor of {Unix}, is reported to have uttered the epigram "When in doubt, use brute force". He probably intended this as a {ha ha only serious}, but the original {Unix} {kernel}'s preference for simple, robust and portable {algorithms} over {brittle} "smart" ones does seem to have been a significant factor in the success of that {operating system}. Like so many other tradeoffs in software design, the choice between brute force and complex, finely-tuned cleverness is often a difficult one that requires both engineering savvy and delicate aesthetic judgment. [{Jargon File}] (1995-02-14)

bubble sort A sorting technique in which pairs of adjacent values in the list to be sorted are compared and interchanged if they are out of order; thus, list entries "bubble upward" in the list until they bump into one with a lower sort value. Because it is not very good relative to other methods and is the one typically stumbled on by {naive} and untutored programmers, hackers consider it the {canonical} example of a naive algorithm. The canonical example of a really *bad* algorithm is {bogo-sort}. A bubble sort might be used out of ignorance, but any use of bogo-sort could issue only from brain damage or willful perversity. [{Jargon File}]

bulletin board system ::: (communications, application) (BBS, bboard /bee'bord/)A computer and associated software which typically provides an electronic message database where people can log in and leave messages. Messages are like a distributed BBS). Any user may submit or read any message in these public areas.The term comes from physical pieces of board on which people can pin messages written on paper for general consumption - a physical bulletin board. Ward Christensen, the programmer and operator of the first BBS (on-line 1978-02-16) called it a CBBS for computer bulletin board system.Apart from public message areas, a BBS may provide archives of files, personal electronic mail and any other services or activities of interest to the bulletin a valuable function by knitting together lots of hackers and users in the personal-micro world who would otherwise be unable to exchange code at all.Use of this term for a Usenet newsgroup generally marks one either as a newbie fresh in from the BBS world or as a real old-timer predating Usenet.(2005-09-20)

bulletin board system "communications, application" (BBS, bboard /bee'bord/, message board, forum; plural: BBSes) A computer and associated software which typically provides an electronic message database where people can log in and leave messages. Messages are typically split into {topic groups} similar to the {newsgroups} on {Usenet} (which is like a distributed BBS). Any user may submit or read any message in these public areas. The term comes from physical pieces of board on which people can pin messages written on paper for general consumption - a "physical bulletin board". {Ward Christensen}, the programmer and operator of the first BBS (on-line 1978-02-16) called it a CBBS for "computer bulletin board system". Since the rise of the {World-Wide Web}, the term has become antiquated, though the concept is more popular than ever, with many {websites} featuring discussion areas where users can post messages for public consumption. Apart from public message areas, some BBSes provided archives of files, personal {electronic mail} and other services of interest to the system operator ({sysop}). Thousands of BBSes around the world were run from amateurs' homes on {MS-DOS} boxes with a single {modem} line each. Although BBSes were traditionally the domain of hobbyists, many connected directly to the {Internet} (accessed via {telnet}), others were operated by government, educational, and research institutions. Fans of {Usenet} or the big commercial {time-sharing} bboards such as {CompuServe}, {CIX} and {GEnie} tended to consider local BBSes the low-rent district of the hacker culture, but they helped connect hackers and users in the personal-{micro} and let them exchange code. Use of this term for a {Usenet} newsgroup generally marks one either as a {newbie} fresh in from the BBS world or as a real old-timer predating {Usenet}. (2005-09-20)

c2man "tool" An automatic {documentation} extraction tool by Graham Stoney. c2man extracts comments from {C} source code to generate functional interface documentation in the same format as sections 2 and 3 of the {Unix} Programmer's Manual. It looks for comments near the objects they document, rather than imposing a rigid {syntax} or requiring the programmer to use a typesetting language. Acceptable documentation can often be generated from existing code with no modifications. c2man supports both {K&R} and {ISO}/{ANSI C} coding styles. Output can be in {nroff} -man, {Texinfo} or {LaTeX} format. It {automagically} documents {enum} parameter and return values, it handles both {C} (/* */) and {C++} (//) style comments, but not C++ grammar (yet). It requires {yacc}, {byacc} or {bison} for syntax analysis; {lex} or {flex} for {lexical analysis} and {nroff}, {groff}, {texinfo} or {LaTeX} to format the output. It runs under {Unix}, {OS/2} and {MS-DOS}. Version 2.0 patchlevel 25 (1995-10-25). {Washington FTP (ftp://ftp.wustl.edu/usenet/comp.sources.reviewed/volume03/)}. {Stuttgart FTP (ftp://ftp.informatik.uni-stuttgart.de/pub/archive/comp.sources/reviewed/)}. {Patches (ftp://lth.se/pub/netnews/sources.bugs/volume93/sep/)}. Patches posted to {Usenet} newsgroups {news:comp.sources.bugs} and {news:comp.sources.reviewed}. (2003-05-02)

call-by-reference "programming" An {argument} passing convention where the address of an argument {variable} is passed to a {function} or {procedure}, as opposed to passing the value of the argument expression. Execution of the function or procedure may have {side-effects} on the actual argument as seen by the caller. The {C} language's "&" (address of) and "*" (dereference) operators allow the programmer to code explicit call-by-reference. Other languages provide special syntax to declare reference arguments (e.g. {ALGOL 60}). See also {call-by-name}, {call-by-value}, {call-by-value-result}. (2006-05-27)

can't happen "programming" The traditional program comment for code executed under a condition that should never be true, for example a file size computed as negative. Often, such a condition being true indicates data corruption or a faulty {algorithm}; it is almost always handled by emitting a fatal error message and terminating or crashing, since there is little else that can be done. Some case variant of "can't happen" is also often the text emitted if the "impossible" error actually happens. Although "can't happen" events are genuinely infrequent in production code, programmers wise enough to check for them habitually are often surprised at how frequently they are triggered during development and how many headaches checking for them turns out to head off. See also {firewall code}, {professional programming}. [{Jargon File}] (1996-05-10)

card walloper ::: (jargon) An EDP programmer who grinds out batch programs that do things like print people's paychecks. Compare code grinder.See also punched card, eighty-column mind.[Jargon File](2003-09-20)caret ^Common: hat; control; uparrow; caret; ITU-T: circumflex. Rare: chevron; INTERCAL: shark (or shark-fin); to the (to the power of); fang; pointer (in Pascal).

card walloper "jargon" An {EDP} programmer who grinds out {batch programs} that do things like print people's paychecks. Compare {code grinder}. See also {punched card}, {eighty-column mind}. [{Jargon File}] (2003-09-20)

card walloper ::: (jargon) An EDP programmer who grinds out batch programs that do things like print people's paychecks. Compare code grinder.See also punched card, eighty-column mind.[Jargon File](2003-09-20)

cargo cult programming "programming, humour" A style of (incompetent) programming dominated by ritual inclusion of code or program structures that serve no real purpose. A cargo cult programmer will usually explain the extra code as a way of working around some bug encountered in the past, but usually neither the bug nor the reason the code apparently avoided the bug was ever fully understood (compare {shotgun debugging}, {voodoo programming}). The term "cargo cult" is a reference to aboriginal religions that grew up in the South Pacific after World War II. The practices of these cults centre on building elaborate mockups of aeroplanes and military style landing strips in the hope of bringing the return of the god-like aeroplanes that brought such marvelous cargo during the war. Hackish usage probably derives from Richard Feynman's characterisation of certain practices as "cargo cult science" in his book "Surely You're Joking, Mr. Feynman" (W. W. Norton & Co, New York 1985, ISBN 0-393-01921-7). [{Jargon File}] (2002-05-28)

case and paste "programming" (From "{cut and paste}") The addition of a new {feature} to an existing system by selecting the code from an existing feature and pasting it in with minor changes. This usually results in gross violation of the fundamental programming tenet, {Don't Repeat Yourself}. Common in telephony circles because most operations in a telephone switch are selected using "case" statements. Leads to {software bloat}. In some circles of {Emacs} users this is called "programming by Meta-W", because Meta-W is the Emacs command for copying a block of text to a {kill buffer} in preparation to pasting it in elsewhere. The term is condescending, implying that the programmer is acting mindlessly rather than thinking carefully about what is required to integrate the code for two similar cases. At {DEC}, this is sometimes called "clone-and-hack" coding. [{Jargon File}] (1996-03-01)

case and paste ::: (programming) (From cut and paste) The addition of a new feature to an existing system by selecting the code from an existing feature and pasting it in with minor changes. This usually results in gross violation of the fundamental programming tenet, Don't Repeat Yourself.Common in telephony circles because most operations in a telephone switch are selected using case statements. Leads to software bloat.In some circles of Emacs users this is called programming by Meta-W, because Meta-W is the Emacs command for copying a block of text to a kill buffer in the programmer is acting mindlessly rather than thinking carefully about what is required to integrate the code for two similar cases.At DEC, this is sometimes called clone-and-hack coding.[Jargon File] (1996-03-01)

CGI Joe "job, abuse" (From "GI Joe") A hard-core {CGI} script programmer with all the social skills and charisma of a plastic action figure. (1997-03-30)

CGI Joe ::: (job, abuse) (From GI Joe) A hard-core CGI script programmer with all the social skills and charisma of a plastic action figure. (1997-03-30)

Charles Simonyi "person" {Microsoft} {programmer}, most famously responsible for {Hungarian Notation}. Simonyi was born in Budapest in 1948, and for more than a decade was senior {programmer} at {Microsoft} in Redmond. (1999-05-25)

Charles Simonyi ::: (person) Microsoft programmer, most famously responsible for Hungarian Notation.Simonyi was born in Budapest in 1948, and for more than a decade was senior programmer at Microsoft in Redmond. (1999-05-25)

char "programming" /keir/ or /char/; rarely, /kar/ {character}. Especially used by {C} programmers, as "char" is {C}'s typename for character data. [{Jargon File}] (1994-11-29)

char ::: (programming) /keir/ or /char/; rarely, /kar/ character. Especially used by C programmers, as char is C's typename for character data.[Jargon File] (1994-11-29)

chase pointers ::: (programming) To determine a chain of memory locations where each location holds a pointer to the next, starting from some initial pointer, e.g. computer executing a program or by a programmer going through a core dump or using a debugger.[Jargon File](2006-05-06)

chase pointers "programming" To determine a chain of memory locations where each location holds a pointer to the next, starting from some initial pointer, e.g. traversing a {linked list} or other {graph} structure. This may be performed by a computer executing a program or by a programmer going through a {core dump} or using a debugger. [{Jargon File}] (2006-05-06)

CLAM ::: (mathematics, tool) A system for symbolic mathematics, especially General Relativity. It was first implemented in ATLAS assembly language and later Lisp.See also ALAM.[CLAM Programmer's Manual, Ray d'Inverno & Russell-Clark, King's College London, 1971]. (1994-11-08)

CLAM "mathematics, tool" A system for {symbolic mathematics}, especially General Relativity. It was first implemented in {ATLAS} {assembly language} and later {Lisp}. See also {ALAM}. ["CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark, King's College London, 1971]. (1994-11-08)

Clean "language" A {lazy} {higher-order} {purely functional language} from the {University of Nijmegen}. Clean was originally a subset of {Lean}, designed to be an experimental {intermediate language} and used to study the {graph rewriting} model. To help focus on the essential implementation issues it deliberately lacked all {syntactic sugar}, even {infix} expressions or {complex lists}, As it was used more and more to construct all kinds of applications it was eventually turned into a general purpose functional programming language, first released in May 1995. The new language is {strongly typed} (Milner/Mycroft type system), provides {modules} and {functional I/O} (including a {WIMP} interface), and supports {parallel processing} and {distributed processing} on {loosely coupled} parallel architectures. Parallel execution was originally based on the {PABC} {abstract machine}. It is one of the fastest implementations of functional languages available, partly aided by programmer {annotations} to influence evaluation order. Although the two variants of Clean are rather different, the name Clean can be used to denote either of them. To distinguish, the old version can be referred to as Clean 0.8, and the new as Clean 1.0 or Concurrent Clean. The current release of Clean (1.0) includes a compiler, producing code for the {ABC} {abstract machine}, a {code generator}, compiling the ABC code into either {object-code} or {assembly language} (depending on the {platform}), I/O libraries, a {development environment} (not all platforms), and {documentation}. It is supported (or will soon be supported) under {Mac OS}, {Linux}, {OS/2}, {Windows 95}, {SunOS}, and {Solaris}. {(http://cs.kun.nl/~clean/)}. E-mail: "clean@cs.kun.nl". Mailing list: "clean-request@cs.kun.nl". ["Clean - A Language for Functional Graph Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987]. ["Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U Nijmegen, Netherlands, 1989]. [{Jargon File}] (1995-11-08)

Clean ::: (language) A lazy higher-order purely functional language from the University of Nijmegen. Clean was originally a subset of Lean, designed to be an To help focus on the essential implementation issues it deliberately lacked all syntactic sugar, even infix expressions or complex lists,As it was used more and more to construct all kinds of applications it was eventually turned into a general purpose functional programming language, first parallel architectures. Parallel execution was originally based on the PABC abstract machine.It is one of the fastest implementations of functional languages available, partly aided by programmer annotations to influence evaluation order.Although the two variants of Clean are rather different, the name Clean can be used to denote either of them. To distinguish, the old version can be referred to as Clean 0.8, and the new as Clean 1.0 or Concurrent Clean.The current release of Clean (1.0) includes a compiler, producing code for the ABC abstract machine, a code generator, compiling the ABC code into either (or will soon be supported) under Mac OS, Linux, OS/2, Windows 95, SunOS, and Solaris. . E-mail: .[Clean - A Language for Functional Graph Rewriting, T. Brus et al, IR 95, U Nijmegen, Feb 1987].[Concurrent Clean, M.C. van Eekelen et al, TR 89-18, U Nijmegen, Netherlands, 1989].[Jargon File] (1995-11-08)

Client-Server Analyst Programmer "job" A person who analyses and designs {application programs} for a {client-server architecture}. Typical skills include {ODBC}, {Windows 95}, {Windows NT}, {Macintosh}, {Novell}, {OS/2}, {Unix}, and {RPC}. (2004-03-09)

Client-Server Analyst Programmer ::: (job) A person who analyses and designs application programs for a client-server architecture. Typical skills include ODBC, Windows 95, Windows NT, Macintosh, Novell, OS/2, Unix, and RPC.(2004-03-09)

cloysism ::: (networking) A backdoor network rat that will broadcast storm a network and send users to www.squizzle.com. This will eventually crash your network. No known cure has been found, but programmers in Maryville are working on it.(2004-01-07)

CMS-2 ::: A general purpose language used for command and control applications in the US Navy. Variants: CMS-2M and CMS-2Y.[CMS-2Y Programmers Reference Manual, M-5049, PDCSSA, San Diego CA (Oct 1976)]. (1994-12-21)

CMS-2 "language" A general purpose language used for command and control applications in the US Navy. Variants: CMS-2M and CMS-2Y. ["CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San Diego CA, Oct 1976]. (1994-12-21)

code grinder "jargon, abuse" A {suit}-wearing minion of the sort hired in legion strength by banks and insurance companies in the {Real World} to implement payroll packages in {RPG} and other such unspeakable horrors. In its native habitat, the code grinder often removes the suit jacket to reveal an underplumage consisting of button-down shirt (starch optional) and a tie. In times of dire stress, the sleeves (if long) may be rolled up and the tie loosened about half an inch. It seldom helps. The {code grinder}'s milieu is about as far from hackerdom as one can get and still touch a computer; the term connotes pity. Used of or to a {hacker}, this term is a really serious slur on the person's creative ability; it connotes a design style characterised by primitive technique, rule-boundedness, {brute force} and utter lack of imagination. Compare {card walloper}. Contrast {real programmer}. [{Jargon File}] (1994-11-11)

code grinder ::: (jargon, abuse) A suit-wearing minion of the sort hired in legion strength by banks and insurance companies in the Real World to implement payroll seldom helps. The code grinder's milieu is about as far from hackerdom as one can get and still touch a computer; the term connotes pity.Used of or to a hacker, this term is a really serious slur on the person's creative ability; it connotes a design style characterised by primitive technique, rule-boundedness, brute force and utter lack of imagination.Compare card walloper. Contrast real programmer.[Jargon File] (1994-11-11)

COMIT "language" The first string-handling and {pattern-matching} language, designed in 1957-8 for applications in {natural language} translation. The user has a workspace organised into shelves. Strings are made of constituents (words), accessed by {subscript}. A program is a set of rules, each of which has a pattern, a replacement and goto another rule. ["COMIT Programmer's Reference Manual", V.H. Yngve, MIT Press 1961]. [Sammet 1969, pp. 416-436]. (1994-11-30)

COMIT ::: The first string-handling and pattern-matching language, designed in 1957-8 for applications in natural language translation. The user has a workspace organised program is a set of rules, each of which has a pattern, a replacement and goto another rule.[COMIT Programmer's Reference Manual, V.H. Yngve, MIT Press 1961].[Sammet 1969, pp. 416-436]. (1994-11-30)

comment "programming" (Or "remark") Explanatory text embedded in program {source} (or less often data) intended to help human readers understand it. Code completely without comments is often hard to read, but code with too many comments is also bad, especially if the comments are not kept up-to-date with changes to the code. Too much commenting may mean that the code is over-complicated. A good rule is to comment everything that needs it but write code that doesn't need much of it. Comments that explain __why__ something is done and how the code relates to its environment are useful. A particularly irksome form of over-commenting explains exactly what each statement does, even when it is obvious to any reasonably competant programmer, e.g. /* Open the input file */ infd = open(input_file, O_RDONLY); (2007-02-19)

comment ::: (programming) (Or remark) Explanatory text embedded in program source (or less often data) intended to help human readers understand it.Code completely without comments is often hard to read, but too heavily commented code isn't much better, especially if the comments are not kept is over-complicated. A good rule is to comment everything that needs it but write code that doesn't need much of it.A particularly irksome form of over-commenting explains exactly what each statement does, even when it is obvious to any reasonably competant programmer, e.g. /* Open the input file */ infd = open(input_file, O_RDONLY); (1998-04-28)

comment ::: (programming) (Or remark) Explanatory text embedded in program source (or less often data) intended to help human readers understand it.Code completely without comments is often hard to read, but too heavily commented code isn't much better, especially if the comments are not kept is over-complicated. A good rule is to comment everything that needs it but write code that doesn't need much of it.A particularly irksome form of over-commenting explains exactly what each statement does, even when it is obvious to any reasonably competant programmer, e.g. /* Open the input file */infd = open(input_file, O_RDONLY); (1998-04-28)

COmmon Business Oriented Language ::: (language, business) /koh'bol/ (COBOL) A programming language for simple computations on large amounts of data, designed by the CODASYL Committee in April 1960. COBOL's natural language style is intended to be largely self-documenting. It introduced the record structure.COBOL was probably the most widely used programming language during the 1960s and 1970s. Many of the major programs that required repair or replacement due to some organisations and many old COBOL programs are still running in dinosaur shops.Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS X3.23-1974) and 1985.Many hackers regard COBOL with fear and loathing for being an evil, weak, verbose, and flabby language used by card wallopers to do boring mindless things on dinosaur mainframes. Many believe that all COBOL programmers are suits or code grinders, and would deny all knowledge of the language.Usenet newsgroup: comp.lang.cobol.[Initial Specifications for a Common Business Oriented Language DoD, US GPO, Apr 1960].(2002-02-21)

COmmon Business Oriented Language "language, business" /koh'bol/ (COBOL) A programming language for simple computations on large amounts of data, designed by the {CODASYL} Committee in April 1960. COBOL's {natural language} style is intended to be largely self-documenting. It introduced the {record} structure. COBOL was probably the most widely used programming language during the 1960s and 1970s. Many of the major programs that required repair or replacement due to {Year 2000} {software rot} issues were originally written in COBOL, and this was responsible for a short-lived increased demand for COBOL programmers. Even in 2002 though, new COBOL programs are still being written in some organisations and many old COBOL programs are still running in {dinosaur} shops. Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS X3.23-1974) and 1985. {Usenet} newsgroup: {news:comp.lang.cobol}. ["Initial Specifications for a Common Business Oriented Language" DoD, US GPO, Apr 1960]. (2002-02-21)

compiler jock ::: A programmer who specialises in writing compilers.[Jargon File] (1995-01-19)

compiler jock A programmer who specialises in writing {compilers}. [{Jargon File}] (1995-01-19)

Concert/C "language, parallel" A {parallel} extension of {ANSI C} with {asynchronous} {message passing}, developed at the {IBM} {TJWRC} in July 1993. Concert/C provides {primitives} to create and terminate {processes} and communicate between them. The programmer explicitly expresses parallelization and distribution. {1994 Announcement (http://www.cs.bu.edu/~best/courses/cs551/projects/concert.txt)}. (2013-05-05)

contract programmer ::: (job) A programmer who works on a fixed-length/temporary contract, and is often specialised in writing certain types of code.A contract programmer may be independent or they may work in a supplier's professional services department, providing consultancy and programming services for the supplier's products.(2004-03-09)

contract programmer "job, programming" A {programmer} who works on a fixed-length or temporary contract, and is often employed to write certain types of code or to work on a specific project. Despite the fact that contractors usually cost more than hiring a permanent employee with the same skills, it is common for organisations to employ them for extended periods, sometimes renewing their contracts for many years, due to lack of certainty about the future or simple lack of planning. A contract programmer may be independent or they may work in a supplier's {professional services} department, providing consultancy and programming services for the supplier's products. (2015-03-07)

cooperative multitasking ::: (parallel, operating system) A form of multitasking where it is the responsibility of the currently running task to give up the processor to allow other tasks to run. This contrasts with pre-emptive multitasking where the task scheduler periodically suspends the running task and restarts another.Cooperative multitasking requires the programmer to place calls at suitable points in his code to allow his task to be descheduled which is not always easy If a task does not allow itself to be descheduled all other tasks on the system will appear to freeze and will not respond to user action.The advantage of cooperative multitasking is that the programmer knows where the program will be descheduled and can make sure that this will not cause unwanted than pre-emptive multitasking because of the greater control it offers over when a task may be descheduled.Cooperative multitasking is used in RISC OS, Microsoft Windows and Macintosh System 7. (1995-03-20)

cooperative multitasking "parallel, operating system" A form of {multitasking} where it is the responsibility of the currently running task to give up the processor to allow other tasks to run. This contrasts with {pre-emptive multitasking} where the task {scheduler} periodically suspends the running task and restarts another. Cooperative multitasking requires the programmer to place calls at suitable points in his code to allow his task to be {deschedule}d which is not always easy if there is no obvious top-level {main loop} or some routines run for a long time. If a task does not allow itself to be descheduled all other tasks on the system will appear to "freeze" and will not respond to user action. The advantage of cooperative multitasking is that the programmer knows where the program will be descheduled and can make sure that this will not cause unwanted interaction with other processes. Under {pre-emptive multitasking}, the scheduler must ensure that sufficient state for each process is saved and restored that they will not interfere. Thus cooperative multitasking can have lower {overheads} than pre-emptive multitasking because of the greater control it offers over when a task may be descheduled. Cooperative multitasking is used in {RISC OS}, {Microsoft Windows} and {Macintosh} {System 7}. (1995-03-20)

copybook "programming, library" (Or "copy member", "copy module") A common piece of {source code} designed to be copied into many source programs, used mainly in {IBM} {DOS} {mainframe} programming. In {mainframe} {DOS} (DOS/VS, DOS/{VSE}, etc.), the copybook was stored as a "book" in a {source} library. A library was comprised of "books", prefixed with a letter designating the language, e.g., A.name for Assembler, C.name for Cobol, etc., because {DOS} didn't support multiple libraries, private libraries, or anything. This term is commonly used by {COBOL} programmers but is supported by most {mainframe} languages. The {IBM} {OS} series did not use the term "copybook", instead it referred to such files as "libraries" implemented as "partitioned data sets" or {PDS}. Copybooks are functionally equivalent to {C} and {C++} {include} files. (1997-07-31)

C Programmer's Disease ::: (programming) The tendency of the undisciplined C programmer to set arbitrary but supposedly generous static limits on table sizes (defined, if cannot comprehend why each fix of this kind seems only to further disgruntle the user.[Jargon File](2001-12-31)

C Programmer's Disease "programming" The tendency of the undisciplined {C} programmer to set arbitrary but supposedly generous static limits on table sizes (defined, if you're lucky, by constants in header files) rather than taking the trouble to do proper dynamic storage allocation. If an application user later needs to put 68 elements into a table of size 50, the afflicted programmer reasons that he or she can easily reset the table size to 68 (or even as much as 70, to allow for future expansion) and recompile. This gives the programmer the comfortable feeling of having made the effort to satisfy the user's (unreasonable) demands, and often affords the user multiple opportunities to explore the marvellous consequences of {fandango on core}. In severe cases of the disease, the programmer cannot comprehend why each fix of this kind seems only to further disgruntle the user. [{Jargon File}] (2001-12-31)

crayon ::: 1. Someone who works on Cray supercomputers. More specifically, it implies a programmer, probably of the CDC ilk, probably male, and almost certainly wearing a tie (irrespective of gender). Systems types who have a Unix background tend not to be described as crayons.2. A computron that participates only in number crunching.3. A unit of computational power equal to that of a single Cray-1. There is a standard joke about this usage that derives from an old Crayola crayon promotional gimmick: When you buy 64 crayons you get a free sharpener.[Jargon File] (1994-10-13)

crayon 1. Someone who works on {Cray} {supercomputers}. More specifically, it implies a programmer, probably of the {CDC} ilk, probably male, and almost certainly wearing a tie (irrespective of gender). Systems types who have a {Unix} background tend not to be described as crayons. 2. A {computron} that participates only in {number crunching}. 3. A unit of computational power equal to that of a single {Cray-1}. There is a standard joke about this usage that derives from an old Crayola crayon promotional gimmick: When you buy 64 crayons you get a free sharpener. [{Jargon File}] (1994-10-13)

creationism The (false) belief that large, innovative software designs can be completely specified in advance and then painlessly magicked out of the void by the normal efforts of a team of normally talented programmers. In fact, experience has shown repeatedly that good designs arise only from evolutionary, exploratory interaction between one (or at most a small handful of) exceptionally able designer(s) and an active user population - and that the first try at a big new idea is always wrong. Unfortunately, because these truths don't fit the planning models beloved of {management}, they are generally ignored. [{Jargon File}]

crock ::: [American scatologism crock of shit] 1. An awkward feature or programming technique that ought to be made cleaner. For example, using small integers to for example, Unix make(1), which returns code 139 for a process that dies due to segfault).2. A technique that works acceptably, but which is quite prone to failure if disturbed in the least. For example, a too-clever programmer might write an completely unmodifiable structure. See kluge, brittle. The adjectives crockish and crocky, and the nouns crockishness and crockitude, are also used.[Jargon File]

crock [American scatologism "crock of shit"] 1. An awkward feature or programming technique that ought to be made cleaner. For example, using small integers to represent error codes without the program interpreting them to the user (as in, for example, Unix "make(1)", which returns code 139 for a process that dies due to {segfault}). 2. A technique that works acceptably, but which is quite prone to failure if disturbed in the least. For example, a too-clever programmer might write an assembler which mapped {instruction mnemonics} to numeric {opcodes} {algorithm}ically, a trick which depends far too intimately on the particular bit patterns of the opcodes. (For another example of programming with a dependence on actual opcode values, see {The Story of Mel}.) Many crocks have a tightly woven, almost completely unmodifiable structure. See {kluge}, {brittle}. The adjectives "crockish" and "crocky", and the nouns "crockishness" and "crockitude", are also used. [{Jargon File}]

C shell ::: (operating system) (csh) The Unix command-line interpreter shell and script language by William Joy, originating from Berkeley Unix.Unix systems up to around Unix Version 7 only had one shell - the Bourne shell, sh. Csh had better interactive features, notably command input history, allowing earlier commands to be recalled and edited (though it was still not as good as the VMS equivalent of the time).Presumably, csh's C-like syntax was intended to endear it to programmers but sadly it lacks some sh features which are useful for writing shell scripts so you need to know two different syntaxes for every shell construct.A plethora of different shells followed csh, e.g. tcsh, ksh, bash, rc, but sh and csh are the only ones which are provided with most versions of Unix. (1998-04-04)

C shell "operating system" (csh) The {Unix} {command-line interpreter} {shell} and {script language} by {William Joy}, originating from {Berkeley} {Unix}. {Unix} systems up to around {Unix Version 7} only had one shell - the {Bourne shell}, sh. Csh had better {interactive} features, notably command input {history}, allowing earlier commands to be recalled and edited (though it was still not as good as the {VMS} equivalent of the time). Presumably, csh's {C}-like {syntax} was intended to endear it to programmers but sadly it lacks some {sh} features which are useful for writing {shell scripts} so you need to know two different syntaxes for every shell construct. A plethora of different shells followed csh, e.g. {tcsh}, {ksh}, {bash}, {rc}, but sh and csh are the only ones which are provided with most versions of Unix. (1998-04-04)

CUPID ::: A graphic query language.[CUPID: A Graphic Oriented Facility for Support of Nonprogrammer Interactions with a Database, N. McDonald, PhD Thesis, CS Dept, UC Berkeley 1975].

CUPID A graphic {query language}. ["CUPID: A Graphic Oriented Facility for Support of Nonprogrammer Interactions with a Database", N. McDonald, PhD Thesis, CS Dept, UC Berkeley 1975].

Data/BASIC "language" (Or "Pick BASIC") A {BASIC}-like language with {database} capabilities, the main programming language on the {Pick OS}. ["The Data/BASIC Language - A Data Processing Language for Non-Professional Programmers", P.C. Dressen, Proc SJCC 36, AFIPS, Spring 1970]. (2001-04-30)

Data/BASIC ::: (language) (Or Pick BASIC) A BASIC-like language with database capabilities, the main programming language on the Pick OS.[The Data/BASIC Language - A Data Processing Language for Non-Professional Programmers, P.C. Dressen, Proc SJCC 36, AFIPS, Spring 1970].(2001-04-30)

data hierarchy The system of data objects which provide the {methods} for {information} storage and retrieval. Broadly, a data hierarchy may be considered to be either natural, which arises from the alphabet or syntax of the language in which the information is expressed, or machine, which reflects the facilities of the computer, both hardware and software. A natural data hierarchy might consist of {bits}, {characters}, words, phrases, sentences, paragraphs, and chapters. One might use components bound to an application, such as field, record, and file, and these would ordinarily be further specified by having {data descriptors} such as name field, address field, etc. On the other hand, a machine or software system might use {bit}, {byte}, {word}, {block}, {partition}, {channel}, and {port}. Programming languages often provide {types} or {objects} which can create data hierarchies of arbitrary complexity, thus allowing software system designers to model language structures described by the linguist to greater or lesser degree. The distinction between the natural form of data and the facilities provided by the machine may be obscure, because users force their needs into the molds provided, and programmers change machine designs. As an example, the natural data type "character" and the machine type "byte" are often used interchangeably, because the latter has evolved to meet the need of representing the former. (1995-11-03)

Datamation /day"t*-may"sh*n/ A magazine that many hackers assume all {suits} read. Used to question an unbelieved quote, as in "Did you read that in "Datamation?"" It used to publish something hackishly funny every once in a while, like the original paper on {COME FROM} in 1973, and Ed Post's "Real Programmers Don't Use Pascal" ten years later, but it has since become much more exclusively {suit}-oriented and boring. [{Jargon File}]

data set organization "operating system, storage" (DSORG) An {IBM} term for {file} structure. These include PS {physical sequential}, DA {direct access}, IS {indexed sequential}, PO {partitioned} (a library). This system dates from {OS/360}, and breaks down beginning with {VSAM} and {VTAM}, where it is no longer applied. Sequential and indexed data sets can be accessed using either a "basic" or a "queued" "access method." For example a DSORG=PS file can use either BSAM (basic sequential access method) or QSAM (queued sequential access method). It can also be processed as a {direct file} using BDAM. Likewise a library can be processed using BPAM (basic partitioned access method), BSAM, QSAM, or BDAM. DSORG and access method are somewhat, but not completely, orthogonal. The "basic" access method deals with {physical blocks} rather than {records}, and usually provides more control over the specific {device}. Each I/O operation using the "basic" access method reads or writes a single block. A "basic" read or write starts an {asynchronous} I/O operation, and the programmer is responsible for waiting for completion and checking for errors. The "queued" access method deals with {logical records} and provides blocking and deblocking services. It is "queued" because it provides {read-ahead} and {write-behind} services. While a program is processing records in one input block, for example, QSAM may be reading one or more blocks ahead. Queued "get" or "put" operations are synchronous as far as the programmer is concerned. The operation is complete when the next logical record has been successfully processed. EXCP ({Execute Channel Program}) is a lower-level method of accessing data. IBM manuals usually named "Data Administration Guide", e.g. SC26-4505-1 for MVS/ESA DFP 3.1, provide more detail about data set organizations and access methods. (2005-08-08)

data set organization ::: (operating system, storage) (DSORG) An IBM term for file structure. These include PS physical sequential, DA direct, IS indexed sequential, PO partitioned (a library). This system dates from OS/360, and breaks down beginning with VSAM and VTAM, where it is no longer applied.Sequential and indexed data sets can be accessed using either a basic or a queued access method. For example a DSORG=PS file can use either BSAM (basic using BPAM (basic partitioned access method), BSAM, QSAM, or BDAM. DSORG and access method are somewhat, but not completely, orthogonal.The basic access method deals with physical blocks rather than records, and usually provides more control over the specific device. Each I/O operation using write starts an asynchronous I/O operation, and the programmer is responsible for waiting for completion and checking for errors.The queued access method deals with logical records and provides blocking and deblocking services. It is queued because it provides read-ahead and operations are synchronous as far as the programmer is concerned. The operation is complete when the next logical record has been successfully processed.EXCP (Execute Channel Program) is a lower-level method of accessing data.IBM manuals usually named Data Administration Guide, e.g. SC26-4505-1 for MVS/ESA DFP 3.1, provide more detail about data set organizations and access methods.(2005-08-08)

dead code "programming" (Or "infeasible path") Any part of a {program} that can never be executed because no {control flow} path leads to it. This may be because it is guarded by a {control structure} that will always {transfer control} somewhere else, e.g. if (false) {  

dead code ::: (programming) (Or infeasible path, grunge) Any part of a program that can never be accessed because all calls to it have been removed, or because it simply means that an *extremely* defensive programmer has inserted can't happen tests which really can't happen - yet.Synonym grunge.[Jargon File] (1996-05-22)

debugger "tool, programming" A {tool} used by a {programmer} to monitor and control a program he is trying to fix. The most important functions of a debugger are {tracing}, stepping, {breakpoints} and {watches}. Tracing displays a step-by-step report on what {statement} the program is currently executing, allowing the programmer to follow the {flow of control} through {if statements}, {loops (loop)}, {subroutine} calls, etc. {Breakpoints} and {watches} both pause execution of the program and return control to the debugger under certain conditions. A {breakpoint} triggers when execution reaches a particular {statement} in the program and a {watch} triggers whenever a specific variable is modified. Stepping is like a breakpoint on every statement, often with the option to step "into" or "over" a {subroutine}, i.e. continue stepping through the statements of the subroutine or just execute it without pausing and resume stepping when it returns. Whenever control returns to the debugger it lets the programmer ask to see the values of {variables}, and possibly modify them, before resuming execution. Some debuggers can be set to automatically perform some action like display a variable value and resume. A debugger can interact with the target program in different ways. Some debuggers require the program to be loaded into the debugger which may then modify or "instrument" the program for debugging. Others can "attach" to a program that is already running. Some are built into the normal program execution environment (e.g. an {interpreter}) and can be set to run under certain conditions, e.g. errors. Early debuggers such as {Unix}'s {adb} only knew about the compiled executable code so sometimes debugging had to be done at the level of {machine code} instructions and numerical memory locations. If you were lucky, the debugger could access the program's {symbol table} and display the original names of subroutines and variables. Sometimes this required the program to be "compiled for debugging". Since compiling every program for debugging would add significantly to the size of a {distribution} of a whole {operating system}, it is common for programs to be distributed without debugging support but for individual programs to be made available with it. A major advance in debuggers was source-level debugging. This gives the programmer a view of their {source code} annotated with breakpoints and a pointer to the statement currently being executed. Such a view is commonly part of an {integrated development environment} like {Visual Basic}. (2014-08-23)

debugging an empty file "programming, humour" A humourous definition of {programming} that considers a complete absence of any code as a {bug} to be fixed. {test-driven development} proceeds by the programmer writing tests for code that doesn't exist yet, which could be described as testing an empty file. (2012-05-01)

debugging by printf "programming" The {debugging} technique where the programmer inserts print statements into a program so that when run the program leaves a "trail of {breadcrumbs}" allowing him to see which parts were executed. The information output may just be a short string to indicate that a particular point in the code has been reached or it might be a complete {stack trace}. The output typically just goes to the window or terminal in which the program is running or may be written to a log file. {printf} is the standard {C} print function, other languages would use different names. (2007-03-08)

dec "programming" /dek/ decrement, decrease by one. Especially used by {assembly language} programmers, as many assembly languages have a "dec" {mnemonic}. Opposite: {inc}. [{Jargon File}]

demo /de'moh/ 1. A demonstration of a product, often of an early version or prototype. A demo is a far more effective way of inducing bugs to manifest themselves than any number of {test} runs, especially when important people are watching. 2. {demo version}. 3. A program written to demonstrate the programmer's coding ability and/or the power of the computer it runs on. Such demos are nearly always written in {machine code} and traditionally feature scrolling text about the author, his friends, his code and anything else he fancies and animated graphics. [{Jargon File}] (1994-11-04)

demo ::: /de'moh/ 1. A demonstration of a product, often of an early version or prototype. A demo is a far more effective way of inducing bugs to manifest themselves than any number of test runs, especially when important people are watching.2. demo version.3. A program written to demonstrate the programmer's coding ability and/or the power of the computer it runs on. Such demos are nearly always written in machine code and traditionally feature scrolling text about the author, his friends, his code and anything else he fancies and animated graphics.[Jargon File] (1994-11-04)

DeMorgan's theorem ::: (logic) A logical theorem which states that the complement of a conjunction is the disjunction of the complements or vice versa. In symbols: not (x and y) = (not x) or (not y) not (x or y) = (not x) and (not y) combinations of more than two terms in the obvious way.The same laws also apply to sets, replacing logical complement with set complement, conjunction (and) with set intersection, and disjunction (or) with set union.A (C) programmer might use this to re-write if (!foo && !bar) ... as do the same, leaving the programmer free to use whichever form seemed clearest). (1995-12-14)

DeMorgan's theorem "logic" A logical {theorem} which states that the {complement} of a {conjunction} is the {disjunction} of the complements or vice versa. In symbols: not (x and y) = (not x) or (not y) not (x or y) = (not x) and (not y) E.g. if it is not the case that I am tall and thin then I am either short or fat (or both). The theorem can be extended to combinations of more than two terms in the obvious way. The same laws also apply to sets, replacing logical complement with set complement, conjunction ("and") with set intersection, and disjunction ("or") with set union. A ({C}) programmer might use this to re-write if (!foo && !bar) ... as if (!(foo || bar)) ... thus saving one operator application (though an {optimising compiler} should do the same, leaving the programmer free to use whichever form seemed clearest). (1995-12-14)

developer {programmer}

DirectX "programming, hardware" A {Microsoft} programming interface {standard}, first included with {Windows 95}. DirectX gives (games) programmers a standard way to gain direct access to enhanced hardware features under Windows 95 instead of going via the Windows 95 {GDI}. Some DirectX code runs faster than the equivalent under {MS DOS}. DirectX promises performance improvements for graphics, sound, video, 3D, and network capabilites of games, but only where both hardware and software support DirectX. DirectX 2 introduced the Direct3D interface. Version 5 was current at 1998-02-01. Version 8.1 is included in {Windows XP}. {(http://microsoft.com/directx/)}. (2001-12-31)

DirectX ::: (programming, hardware) A Microsoft programming interface standard, first included with Windows 95. DirectX gives (games) programmers a standard way to going via the Windows 95 GDI. Some DirectX code runs faster than the equivalent under MS DOS.DirectX promises performance improvements for graphics, sound, video, 3D, and network capabilites of games, but only where both hardware and software support DirectX.DirectX 2 introduced the Direct3D interface. Version 5 was current at 1998-02-01. Version 8.1 is included in Windows XP.Current version: 8.1 (as of 2001-12-31). .(2001-12-31)

ECL ::: 1. (hardware) Emitter Coupled Logic.2. (language) Extensible CL.Wegbreit, ca 1970.[The ECL Programming System, B. Wegbreit, Proc FJCC 39:253-261, AFIPS (Fall 1971)].[ECL Programmer's Manual, B. Wegbreit, TR 23-74, Harvard U (Dec 1974)]. (1994-11-09)

ECL 1. "hardware" {Emitter Coupled Logic}. 2. "language" Extensible {CL}. Wegbreit, ca 1970. ["The ECL Programming System", B. Wegbreit, Proc FJCC 39:253-261, AFIPS (Fall 1971)]. ["ECL Programmer's Manual", B. Wegbreit, TR 23-74, Harvard U (Dec 1974)]. (1994-11-09)

Eden Programming Language "language" (EPL) A language developed at the {University of Washington}, based on {Concurrent Euclid} and used with the {Eden} distributed operating system. EPL influenced {Emerald} and {Distributed Smalltalk}. ["EPL Programmer's Guide", A. Black et al, U Washington June 1984]. {Eden}

Edward Yourdon "person" A {software engineering} consultant, widely known as the developer of the "{Yourdon method}" of structured systems analysis and design, as well as the co-developer of the Coad/Yourdon method of {object-oriented analysis} and design. He is also the editor of three software journals - American Programmer, Guerrilla Programmer, and Application Development Strategies - that analyse software technology trends and products in the United States and several other countries around the world. Ed Yourdon received a B.S. in Applied Mathematics from {MIT}, and has done graduate work at MIT and at the Polytechnic Institute of New York. He has been appointed an Honorary Professor of {Information Technology} at Universidad CAECE in Buenos Aires, Argentina and has received numerous honors and awards from other universities and professional societies around the world. He has worked in the computer industry for 30 years, including positions with {DEC} and {General Electric}. Earlier in his career, he worked on over 25 different {mainframe} computers, and was involved in a number of pioneering computer projects involving {time-sharing} and {virtual memory}. In 1974, he founded the consulting firm, {Yourdon, Inc.}. He is currently immersed in research in new developments in software engineering, such as object-oriented software development and {system dynamics} modelling. Ed Yourdon is the author of over 200 technical articles; he has also written 19 computer books, including a novel on {computer crime} and a book for the general public entitled Nations At Risk. His most recent books are Object-Oriented Systems Development (1994), Decline and Fall of the American Programmer (1992), Object-Oriented Design (1991), and Object-Oriented Analysis (1990). Several of his books have been translated into Japanese, Russian, Chinese, Spanish, Portugese, Dutch, French, German, and other languages, and his articles have appeared in virtually all of the major computer journals. He is a regular keynote speaker at major computer conferences around the world, and serves as the conference Chairman for Digital Consulting's SOFTWARE WORLD conference. He was an advisor to Technology Transfer's research project on software industry opportunities in the former Soviet Union, and a member of the expert advisory panel on CASE acquisition for the U.S. Department of Defense. Mr. Yourdon was born on a small planet at the edge of one of the distant red-shifted galaxies. He now lives in the Center of the Universe (New York City) with his wife, three children, and nine Macintosh computers, all of which are linked together through an Appletalk network. (1995-04-16)

EML ::: Extended ML. A language for formally specifying SML programs.[Formal Program Development in Extended ML for the Working Programmer, D. Sannella, Proc 3rd BCS/FACS Workshop on Refinement, Springer 1990].

EML Extended ML. A language for formally specifying {SML} programs. ["Formal Program Development in Extended ML for the Working Programmer", D. Sannella, Proc 3rd BCS/FACS Workshop on Refinement", Springer 1990].

EPL ::: 1. Early PL/I.2. Experimental Programming Language.3. Eden Programming Language. U Washington. Based on Concurrent Euclid and used with the Eden distributed OS. Influenced Emerald and Distributed Smalltalk. EPL Programmer's Guide, A. Black et al, U Washington June 1984.4. Equational Programming Language. Szymanski, RPI. Equational language for parallel scientific applications. EPL - Parallel Programming with Recurrent Equations, B. Szymanski in Parallel Functional Languages and Compilers, B. Szymanski et al, A-W 1991.

error ::: 1. A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition.2. (programming) A mental mistake made by a programmer that may result in a program fault.3. (verb) What a program does when it stops as result of a programming error.(2000-03-28)

error 1. A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. 2. "programming" A mental mistake made by a programmer that may result in a program {fault}. 3. (verb) What a program does when it stops as result of a programming error. (2000-03-28)

Excalibur bug "humour, programming" The legendary bug that, despite repeated valliant attempts, none but the true king of all programmers can fix. Named after the sword in the stone in the legend of King Arthur. [{Dodgy Coder (http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}]. (2013-03-20)

exception handler ::: Special code which is called when an exception occurs during the execution of a program. If the programmer does not provide a handler for a given exception, a built-in system exception handler will usually be called resulting in abortion of the program run and some kind of error indication being returned to the user.Examples of exception handler mechanisms are Unix's signal calls and Lisp's catch and throw. (1994-10-31)

exception handler Special code which is called when an {exception} occurs during the execution of a program. If the programmer does not provide a handler for a given exception, a built-in system exception handler will usually be called resulting in abortion of the program run and some kind of error indication being returned to the user. Examples of exception handler mechanisms are {Unix}'s signal calls and {Lisp}'s {catch} and {throw}. (1994-10-31)

Execute Channel Program ::: (operating system) (EXCP) An IBM system for low-level file access, where the programmer is completely responsible for providing a list of device-specific (access invalid memory or outside of file extents) and then schedule them for execution.(2005-08-08)

Execute Channel Program "operating system" (EXCP) An {IBM} system for low-level file access, where the programmer is completely responsible for providing a list of device-specific "channel comands" to be executed by {I/O channels}, {control units} and/or {devices}. The {operating system} will simply check the "{CCW}" chains for security purposes (access invalid memory or outside of {file extents}) and then schedule them for execution. (2005-08-08)

EXE /eks'ee/ or /eek'see/ or /E-X-E/ An executable binary file. Some operating systems (notably {MS-DOS}, VMS, and TWENEX) use the extension .EXE to mark such files. This usage is also occasionally found among Unix programmers even though Unix executables don't have any required suffix. [{Jargon File}]

EXE ::: /eks'ee/ or /eek'see/ or /E-X-E/ An executable binary file. Some operating systems (notably MS-DOS, VMS, and TWENEX) use the extension .EXE to mark such files. This usage is also occasionally found among Unix programmers even though Unix executables don't have any required suffix.[Jargon File]

exit 1. "programming" A {library function} in the {C} and {Unix} {run-time library} that causes the program to terminate and return control to the {shell}. The alternative to calling "exit" is simply to "fall off the end" of the program or its top-level, {main}, routine. Equivalent functions, possibly with different names, exist in pretty much every programming language, e.g. "exit" in {Microsoft DOS} or "END" in {BASIC}. On exit, the {run-time system} closes open files and releases other resources. An {exit status} code (a small integer, with zero meaning OK and other values typically indicating some kind of error) can be passed as the only argument to "exit"; this will be made available to the shell. Some languages allow the programmer to set up exit handler code which will be called before the standard system clean-up actions. 2. Any point in a piece of code where control is returned to the caller, possibly activating one or more user-provided exit handlers. This might be a {return} statement, exit call (in sense 1 above) or code that raises an error condition (either intentionally or unintentionally). If the exit is from the top-level routine then such a point would typically terminate the whole program, as in sense 1. (2008-05-15)

explicit parallelism ::: A feature of a programming language for a parallel processing system which allows or forces the programmer to annotate his program to indicate which parts decides automatically which parts to run in parallel) but may allow higher performance.

explicit parallelism A feature of a programming language for a {parallel processing} system which allows or forces the programmer to annotate his program to indicate which parts should be executed as independent parallel tasks. This is obviously more work for the programmer than a system with {implicit parallelism} (where the system decides automatically which parts to run in parallel) but may allow higher performance.

feature creature ::: [Possibly from slang creature feature for a horror movie] 1. One who loves to add features to designs or programs, perhaps at the expense of coherence, concision or taste.2. Alternately, a mythical being that induces otherwise rational programmers to perpetrate such crocks. See also feeping creaturism, creeping featurism.[Jargon File]

feature creature [Possibly from slang "creature feature" for a horror movie] 1. One who loves to add features to designs or programs, perhaps at the expense of coherence, concision or {taste}. 2. Alternately, a mythical being that induces otherwise rational programmers to perpetrate such crocks. See also {feeping creaturism}, {creeping featurism}. [{Jargon File}]

FEL ::: Function Equation Language. Programs are sets of definitions. Sequences are lists stored in consecutive memory. FEL Programmer's Guide, R. M. Keller, AMPS TR 7, U Utah, March 1982.

FEL Function Equation Language. Programs are sets of definitions. Sequences are lists stored in consecutive memory. "FEL Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March 1982.

firewall code 1. The code you put in a system (say, a telephone switch) to make sure that the users can't do any damage. Since users always want to be able to do everything but never want to suffer for any mistakes, the construction of a firewall is a question not only of defensive coding but also of interface presentation, so that users don't even get curious about those corners of a system where they can burn themselves. 2. Any sanity check inserted to catch a {can't happen} error. Wise programmers often change code to fix a bug twice: once to fix the bug, and once to insert a firewall which would have arrested the bug before it did quite as much damage. [{Jargon File}]

firewall code ::: 1. The code you put in a system (say, a telephone switch) to make sure that the users can't do any damage. Since users always want to be able to do everything that users don't even get curious about those corners of a system where they can burn themselves.2. Any sanity check inserted to catch a can't happen error. Wise programmers often change code to fix a bug twice: once to fix the bug, and once to insert a firewall which would have arrested the bug before it did quite as much damage.[Jargon File]

FLAP ::: A symbolic mathematics package for IBM 360.[FLAP Programmer's Manual, A.H. Morris Jr., TR-2558 (1971) US Naval Weapons Lab].[Sammet 1969, p. 506].[Jargon File] (1994-10-17)

FLAP A {symbolic mathematics} package for {IBM 360}. ["FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971) US Naval Weapons Lab]. [Sammet 1969, p. 506]. [{Jargon File}] (1994-10-17)

flow chart "programming" An archaic form of visual control-flow specification employing arrows and "speech balloons" of various shapes. Hackers never use flow charts, consider them extremely silly, and associate them with {COBOL} programmers, {card wallopers}, and other lower forms of life. This attitude follows from the observations that flow charts (at least from a hacker's point of view) are no easier to read than code, are less precise, and tend to fall out of sync with the code (so that they either obfuscate it rather than explaining it, or require extra maintenance effort that doesn't improve the code). See also {Program Design Language}. [{Jargon File}] (1994-12-01)

flow chart ::: (programming) An archaic form of visual control-flow specification employing arrows and speech balloons of various shapes.Hackers never use flow charts, consider them extremely silly, and associate them with COBOL programmers, card wallopers, and other lower forms of life. This than explaining it, or require extra maintenance effort that doesn't improve the code).See also Program Design Language.[Jargon File] (1994-12-01)

flush "data" To delete something, usually superfluous, or to abort an operation. "Flush" was standard {ITS} terminology for aborting an output operation. One spoke of the text that would have been printed, but was not, as having been flushed. It is speculated that this term arose from a vivid image of flushing unwanted characters by hosing down the internal output buffer, washing the characters away before they could be printed. Compare {drain}. 2. To force temporarily buffered data to be written to more permanent memory. E.g. flushing buffered disk writes to disk, as with {C}'s {standard I/O} library "fflush(3)" call. This sense was in use among {BLISS} programmers at {DEC} and on {Honeywell} and {IBM} machines as far back as 1965. Another example of this usage is flushing a {cache} on a {context switch} where modified data stored in the cace which belongs to one processes must be written out to main memory so that the cache can be used by another process. [{Jargon File}] (2005-07-18)

FORMAL ::: 1. FORmula MAnipulation Language.An early Fortran extension for symbolic mathematics.[FORMAL, A Formula Manipulation Language, C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971)].2. A data manipulation language for nonprogrammers from IBM LASC.[FORMAL: A Forms-Oriented and Visual-Directed Application System, N.C. Shu, IEEE Computer 18(8):38-49 (1985)]. (1994-12-06)

FORMAL 1. FORmula MAnipulation Language. An early {Fortran} extension for {symbolic mathematics}. ["FORMAL, A Formula Manipulation Language", C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971)]. 2. A data manipulation language for nonprogrammers from {IBM} {LASC}. ["FORMAL: A Forms-Oriented and Visual-Directed Application System", N.C. Shu, IEEE Computer 18(8):38-49 (1985)]. (1994-12-06)

fudge factor ::: A value or parameter that is varied in an ad hoc way to produce the desired result. The terms tolerance and slop are also used, though these usually adjusted incorrectly by programmers who don't fully understand their import. See also coefficient of X.

fudge factor A value or parameter that is varied in an ad hoc way to produce the desired result. The terms "tolerance" and {slop} are also used, though these usually indicate a one-sided leeway, such as a buffer that is made larger than necessary because one isn't sure exactly how large it needs to be, and it is better to waste a little space than to lose completely for not having enough. A fudge factor, on the other hand, can often be tweaked in more than one direction. A good example is the "fuzz" typically allowed in {floating-point} calculations: two numbers being compared for equality must be allowed to differ by a small amount; if that amount is too small, a computation may never terminate, while if it is too large, results will be needlessly inaccurate. Fudge factors are frequently adjusted incorrectly by programmers who don't fully understand their import.

gang bang The use of large numbers of loosely coupled programmers in an attempt to wedge a great many features into a product in a short time. Though there have been memorable gang bangs (e.g. that over-the-weekend assembler port mentioned in Steven Levy's "Hackers"), most are perpetrated by large companies trying to meet deadlines; the inevitable result is enormous buggy masses of code entirely lacking in {orthogonal}ity. When market-driven managers make a list of all the features the competition has and assign one programmer to implement each, the probability of maintaining a coherent (or even functional) design goes infinitesimal. See also {firefighting}, {Mongolian Hordes technique}, {Conway's Law}. [{Jargon File}]

gang bang ::: The use of large numbers of loosely coupled programmers in an attempt to wedge a great many features into a product in a short time. Though there have been probability of maintaining a coherent (or even functional) design goes infinitesimal. See also firefighting, Mongolian Hordes technique, Conway's Law.[Jargon File]

GCOS "operating system" /jee'kohs/ An {operating system} developed by {General Electric} from 1962; originally called GECOS (the General Electric Comprehensive Operating System). The GECOS-II operating system was developed by {General Electric} for the 36-bit {GE-635} in 1962-1964. Contrary to rumour, GECOS was not cloned from {System/360} [{DOS/360}?] - the GE-635 architecture was very different from the {IBM 360} and GECOS was more ambitious than DOS/360. GE Information Service Divsion developed a large special multi-computer system that was not publicised because they did not wish {time sharing} customers to challenge their bills. Although GE ISD was marketing {DTSS} - the first commercial time sharing system - GE Computer Division had no license from Dartmouth and GE-ISD to market it to external customers, so they designed a time-sharing system to sell as a standard part of GECOS-III, which replaced GECOS-II in 1967. GECOS TSS was more general purpose than DTSS, it was more a programmer's tool (program editing, e-mail on a single system) than a BASIC TSS. The {GE-645}, a modified 635 built by the same people, was selected by {MIT} and {Bell} for the {Multics} project. Multics' infancy was as painful as any infancy. Bell pulled out in 1969 and later produced {Unix}. After the buy-out of GE's computer division by {Honeywell}, GECOS-III was renamed GCOS-3 (General Comprehensive Operating System). Other OS groups at Honeywell began referring to it as "God's Chosen Operating System", allegedly in reaction to the GCOS crowd's uninformed and snotty attitude about the superiority of their product. [Can anyone confirm this?] GCOS won and this led in the orphaning and eventual death of Honeywell {Multics}. Honeywell also decided to launch a new product line called Level64, and later DPS-7. It was decided to mainatin, at least temporarily, the 36-bit machine as top of the line, because GCOS-3 was so successfull in the 1970s. The plan in 1972-1973 was that GCOS-3 and Multics should converge. This plan was killed by Honeywell management in 1973 for lack of resources and the inability of Multics, lacking {databases} and {transaction processing}, to act as a business operating system without a substantial reinvestment. The name "GCOS" was extended to all Honeywell-marketed product lines and GCOS-64, a completely different 32-bit operating system, significanctly inspired by Multics, was designed in France and Boston. GCOS-62, another different 32-bit low-end DOS level was designed in Italy. GCOS-61 represented a new version of a small system made in France and the new {DPS-6} 16-bit {minicomputer} line got GCOS-6. When the intended merge between GCOS-3 and Multics failed, the Phoenix designers had in mind a big upgrade of the architecture to introduce {segmentation} and {capabilities}. GCOS-3 was renamed GCOS-8, well before it started to use the new features which were introduced in next generation hardware. The GCOS licenses were sold to the Japanese companies {NEC} and {Toshiba} who developed the Honeywell products, including GCOS, much further, surpassing the {IBM 3090} and {IBM 390}. When Honeywell decided in 1984 to get its top of the range machines from NEC, they considered running Multics on them but the Multics market was considered too small. Due to the difficulty of porting the ancient Multics code they considered modifying the NEC hardware to support the Multics compilers. GCOS3 featured a good {Codasyl} {database} called IDS (Integrated Data Store) that was the model for the more successful {IDMS}. Several versions of transaction processing were designed for GCOS-3 and GCOS-8. An early attempt at TP for GCOS-3, not taken up in Europe, assumed that, as in {Unix}, a new process should be started to handle each transaction. IBM customers required a more efficient model where multiplexed {threads} wait for messages and can share resources. Those features were implemented as subsystems. GCOS-3 soon acquired a proper {TP monitor} called Transaction Driven System (TDS). TDS was essentially a Honeywell development. It later evolved into TP8 on GCOS-8. TDS and its developments were commercially successful and predated IBM {CICS}, which had a very similar architecture. GCOS-6 and GCOS-4 (ex-GCOS-62) were superseded by {Motorola 68000}-based {minicomputers} running {Unix} and the product lines were discontinued. In the late 1980s Bull took over Honeywell and Bull's management chose Unix, probably with the intent to move out of hardware into {middleware}. Bull killed the Boston proposal to port Multics to a platform derived from DPS-6. Very few customers rushed to convert from GCOS to Unix and new machines (of CMOS technology) were still to be introduced in 1997 with GCOS-8. GCOS played a major role in keeping Honeywell a dismal also-ran in the {mainframe} market. Some early Unix systems at {Bell Labs} used GCOS machines for print spooling and various other services. The field added to "/etc/passwd" to carry GCOS ID information was called the "{GECOS field}" and survives today as the "pw_gecos" member used for the user's full name and other human-ID information. [{Jargon File}] (1998-04-23)

GCOS ::: (operating system) /jee'kohs/ An operating system developed by General Electric from 1962; originally called GECOS (the General Electric Comprehensive Operating System).The GECOS-II operating system was developed by General Electric for the 36-bit GE-635 in 1962-1964. Contrary to rumour, GECOS was not cloned from System/360 [DOS/360?] - the GE-635 architecture was very different from the IBM 360 and GECOS was more ambitious than DOS/360.GE Information Service Divsion developed a large special multi-computer system that was not publicised because they did not wish time sharing customers to GECOS TSS was more general purpose than DTSS, it was more a programmer's tool (program editing, e-mail on a single system) than a BASIC TSS.The GE-645, a modified 635 built by the same people, was selected by MIT and Bell for the Multics project. Multics' infancy was as painful as any infancy. Bell pulled out in 1969 and later produced Unix.After the buy-out of GE's computer division by Honeywell, GECOS-III was renamed GCOS-3 (General Comprehensive Operating System). Other OS groups at Honeywell their product. [Can anyone confirm this?] GCOS won and this led in the orphaning and eventual death of Honeywell Multics.Honeywell also decided to launch a new product line called Level64, and later DPS-7. It was decided to mainatin, at least temporarily, the 36-bit machine as lacking databases and transaction processing, to act as a business operating system without a substantial reinvestment.The name GCOS was extended to all Honeywell-marketed product lines and GCOS-64, a completely different 32-bit operating system, significanctly inspired small system made in France and the new DPS-6 16-bit minicomputer line got GCOS-6.When the intended merge between GCOS-3 and Multics failed, the Phoenix designers had in mind a big upgrade of the architecture to introduce segmentation and capabilities. GCOS-3 was renamed GCOS-8, well before it started to use the new features which were introduced in next generation hardware.The GCOS licenses were sold to the Japanese companies NEC and Toshiba who developed the Honeywell products, including GCOS, much further, surpassing the IBM 3090 and IBM 390.When Honeywell decided in 1984 to get its top of the range machines from NEC, they considered running Multics on them but the Multics market was considered too small. Due to the difficulty of porting the ancient Multics code they considered modifying the NEC hardware to support the Multics compilers.GCOS3 featured a good Codasyl database called IDS (Integrated Data Store) that was the model for the more successful IDMS.Several versions of transaction processing were designed for GCOS-3 and GCOS-8. An early attempt at TP for GCOS-3, not taken up in Europe, assumed that, as in required a more efficient model where multiplexed threads wait for messages and can share resources. Those features were implemented as subsystems.GCOS-3 soon acquired a proper TP monitor called Transaction Driven System (TDS). TDS was essentially a Honeywell development. It later evolved into TP8 on GCOS-8. TDS and its developments were commercially successful and predated IBM CICS, which had a very similar architecture.GCOS-6 and GCOS-4 (ex-GCOS-62) were superseded by Motorola 68000-based minicomputers running Unix and the product lines were discontinued.In the late 1980s Bull took over Honeywell and Bull's management choose Unix, probably with the intent to move out of hardware into middleware. Bull killed technology) are still to be introduced in 1997 with GCOS-8. GCOS played a major role in keeping Honeywell a dismal also-ran in the mainframe market.Some early Unix systems at Bell Labs used GCOS machines for print spooling and various other services. The field added to /etc/passwd to carry GCOS ID information was called the GECOS field and survives today as the pw_gecos member used for the user's full name and other human-ID information.[Jargon File] (1998-04-23)

General Magic ::: A software company based in Mountain View, California. Products released in 1994 after four years in development include: Telescript - a communications-oriented generation GUI. Motorola's Envoy, due for release in the third quarter of 1994, will use Magic Cap as its OS.What PostScript did for cross-platform, device-independent documents, Telescript aims to do for cross-platform, network-independent messaging. Telescript protects programmers from many of the complexities of network protocols.Competitors for Magic Cap include Microsoft's Windows for Pens/Winpad, PenPoint, Apple Computer's Newton Intelligence and GEOS by GeoWorks. . (1995-02-23)

General Magic A software company based in Mountain View, California. Products released in 1994 after four years in development include: {Telescript} - a communications-oriented programming language; {Magic Cap} - an {OOPS} designed for {PDAs}; and a new, third generation {GUI}. {Motorola}'s {Envoy}, due for release in the third quarter of 1994, will use {Magic Cap} as its {OS}. What {PostScript} did for cross-{platform}, device-independent documents, Telescript aims to do for cross-{platform}, network-independent messaging. Telescript protects programmers from many of the complexities of network protocols. Competitors for Magic Cap include {Microsoft}'s {Windows for Pens}/{Winpad}, {PenPoint}, {Apple Computer}'s {Newton Intelligence} and {GEOS} by {GeoWorks}. {(http://genmagic.com/)}. (1995-02-23)

Good Thing "convention" (From the 1930 Sellar and Yeatman parody "1066 And All That") Often capitalised; always pronounced as if capitalised. 1. Self-evidently wonderful to anyone in a position to notice: "The {Trailblazer}'s 19.2 K{baud} {PEP} mode with {on-the-fly} {Lempel-Ziv compression} is a Good Thing for sites relaying {netnews}". 2. Something that can't possibly have any ill side-effects and may save considerable grief later: "Removing the {self-modifying code} from that {shared library} would be a Good Thing". 3. When said of software tools or libraries, as in "{Yacc} is a Good Thing", specifically connotes that the thing has drastically reduced a programmer's work load. Opposite: {Bad Thing}, compare {big win}. [{Jargon File}] (1995-05-07)

Good Thing ::: (convention) (From the 1930 Sellar and Yeatman parody 1066 And All That) Often capitalised; always pronounced as if capitalised.1. Self-evidently wonderful to anyone in a position to notice: The Trailblazer's 19.2 Kbaud PEP mode with on-the-fly Lempel-Ziv compression is a Good Thing for sites relaying netnews.2. Something that can't possibly have any ill side-effects and may save considerable grief later: Removing the self-modifying code from that shared library would be a Good Thing.3. When said of software tools or libraries, as in Yacc is a Good Thing, specifically connotes that the thing has drastically reduced a programmer's work load.Opposite: Bad Thing, compare big win.[Jargon File] (1995-05-07)

gotcha ::: (jargon, programming) A misfeature of a system, especially a programming language or environment, that tends to breed bugs or mistakes because it both enticingly easy to invoke and completely unexpected and/or unreasonable in its outcome.For example, a classic gotcha in C is the fact that if (a=b) {code;} b into a and then executes code if a is non-zero. What the programmer probably meant was if (a==b) {code;} which executes code if a and b are equal.[Jargon File] (1995-04-17)

gotcha "jargon, programming" A {misfeature} of a system, especially a programming language or environment, that tends to breed {bugs} or mistakes because it both enticingly easy to invoke and completely unexpected and/or unreasonable in its outcome. For example, a classic gotcha in {C} is the fact that if (a=b) {code;} is syntactically valid and sometimes even correct. It puts the value of "b" into "a" and then executes "code" if "a" is non-zero. What the programmer probably meant was if (a==b) {code;} which executes "code" if "a" and "b" are equal. [{Jargon File}] (1995-04-17)

Graphical Kernel System ::: (graphics, standard) (GKS) The widely recognised standard ANSI X3.124 for graphical input/output. GKS is worked on by the ISO/IEC group JTC1/SC24. It computer graphics output devices. It provides an abstraction to save programmers from dealing with the detailed capabilities and interfaces of specific hardware.GKS defines a basic two-dimensional graphics system with: uniform input and output primitives; a uniform interface to and from a GKS metafile for storing output devices including such as printers, plotters, vector graphics devices, storage tubes, refresh displays, raster displays, and microfilm recorders. (1999-04-01)

Graphical Kernel System "graphics, standard" (GKS) The widely recognised standard {ANSI} X3.124 for graphical input/output. GKS is worked on by the {ISO}/{IEC} group {JTC1/SC24}. It provides applications programmers with standard methods of creating, manipulating, and displaying or printing computer graphics on different types of computer graphics {output devices}. It provides an abstraction to save programmers from dealing with the detailed capabilities and interfaces of specific hardware. GKS defines a basic two-dimensional graphics system with: uniform input and output {primitives}; a uniform interface to and from a {GKS metafile} for storing and transferring graphics information. It supports a wide range of graphics output devices including such as {printers}, {plotters}, {vector graphics} devices, {storage tubes}, {refresh displays}, {raster displays}, and {microfilm recorders}. (1999-04-01)

green card [after the "IBM System/360 Reference Data" card] A summary of an assembly language, even if the colour is not green. Less frequently used now because of the decrease in the use of assembly language. "I'll go get my green card so I can check the {addressing mode} for that instruction." Some green cards are actually booklets. The original green card became a yellow card when the System/370 was introduced, and later a yellow booklet. An anecdote from IBM refers to a scene that took place in a programmers' terminal room at Yorktown in 1978. A luser overheard one of the programmers ask another "Do you have a green card?" The other grunted and passed the first a thick yellow booklet. At this point the luser turned a delicate shade of olive and rapidly left the room, never to return. [{Jargon File}]

guru meditation "operating system" The {Amiga} equivalent of {Unix}'s {panic} (sometimes just called a "guru" or "guru event"). When the system crashes, a cryptic message of the form "GURU MEDITATION

hacker "person, jargon" (Originally, someone who makes furniture with an axe) 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. 3. A person capable of appreciating {hack value}. 4. A person who is good at programming quickly. 5. An expert at a particular program, or one who frequently does work using it or on it; as in "a {Unix} hacker". (Definitions 1 through 5 are correlated, and people who fit them congregate.) 6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example. 7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations. 8. (Deprecated) A malicious meddler who tries to discover sensitive information by poking around. Hence "password hacker", "network hacker". The correct term is {cracker}. The term "hacker" also tends to connote membership in the global community defined by the net (see {The Network} and {Internet address}). It also implies that the person described is seen to subscribe to some version of the {hacker ethic}. It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. Thus while it is gratifying to be called a hacker, false claimants to the title are quickly labelled as "bogus" or a "{wannabee}". 9. (University of Maryland, rare) A programmer who does not understand proper programming techniques and principles and doesn't have a Computer Science degree. Someone who just bangs on the keyboard until something happens. For example, "This program is nothing but {spaghetti code}. It must have been written by a hacker". [{Jargon File}] (1996-08-26)

hacker ::: (person, jargon) (Originally, someone who makes furniture with an axe) 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.3. A person capable of appreciating hack value.4. A person who is good at programming quickly.5. An expert at a particular program, or one who frequently does work using it or on it; as in a Unix hacker. (Definitions 1 through 5 are correlated, and people who fit them congregate.)6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.8. (Deprecated) A malicious meddler who tries to discover sensitive information by poking around. Hence password hacker, network hacker. The correct term is cracker.The term hacker also tends to connote membership in the global community defined by the net (see The Network and Internet address). It also implies that the person described is seen to subscribe to some version of the hacker ethic.It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on gratifying to be called a hacker, false claimants to the title are quickly labelled as bogus or a wannabee.9. (University of Maryland, rare) A programmer who does not understand proper programming techniques and principles and doesn't have a Computer Science example, This program is nothing but spaghetti code. It must have been written by a hacker.[Jargon File] (1996-08-26)

hello, world "programming" The canonical, minimal, first program that a programmer writes in a new {programming language} or {development environment}. The program just prints "hello, world" to {standard output} in order to verify that the programmer can successfully edit, compile and run a simple program before embarking on anything more challenging. Hello, world is the first example program in the {C} programming book, {K&R}, and the tradition has spread from there to pretty much every other language and many of their textbooks. Environments that generate an unreasonably large executable for this trivial test or which require a {hairy} compiler-linker invocation to generate it are considered bad. {Hello, World in over 400 programming languages (http://www.roesler-ac.de/wolfram/hello.htm)}. (2013-10-27)

Hermes "language" An experimental, very high level, integrated language and system from the {IBM} {Watson Research Centre}, produced in June 1990. It is designed for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an {imperative language}, {strongly typed} and is a {process-oriented} successor to {NIL}. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single {abstract machine} containing processes that communicate using calls or sends. The {compiler}, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the {operating system}. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimisation which are not present in languages which give the programmer more direct control over the machine. Hermes features {threads}, {relational tables}Hermes is, {typestate} checking, {capability}-based access and {dynamic configuration}. Version 0.8alpha patchlevel 01 runs on {RS/6000}, {Sun-4}, {NeXT}, {IBM-RT}/{BSD4.3} and includes a {bytecode compiler}, a bytecode-"C compiler and {run-time support}. {0.7alpha for Unix (ftp://software.watson.ibm.com/pub/hermes)}. E-mail: "hermes-request@watson.ibm.com", Andy Lowry "lowry@watson.ibm.com". {Usenet} newsgroup: {news:comp.lang.hermes}. ["Hermes: A Language for Distributed Computing". Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8]. (1992-03-22)

Hermes ::: (language) An experimental, very high level, integrated language and system from the IBM Watson Research Centre, produced in June 1990. It is well as for general-purpose programming. It is an imperative, strongly typed and process-oriented successor to NIL.Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single abstract machine containing processes that communicate using calls opportunities for optimisation which are not present in languages which give the programmer more direct control over the machine.Hermes features threads, relational tablesHermes is, typestate checking, capability-based access and dynamic configuration.Version 0.8alpha patchlevel 01 runs on RS/6000, Sun-4, NeXT, IBM-RT/BSD4.3 and includes a bytecode compiler, a bytecode->C compiler and run-time support. .E-mail: , Andy Lowry .Usenet newsgroup: comp.lang.hermes.[Hermes: A Language for Distributed Computing. Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8]. (1992-03-22)

hidden flag (scientific computation) An extra option added to a routine without changing the calling sequence. For example, instead of adding an explicit input variable to instruct a routine to give extra diagnostic output, the programmer might just add a test for some otherwise meaningless feature of the existing inputs, such as a negative mass. The use of hidden flags can make a program very hard to debug and understand, but is all too common wherever programs are hacked in a hurry. [{Jargon File}] (1994-11-24)

hlp ::: (filename extension) A Microsoft Windows filename extension for hypertext WinHelp files. These are in a proprietary format, and are compiled from source files written in a dialect of RTF.See also gid.Usenet newsgroup: comp.os.ms-windows.programmer.winhelp. (1997-01-30)

hlp "filename extension" A {Microsoft Windows} {filename extension} for {hypertext} {WinHelp} files. These are in a {proprietary} format, and are compiled from {source files} written in a dialect of {RTF}. See also {gid}. {Usenet} newsgroup: {news:comp.os.ms-windows.programmer.winhelp}. (1997-01-30)

hot spot ::: 1. (primarily used by C/Unix programmers, but spreading) It is received wisdom that in most programs, less than 10% of the code eats 90% of the execution time; code's central algorithm, as opposed to (say) initial set-up costs or large but infrequent I/O operations.See tune, bum, hand-hacking.2. The active location of a cursor on a bit-map display. Put the mouse's hot spot on the ON widget and click the left button.3. A screen region that is sensitive to mouse clicks, which trigger some action. Hypertext help screens are an example, in which a hot spot exists in the vicinity of any word for which additional material is available.4. In a massively parallel computer with shared memory, the one location that all 10,000 processors are trying to read or write at once (perhaps because they are all doing a busy-wait on the same lock).5. More generally, any place in a hardware design that turns into a performance bottleneck due to resource contention.[Jargon File] (1995-02-16)

hot spot 1. (primarily used by {C}/{Unix} programmers, but spreading) It is received wisdom that in most programs, less than 10% of the code eats 90% of the execution time; if one were to graph instruction visits versus code addresses, one would typically see a few huge spikes amidst a lot of low-level noise. Such spikes are called "hot spots" and are good candidates for heavy optimisation or {hand-hacking}. The term is especially used of tight loops and recursions in the code's central algorithm, as opposed to (say) initial set-up costs or large but infrequent I/O operations. See {tune}, {bum}, {hand-hacking}. 2. The active location of a cursor on a bit-map display. "Put the mouse's hot spot on the "ON" widget and click the left button." 3. A screen region that is sensitive to mouse clicks, which trigger some action. {Hypertext} help screens are an example, in which a hot spot exists in the vicinity of any word for which additional material is available. 4. In a {massively parallel} computer with {shared memory}, the one location that all 10,000 processors are trying to read or write at once (perhaps because they are all doing a {busy-wait} on the same lock). 5. More generally, any place in a hardware design that turns into a performance {bottleneck} due to resource contention. 6. {wireless hotspot}. [{Jargon File}] (1995-02-16)

HP-GL/2 "HP-GL/2 Programmer's Guide", No. 5959-9733, HP. (See PCL.)

HP-GL/2 ::: HP-GL/2 Programmer's Guide, No. 5959-9733, HP. (See PCL.)

Hungarian Notation "language, convention" A linguistic convention requiring one or more letters to be added to the start of {variable} names to denote {scope} and/or {type}. Hungarian Notation is mainly confined to {Microsoft Windows} programming environments, such as Microsoft {C}, {C++} and {Visual Basic}. It was originally devised by {Charles Simonyi}, a Hungarian, who was a senior programmer at {Microsoft} for many years. He disliked the way that names in C programs gave no clue as to the type, leading to frequent programmer errors. According to legend, fellow programmers at Microsoft, on seeing the convoluted, vowel-less variable names produced by his scheme, said, "This might as well be in Greek - or even Hungarian!". They made up the name "Hungarian notation" (possibly with "{reverse Polish notation}" in mind). Hungarian Notation is not really necessary when using a modern {strongly-typed language} as the {compiler} warns the programmer if a variable of one type is used as if it were another type. It is less useful in {object-oriented programming} languages such as {C++}, where many variables are going to be instances of {classes} and so begin with "obj". In addition, variable names are essentially only {comments}, and thus are just as susceptible to becoming out-of-date and incorrect as any other comment. For example, if a {signed} {short} {int} becomes an unsigned {long} int, the variable name, and every use of it, should be changed to reflect its new type. A variable's name should describe the values it holds. Type and scope are aspects of this, but Hungarian Notation overemphasises their importance by allocating so much of the start of the name to them. Furthermore, type and scope information can be found from the variable's declaration. Ironically, this is particularly easy in the development environments in which Hungarian Notation is typically used. {Simonyi's original monograph (http://msdn.microsoft.com/library/techart/hunganotat.htm)}. {Microsoft VB Naming Conventions (http://support.microsoft.com/support/kb/articles/Q110/2/64.asp)}. (2003-09-11)

Hungarian Notation ::: (language, convention) A linguistic convention requiring one or more letters to be added to the start of variable names to denote scope and/or type.Hungarian Notation is mainly confined to Microsoft Windows programming environments, such as Microsoft C, C++ and Visual Basic. It was originally Microsoft for many years. He disliked the way that names in C programs gave no clue as to the type, leading to frequent programmer errors.According to legend, fellow programmers at Microsoft, on seeing the convoluted, vowel-less variable names produced by his scheme, said, This might as well be in Greek - or even Hungarian!. They made up the name Hungarian notation (possibly with reverse Polish notation in mind).Hungarian Notation is not really necessary when using a modern strongly-typed language as the compiler warns the programmer if a variable of one type is used languages such as C++, where many variables are going to be instances of classes and so begin with obj.In addition, variable names are essentially only comments, and thus are just as susceptible to becoming out-of-date and incorrect as any other comment. For example, if a signed short int becomes an unsigned long int, the variable name, and every use of it, should be changed to reflect its new type.A variable's name should describe the values it holds. Type and scope are aspects of this, but Hungarian Notation overemphasises their importance by particularly easy in the development environments in which Hungarian Notation is typically used. . .(2003-09-11)

Hungry Programmers ::: (body) A group of programmers producing free software. . (1995-03-20)

Hungry Programmers "body" A group of programmers producing {free software}. {(http://hungry.com/)}. (1995-03-20)

IBM System/36 "computer" A mid-range {computer} introduced in 1983, which remained popular in the 1990s because of its low cost and high performance. Prices started in the $20k range for the small 5362 to $100+k for the expanded 5360. In 1994, IBM introduced the Advanced 36 for $9,000. The largest 5360 had 7MB of {RAM} and 1432MB of {hard disk}. The smallest 5362 had 256K of RAM and 30MB of hard disk. The Advanced 36 had 64MB of RAM and 4300MB of hard disk, but design issues limit the amount of storage that can actually be addressed by the {operating system}; underlying {microcode} allowed additional RAM to cache disk reads and writes, allowing the Advanced 36 to outperform the S/36 by 600 to 800%. There was only one operating system for the S/36: SSP ({System Support Product}). SSP consumed about 7-10MB of hard drive space. Computer programs on the S/36 reside in "libraries," and the SSP itself resides in a special system library called

IBM System/36 ::: (computer) A mid-range computer introduced in 1983, which remained popular in the 1990s because of its low cost and high performance. Prices started in the $20k range for the small 5362 to $100+k for the expanded 5360. In 1994, IBM introduced the Advanced 36 for $9,000.The largest 5360 had 7MB of RAM and 1432MB of hard disk. The smallest 5362 had 256K of RAM and 30MB of hard disk. The Advanced 36 had 64MB of RAM and 4300MB of to cache disk reads and writes, allowing the Advanced 36 to outperform the S/36 by 600 to 800%.There was only one operating system for the S/36: SSP (System Support Product). SSP consumed about 7-10MB of hard drive space. Computer programs on the S/36 reside in libraries, and the SSP itself resides in a special system library called

I didn't change anything! An aggrieved cry often heard as bugs manifest during a regression test. The {canonical} reply to this assertion is "Then it works just the same as it did before, doesn't it?" See also {one-line fix}. This is also heard from applications programmers trying to blame an obvious applications problem on an unrelated systems software change, for example a divide-by-0 fault after terminals were added to a network. Usually, their statement is found to be false. Upon close questioning, they will admit some major restructuring of the program that shouldn't have broken anything, in their opinion, but which actually {hosed} the code completely. [{Jargon File}]

implicit parallelism ::: (parallel) A feature of a programming language for a parallel processing system which decides automatically which parts to run in parallel.The best way of providing implicit parallelism is still (1995) an active research topic. The problem is to generate the right number of parallel tasks of down in house-keeping, or memory for waiting tasks runs out, too few tasks and processors are left idle.The best performance is usually achieved with explicit parallelism where the programmer can annotate his program to indicate which parts should be executed as independent parallel tasks. (1995-02-16)

implicit parallelism "parallel" A feature of a programming language for a {parallel processing} system which decides automatically which parts to run in parallel. The best way of providing implicit parallelism is still (1995) an active research topic. The problem is to generate the right number of parallel tasks of the right size (or "{granularity}"). Too many tasks and the system gets bogged down in house-keeping, or memory for waiting tasks runs out, too few tasks and processors are left idle. The best performance is usually achieved with {explicit parallelism} where the programmer can annotate his program to indicate which parts should be executed as independent parallel tasks. (1995-02-16)

implicit type conversion ::: (programming) (Or coercion) The abilty of some compilers to automatically insert type conversion functions where an expression of one type is used in a context where another type is expected.A common example is coercion of integers to reals so that an expression like sin(1) is compiled as sin(integerToReal(1)) where sin is of type Real -> Real.A coercion is usually performed automatically by the compiler whereas a cast is an explicit type conversion inserted by the programmer.See also subtype. (1997-07-28)

implicit type conversion "programming" (Or "coercion") The abilty of some {compilers} to automatically insert {type} conversion {functions} where an expression of one type is used in a context where another type is expected. A common example is coercion of {integers} to {reals} so that an expression like sin(1) is compiled as sin(integerToReal(1)) where sin is of type Real -" Real. A coercion is usually performed automatically by the compiler whereas a {cast} is an {explicit type conversion} inserted by the programmer. See also {subtype}. (1997-07-28)

inc ::: /ink/ increment, i.e. increase by one. Especially used by assembly programmers, as many assembly languages have an inc mnemonic.Antonym: dec.[Jargon File]

inc "programming" /ink/ increment, i.e. increase by one. Especially used by {assembly} programmers, as many assembly languages have an "inc" {mnemonic}. Antonym: {dec}. [{Jargon File}] (2019-07-14)

infinite loop "programming" (Or "endless loop") Where a piece of program is executed repeatedly with no hope of stopping. This is nearly always because of a {bug}, e.g. if the condition for exiting the loop is wrong, though it may be intentional if the program is controlling an {embedded system} which is supposed to run continuously until it is turned off. The programmer may also intend the program to run until interrupted by the user. An endless loop may also be used as a last-resort error handler when no other action is appropriate. This is used in some {operating system} kernels following a {panic}. A program executing an infinite loop is said to {spin} or {buzz} forever and goes {catatonic}. The program is "wound around the axle". A standard joke has been made about each generation's exemplar of the ultra-fast machine: "The Cray-3 is so fast it can execute an infinite loop in under 2 seconds!" See also {black hole}, {recursion}, {infinite loop}. [{Jargon File}] (1996-05-11)

initialise ::: (programming) To give a variable its first value. This may be done automatically by some languages or it may require explicit code by the programmer. Some languages allow initialisation to be combined with variable definition, e.g. in C: int i = 0; error, but one which compilers and automatic checkers like lint can easily detect. (1997-06-08)

initialise "programming" To give a {variable} its first value. This may be done automatically by some languages or it may require explicit code by the programmer. Some languages allow initialisation to be combined with variable definition, e.g. in {C}: int i = 0; Failing to initialise a variable before using it is a common programming error, but one which compilers and automatic checkers like {lint} can easily detect. (1997-06-08)

INTERCAL "language, humour" /in't*r-kal/ (Said by the authors to stand for "Compiler Language With No Pronounceable Acronym"). Possibly the most elaborate and long-lived joke in the history of programming languages. It was designed on 1972-05-26 by Don Woods and Jim Lyons at Princeton University. INTERCAL is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. The INTERCAL Reference Manual, describing features of horrifying uniqueness, became an underground classic. An excerpt will make the style of the language clear: It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:   DO :1 "-

INTERCAL ::: (language, humour) /in't*r-kal/ (Said by the authors to stand for Compiler Language With No Pronounceable Acronym).Possibly the most elaborate and long-lived joke in the history of programming languages. It was designed on 1972-05-26 by Don Woods and Jim Lyons at Princeton University.INTERCAL is purposely different from all other computer languages in all ways but one; it is purely a written language, being totally unspeakable. The INTERCAL Reference Manual, describing features of horrifying uniqueness, became an underground classic. An excerpt will make the style of the language clear:It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is: DO :1 -

interrupt ::: (programming) 1. An asynchronous event that suspends normal processing and temporarily diverts the flow of control through an interrupt handler routine.Interrupts may be caused by both hardware (I/O, timer, machine check) and software (supervisor, system call or trap instruction).In general the computer responds to an interrupt by storing the information about the current state of the running program; storing information to identify first-level handler may then call another handler, e.g. one associated with the particular device which generated the interrupt.2. Under MS-DOS, nearly synonymous with system call because the OS and BIOS routines are both called using the INT instruction (see interrupt list) and because programmers so often have to bypass the operating system (going directly to a BIOS interrupt) to get reasonable performance.[Jargon File] (1995-02-07)

interrupt "programming" 1. An {asynchronous} event that suspends normal processing and temporarily diverts the {flow of control} through an "{interrupt handler}" routine. Interrupts may be caused by both {hardware} (I/O, timer, machine check) and {software} (supervisor, {system call} or {trap} instruction). In general the computer responds to an interrupt by storing the information about the current state of the running program; storing information to identify the source of the interrupt; and invoking a first-level {interrupt handler}. This is usually a {kernel} level privileged process that can discover the precise cause of the interrupt (e.g. if several devices share one interrupt) and what must be done to keep operating system tables (such as the process table) updated. This first-level handler may then call another handler, e.g. one associated with the particular device which generated the interrupt. 2. Under {MS-DOS}, nearly synonymous with "{system call}" because the {OS} and {BIOS} routines are both called using the INT instruction (see {interrupt list}) and because programmers so often have to bypass the operating system (going directly to a BIOS interrupt) to get reasonable performance. [{Jargon File}] (1995-02-07)

Job Control Language ::: (language, operating system) (JCL) IBM's supremely rude script language, used to control the execution of programs in IBM OS/360's batch systems. JCL has a very fascist syntax, and some versions will, for example, barf if two spaces appear where it expects one.Most programmers confronted with JCL simply copy a working file (or card deck), changing the file names. Someone who actually understands and generates unique breeder of the crud that mangles you and me? I-B-M, J-C-L, M-o-u-s-e to the tune of the Mickey Mouse Club theme to express their opinion of the beast.As with COBOL, JCL is often used as an archetype of ugliness even by those who haven't experienced it. However, no self-respecting mainframe MVS programmer would admit ignorance of JCL.See also fear and loathing. (1999-03-03)

Job Control Language "language, operating system" (JCL) {IBM}'s supremely {rude} {script} language, used to control the execution of programs in IBM {OS/360}'s {batch} systems. JCL has a very {fascist} {syntax}, and some versions will, for example, {barf} if two spaces appear where it expects one. Most programmers confronted with JCL simply copy a working file (or {card deck}), changing the file names. Someone who actually understands and generates unique JCL is regarded with the mixed respect one gives to someone who memorises the phone book. It is reported that hackers at IBM itself sometimes sing "Who's the breeder of the crud that mangles you and me? I-B-M, J-C-L, M-o-u-s-e" to the tune of the "Mickey Mouse Club" theme to express their opinion of the beast. As with {COBOL}, JCL is often used as an archetype of ugliness even by those who haven't experienced it. However, no self-respecting {mainframe} {MVS} programmer would admit ignorance of JCL. See also {fear and loathing}. (1999-03-03)

job security "jargon" When some piece of code is written in a particularly obscure fashion, and no good reason (such as time or space optimisation) can be discovered, it is often said that the programmer was attempting to increase his job security (i.e. by making himself indispensable for maintenance). This sour joke seldom has to be said in full; if two hackers are looking over some code together and one points at a section and says "job security", the other one may just nod. [{Jargon File}] (1996-09-17)

jock ::: 1. A programmer who is characterised by large and somewhat brute-force programs.2. When modified by another noun, describes a specialist in some particular computing area. The compounds compiler jock and systems jock seem to be the best-established examples.[Jargon File] (1995-01-19)

jock 1. A programmer who is characterised by large and somewhat {brute-force} programs. 2. When modified by another noun, describes a specialist in some particular computing area. The compounds "compiler jock" and "systems jock" seem to be the best-established examples. [{Jargon File}] (1995-01-19)

JRL {J. Random} Loser. The names JRL and JRN were sometimes used as example names when discussing a kind of user ID used under {TOPS-10} and {WAITS}. They were understood to be the initials of (fictitious) programmers named "J. Random Loser" and "J. Random Nerd". For example, if one said "To log in, type log one comma jay are en" (that is, "log 1,JRN"), the listener would have understood that he should use his own computer ID in place of "JRN".

Knowledge_engineering ::: is a field of artificial intelligence (AI) that creates rules to apply to data in order to imitate the thought process of a human expert. It looks at the structure of a task or a decision to identify how a conclusion is reached. A library of problem-solving methods and the collateral knowledge used for each can then be created and served up as problems to be diagnosed by the system. The resulting software could then assist in diagnosis, trouble-shooting and solving issues either on its own or in a support role to a human agent.   :::BREAKING DOWN 'Knowledge Engineering'  Knowledge engineering sought to transfer the expertise of problem-solving human experts into a program that could take in the same data and come to the same conclusion. This approach is referred to as the transfer process and it dominated early knowledge engineering attempts. It fell out of favor, however, as scientists and programmers realized that the knowledge being used by humans in decision making is not always explicit. While many decisions can be traced back to previous experience on what worked, humans draw on parallel pools of knowledge that don’t always appear logically connected to the task at hand. Some of what CEOs and star investors refer to as gut feeling or intuitive leaps is better described as analogous reasoning and nonlinear thinking. These modes of thought don’t lend themselves to direct, step-by-step decision trees and may require pulling in sources of data that appear to cost more to bring in and process than it is worth.   The transfer process has been left behind in favor of a modeling process. Instead of attempting to follow the step-by-step process of a decision, knowledge engineering is focused on creating a system that will hit upon the same results as the expert without following the same path or tapping the same information sources. This eliminates some of the issues of tracking down the knowledge being used for nonlinear thinking, as the people doing it are often not aware of the information they are pulling on. As long as the conclusions are comparable, the model works. Once a model is consistently coming close to the human expert, it can then be refined. Bad conclusions can be traced back and debugged, and processes that are creating equivalent or improved conclusions can be encouraged.

kremvax /krem-vaks/ (Or kgbvax) Originally, a fictitious {Usenet} site at the Kremlin, named like the then large number of {Usenet} {VAXen} with names of the form foovax. Kremvax was announced on April 1, 1984 in a posting ostensibly originated there by Soviet leader Konstantin Chernenko. The posting was actually forged by Piet Beertema as an April Fool's joke. Other fictitious sites mentioned in the hoax were moskvax and {kgbvax}. This was probably the funniest of the many April Fool's forgeries perpetrated on {Usenet} (which has negligible security against them), because the notion that {Usenet} might ever penetrate the Iron Curtain seemed so totally absurd at the time. In fact, it was only six years later that the first genuine site in Moscow, demos.su, joined {Usenet}. Some readers needed convincing that the postings from it weren't just another prank. Vadim Antonov, senior programmer at Demos and the major poster from there up to mid-1991, was quite aware of all this, referred to it frequently in his own postings, and at one point twitted some credulous readers by blandly asserting that he *was* a hoax! Eventually he even arranged to have the domain's gateway site *named* kremvax, thus neatly turning fiction into truth and demonstrating that the hackish sense of humour transcends cultural barriers. Mr. Antonov also contributed some Russian-language material for the {Jargon File}. In an even more ironic historical footnote, kremvax became an electronic centre of the anti-communist resistance during the bungled hard-line coup of August 1991. During those three days the Soviet UUCP network centreed on kremvax became the only trustworthy news source for many places within the USSR. Though the sysops were concentrating on internal communications, cross-border postings included immediate transliterations of Boris Yeltsin's decrees condemning the coup and eyewitness reports of the demonstrations in Moscow's streets. In those hours, years of speculation that totalitarianism would prove unable to maintain its grip on politically-loaded information in the age of computer networking were proved devastatingly accurate - and the original kremvax joke became a reality as Yeltsin and the new Russian revolutionaries of "glasnost" and "perestroika" made kremvax one of the timeliest means of their outreach to the West. [{Jargon File}]

K&R style "programming" An ugly, obsolete, deprecated {source code} {indent style} that looks like this: if (cond) { "body" } The basic indent is eight spaces (or one tab) per level; less commonly four. It is named after {Kernighan} & {Ritchie} because the examples in {K&R} are formatted this way. It is also called "kernel style" (because the {Unix} {kernel} was written in it) or {Egyptian brackets}. This style was popular when programmers worked on small displays, or when printing code on paper, becuase it saves vertical space. It should be avoided because the opening brace is easy to miss at the end of a long condition in an "if" or "while" statement and it makes it hard to pair up braces. (2014-09-28)

L6 Bell Telephone Laboratories Low-Level Linked List Language. Ken Knowlton, 1965. List processing language, typeless. ["A Programmer's Description of L6, Bell Telephone Laboratories' Low-Level Linked List Language", K. Knowlton CACM 9(8):616-625 (Aug 1966). Sammet 1969, pp.400- 405].

L6 ::: Bell Telephone Laboratories Low-Level Linked List Language. Ken Knowlton, 1965. List processing language, typeless.[A Programmer's Description of L6, Bell Telephone Laboratories' Low-Level Linked List Language, K. Knowlton CACM 9(8):616-625 (Aug 1966). Sammet 1969, pp.400- 405].

languages of choice {C} and {Lisp}. Nearly every hacker knows one of these, and most good ones are fluent in both. Smalltalk and Prolog are also popular in small but influential communities. There is also a rapidly dwindling category of older hackers with Fortran, or even assembler, as their language of choice. They often prefer to be known as {Real Programmers}, and other hackers consider them a bit odd (see "{The Story of Mel}"). Assembler is generally no longer considered interesting or appropriate for anything but {HLL} implementation, {glue}, and a few time-critical and hardware-specific uses in systems programs. Fortran occupies a shrinking niche in scientific programming. Most hackers tend to frown on languages like {Pascal} and {Ada}, which don't give them the near-total freedom considered necessary for hacking (see {bondage-and-discipline language}), and to regard everything even remotely connected with {COBOL} or other traditional {card walloper} languages as a total and unmitigated {loss}. [{Jargon File}]

larval stage Describes a period of monomaniacal concentration on coding apparently passed through by all fledgling hackers. Common symptoms include the perpetration of more than one 36-hour {hacking run} in a given week; neglect of all other activities including usual basics like food, sleep, and personal hygiene; and a chronic case of advanced bleary-eye. Can last from 6 months to 2 years, the apparent median being around 18 months. A few so afflicted never resume a more "normal" life, but the ordeal seems to be necessary to produce really wizardly (as opposed to merely competent) programmers. See also {wannabee}. A less protracted and intense version of larval stage (typically lasting about a month) may recur when one is learning a new {OS} or programming language. [{Jargon File}]

Lasherism "jargon, algorithm" (Harvard) A program that solves a standard problem (such as the {Eight Queens Puzzle} or implementing the {life} {algorithm}) in a deliberately nonstandard way. Distinguished from a {crock} or {kluge} by the fact that the programmer did it on purpose as a mental exercise. Such constructions are quite popular in exercises such as the {Obfuscated C contest}, and occasionally in {retrocomputing}. Lew Lasher was a student at Harvard around 1980 who became notorious for such behaviour. [{Jargon File}] (1994-12-07)

League for Programming Freedom "body, legal" (LPF) A grass-roots organisation of professors, students, businessmen, programmers and users dedicated to bringing back the freedom to write programs. Once programmers were allowed to write programs using all the techniques they knew, and providing whatever features they felt were useful. Monopolies, {software patents} and {interface copyrights} have taken away freedom of expression and the ability to do a good job. "{Look and feel}" lawsuits attempt to monopolise well-known command languages; some have succeeded. Copyrights on command languages enforce gratuitous incompatibility, close opportunities for competition and stifle incremental improvements. {Software patents} are even more dangerous; they make every design decision in the development of a program carry a risk of a lawsuit, with draconian pre-trial seizure. It is difficult and expensive to find out whether the techniques you consider using are patented; it is impossible to find out whether they will be patented in the future. The League is not opposed to the legal system that Congress intended -- {copyright} on individual programs. They aim to reverse the changes made by judges in response to special interests, often explicitly rejecting the public interest principles of the Constitution. The League works to abolish the monopolies by publishing articles, talking with public officials, boycotting egregious offenders and in the future may intervene in court cases. On 1989-05-24, the League picketed {Lotus} headquarters on account of their lawsuits, and then again on 1990-08-02. These marches stimulated widespread media coverage for the issue. The League's funds are used for filing briefs; printing handouts, buttons and signs and whatever will persuade the courts, the legislators and the people. The League is a non-profit corporation, but not considered a tax-exempt charity. {LPF Home (http://progfree.org/)}. (2007-02-28)

League for Programming Freedom ::: (body) (LPF) A grass-roots organisation of professors, students, businessmen, programmers and users dedicated to bringing back the freedom to interface copyrights, have taken away our freedom of expression and our ability to do a good job.Look and feel lawsuits attempt to monopolise well-known command languages; some have succeeded. Copyrights on command languages enforce gratuitous incompatibility, close opportunities for competition, and stifle incremental improvements.Software patents are even more dangerous; they make every design decision in the development of a program carry a risk of a lawsuit, with draconian pre-trial consider using are patented; it is impossible to find out whether they will be patented in the future.The League is not opposed to the legal system that Congress intended -- copyright on individual programs. Our aim is to reverse the recent changes made by judges in response to special interests, often explicitly rejecting the public interest principles of the Constitution.The League works to abolish the new monopolies by publishing articles, talking with public officials, boycotting egregious offenders, and in the future may stimulated widespread media coverage for the issue. We welcome suggestions for other activities, as well as help in carrying them out.Membership dues in the League are $42 per year for programmers, managers and professionals; $10.50 for students; $21 for others. The League's funds will be is a non-profit corporation, but not considered a tax-exempt charity. However, for those self-employed in software, the dues can be a business expense.The League needs both activist members and members who only pay their dues. We also greatly need additional corporate members; contact us for information.Jack Larsen is President, Chris Hofstader is Secretary, and Steve Sisak is Treasurer. .Telephone: +1 (617) 243 4091.E-mail: .Address: League for Programming Freedom, 1 Kendall Square

LessTif "library" The {Hungry Programmers}' version of {OSF}/{Motif}. It will be source code compatible with Motif, meaning that the same source will compile with both libraries and work exactly the same. All the programming is being done with no reference to the header files for the motif widgets, so that LessTif can be distributed as {free software}. {(http://hungry.com/products/lesstif)}. (1995-03-20)

LessTif ::: (library) The Hungry Programmers' version of OSF/Motif. It will be source code compatible with Motif, meaning that the same source will compile with both reference to the header files for the motif widgets, so that LessTif can be distributed as free software. . (1995-03-20)

Liana "language" A {C}-like, interpretive, {object-oriented programming} language, {class} library, and integrated development environment designed specifically for development of {application programs} for {Microsoft Windows} and {Windows NT}. Designed by Jack Krupansky "Jack@BaseTechnology.com" of {Base Technology}, Liana was first released as a commercial product in August 1991. The language is designed to be as easy to use as {BASIC}, as concise as {C}, and as flexible as {Smalltalk}. The {OOP} {syntax} of {C++} was chosen over the less familiar syntax of {Smalltalk} and {Objective-C} to appeal to {C} programmers and in recognition of C++ being the leading OOP language. The syntax is a simplified subset of {C/C++}. The {semantics} are also a simplified subset of C/C++, but extended to achieve the flexibility of Smalltalk. Liana is a typeless language (like {Lisp}, {Snobol} and {Smalltalk}), which means that the datatypes of variables, function parameters, and function return values are not needed since values carry the type information. Hence, variables are simply containers for values and function parameters are simply pipes through which any type of value can flow. {Single inheritance}, but not {multiple inheritance}, is supported. {Memory management} is automatic using {reference counting}. The library includes over 150 {classes}, for {dynamic arrays}, {associative lookup} tables, windows, menus, dialogs, controls, bitmaps, cursors, icons, mouse movement, keyboard input, fonts, text and graphics display, {DDE}, and {MDI}. Liana provides flexible OOP support for Windows programming. For example, a {list box} automatically fills itself from an associated {object}. That object is not some sort of special object, but is merely any object that "behaves like" an array (i.e., has a "size" member function that returns the number of elements, a "get" function that returns the ith element, and the text for each element is returned by calling the "text" member function for the element). A related product, C-odeScript, is an embeddable application scripting language. It is an implementation of Liana which can be called from C/C++ applications to dynamically evaluate expressions and statement sequences. This can be used to offer the end-user a macro/scripting capability or to allow the C/C++ application to be customized without changing the C/C++ source code. Here's a complete Liana program which illustrates the flexibility of the language semantics and the power of the class library: main {  // Prompt user for a string.  // No declaration needed for "x" (becomes a global variable.)  x = ask ("Enter a String");  // Use "+" operator to concatenate strings. Memory  // management for string temporaries is automatic. The  // "message" function displays a Windows message box.  message ("You entered: " + x);  // Now x will take on a different type. The "ask_number"  // function will return a "real" if the user's input  // contains a decimal point or an "int" if no decimal  // point.  x = ask_number ("Enter a Number");  // The "+" operator with a string operand will  // automatically convert the other operand to a string.  message ("You entered: " + x);  // Prompt user for a Liana expression. Store it in a  // local variable (the type, string, is merely for  // documentation.)  string expr = ask ("Enter an Expression");  // Evaluate the expression. The return value of "eval"  // could be any type. The "source_format" member function  // converts any value to its source format (e.g., add  // quotes for a string.) The "class_name" member function  // return the name of the class of an object/value.  // Empty parens can be left off for member function calls.  x = eval (expr);  message ("The value of " + expr + " is " + x.source_format +    " its type is " + x.class_name); } The author explained that the "Li" of Liana stands for "Language interpreter" and liana are vines that grow up trees in tropical forests, which seemed quite appropriate for a tool to deal with the complexity of MS Windows! It is also a woman's name. ["Liana for Windows", Aitken, P., PC TECHNIQUES, Dec/Jan 1993]. ["Liana: A Language For Writing Windows Programs", Burk, R., Tech Specialist (R&D Publications), Sep 1991]. ["Liana v. 1.0." Hildebrand, J.D., Computer Language, Dec 1992]. ["Liana: A Windows Programming Language Based on C and C++", Krupansky, J., The C Users Journal, Jul 1992]. ["Writing a Multimedia App in Liana", Krupansky, J., Dr. Dobb's Journal, Winter Multimedia Sourcebook 1994]. ["The Liana Programming Language", R. Valdes, Dr Dobbs J Oct 1993, pp.50-52]. (1999-06-29)

Liana ::: (language) A C-like, interpretive, object-oriented programming language, class library, and integrated development environment designed specifically for language is designed to be as easy to use as BASIC, as concise as C, and as flexible as Smalltalk.The OOP syntax of C++ was chosen over the less familiar syntax of Smalltalk and Objective-C to appeal to C programmers and in recognition of C++ being the are also a simplified subset of C/C++, but extended to achieve the flexibility of Smalltalk.Liana is a typeless language (like Lisp, Snobol and Smalltalk), which means that the datatypes of variables, function parameters, and function return values are type of value can flow. Single inheritance, but not multiple inheritance, is supported. Memory management is automatic using reference counting.The library includes over 150 classes, for dynamic arrays, associative lookup tables, windows, menus, dialogs, controls, bitmaps, cursors, icons, mouse movement, keyboard input, fonts, text and graphics display, DDE, and MDI.Liana provides flexible OOP support for Windows programming. For example, a list box automatically fills itself from an associated object. That object is not get function that returns the ith element, and the text for each element is returned by calling the text member function for the element).A related product, C-odeScript, is an embeddable application scripting language. It is an implementation of Liana which can be called from C/C++ applications to offer the end-user a macro/scripting capability or to allow the C/C++ application to be customized without changing the C/C++ source code.Here's a complete Liana program which illustrates the flexibility of the language semantics and the power of the class library: main{ for a tool to deal with the complexity of MS Windows! It is also a woman's name.[Liana for Windows, Aitken, P., PC TECHNIQUES, Dec/Jan 1993].[Liana: A Language For Writing Windows Programs, Burk, R., Tech Specialist (R&D Publications), Sep 1991].[Liana v. 1.0. Hildebrand, J.D., Computer Language, Dec 1992].[Liana: A Windows Programming Language Based on C and C++, Krupansky, J., The C Users Journal, Jul 1992].[Writing a Multimedia App in Liana, Krupansky, J., Dr. Dobb's Journal, Winter Multimedia Sourcebook 1994].[The Liana Programming Language, R. Valdes, Dr Dobbs J Oct 1993, pp.50-52]. (1999-06-29)

Lily (LIsp LibrarY) A {C++} {class} library by Roger Sheldon "sheldon@kong.gsfc.nasa.gov" which gives C++ programmers the capability to write {Lisp}-style code. Lily's {garbage collection} mechanism is not sufficient for commercial use however and the documentation is incomplete. It is distributed under the {GNU} Library {General Public License}. Version: 0.1. {(ftp://sunsite.unc.edu/uploads/lily-0.1.tar.gz)}. (1993-11-08)

Lily ::: (LIsp LibrarY) A C++ class library by Roger Sheldon which gives C++ programmers the capability for commercial use however and the documentation is incomplete. It is distributed under the GNU Library General Public License.Version: 0.1. . (1993-11-08)

line 666 "jargon" (Christian eschatological myth) The notional line of source at which a program fails for obscure reasons, implying either that *somebody* is out to get it (when you are the programmer), or that it richly deserves to be got (when you are not). E.g. "It works when I trace through it, but seems to crash on line 666 when I run it." "What happens is that whenever a large batch comes through, mmdf dies on the Line of the Beast. Probably some twit {hard-coded} a buffer size." [{Jargon File}] (1999-03-01)

line 666 ::: (jargon) (Christian eschatological myth) The notional line of source at which a program fails for obscure reasons, implying either that *somebody* is out to get it (when you are the programmer), or that it richly deserves to be got (when you are not).E.g. It works when I trace through it, but seems to crash on line 666 when I run it. What happens is that whenever a large batch comes through, mmdf dies on the Line of the Beast. Probably some twit hard-coded a buffer size.[Jargon File] (1999-03-01)

lines of code "programming, unit" (LOC) A common measure of the size or progress of a programming project. For example, one can describe a completed project as consisting of 100,000 LOC; or one can characterise a week's progress as 5000 LOC. Using LOC as a metric of progress encourages programmers to {reinvent the wheel} or split their code into lots of short lines. (2001-05-28)

lines of code ::: (programming, unit) (LOC) A common measure of the size or progress of a programming project. For example, one can describe a completed project as consisting of 100,000 LOC; or one can characterise a week's progress as 5000 LOC.Using LOC as a metric of progress encourages programmers to reinvent the wheel or split their code into lots of short lines.(2001-05-28)

Lisp ::: (language) LISt Processing language.(Or mythically Lots of Irritating Superfluous Parentheses). Artificial Intelligence's mother tongue, a symbolic, functional, recursive language based on the ideas of lambda-calculus, variable-length lists and trees as fundamental data types and the interpretation of code as data and vice-versa.Data objects in Lisp are lists and atoms. Lists may contain lists and atoms. Atoms are either numbers or symbols. Programs in Lisp are themselves lists of functions with side-effects but there is a core of Lisp which is purely functional.All Lisp functions and programs are expressions that return values; this, together with the high memory use of Lisp, gave rise to Alan Perlis's famous quip (itself a take on an Oscar Wilde quote) that Lisp programmers know the value of everything and the cost of nothing.The original version was LISP 1, invented by John McCarthy at MIT in the late 1950s. Lisp is actually variants are quite different in detail. The dominant HLL among hackers until the early 1980s, Lisp now shares the throne with C. See languages of choice.One significant application for Lisp has been as a proof by example that most newer languages, such as COBOL and Ada, are full of unnecessary crocks. When the Right Thing has already been done once, there is no justification for bogosity in newer languages.See also Association of Lisp Users, Common Lisp, Franz Lisp, MacLisp, Portable Standard Lisp, Interlisp, Scheme, ELisp, Kamin's interpreters.[Jargon File] (1995-04-16)

Lisp "language" LISt Processing language. (Or mythically "Lots of Irritating Superfluous Parentheses"). {Artificial Intelligence}'s mother tongue, a symbolic, {functional}, {recursive} language based on the ideas of {lambda-calculus}, variable-length lists and trees as fundamental data types and the interpretation of code as data and vice-versa. Data objects in Lisp are lists and {atoms}. Lists may contain lists and atoms. Atoms are either numbers or symbols. Programs in Lisp are themselves lists of symbols which can be treated as data. Most implementations of Lisp allow functions with {side-effects} but there is a core of Lisp which is {purely functional}. All Lisp functions and programs are expressions that return values; this, together with the high memory use of Lisp, gave rise to {Alan Perlis}'s famous quip (itself a take on an Oscar Wilde quote) that "Lisp programmers know the value of everything and the cost of nothing". The original version was {LISP 1}, invented by {John McCarthy} "jmc@sail.stanford.edu" at {MIT} in the late 1950s. Lisp is actually older than any other {high level language} still in use except {Fortran}. Accordingly, it has undergone considerable change over the years. Modern variants are quite different in detail. The dominant {HLL} among hackers until the early 1980s, Lisp now shares the throne with {C}. See {languages of choice}. One significant application for Lisp has been as a proof by example that most newer languages, such as {COBOL} and {Ada}, are full of unnecessary {crocks}. When the {Right Thing} has already been done once, there is no justification for {bogosity} in newer languages. See also {Association of Lisp Users}, {Common Lisp}, {Franz Lisp}, {MacLisp}, {Portable Standard Lisp}, {Interlisp}, {Scheme}, {ELisp}, {Kamin's interpreters}. [{Jargon File}] (1995-04-16)

List Enhanced ::: (operating system, tool) An MS-DOS file browsing utility written by Vern Buerg in 1983. A former mainframe systems programmer, Buerg wrote DOS utilities mainframes. The software became an instant success, and his list utility was in use on an estimated 5 million PCs. . (1997-05-16)

List Enhanced "operating system, tool" An {MS-DOS} file browsing utility written by Vern Buerg in 1983. A former {mainframe} systems programmer, Buerg wrote DOS utilities when he began using an {IBM PC} and missed the file-scanning ability he had on mainframes. The software became an instant success, and his list utility was in use on an estimated 5 million PCs. {shareware version (http://buerg.com/ftp.html)}. (1997-05-16)

logic programming "artificial intelligence, programming, language" A {declarative}, {relational} style of programming based on {first-order logic}. The original logic programming language was {Prolog}. The concept is based on {Horn clauses}. The programmer writes a "database" of "{facts}", e.g. wet(water). ("water is wet") and "{rules}", e.g. mortal(X) :- human(X). ("X is mortal is implied by X is human"). Facts and rules are collectively known as "{clauses}". The user supplies a "{goal}" which the system attempts to prove using "{resolution}" or "{backward chaining}". This involves matching the current goal against each fact or the left hand side of each rule using "{unification}". If the goal matches a fact, the goal succeeds; if it matches a rule then the process recurses, taking each sub-goal on the right hand side of the rule as the current goal. If all sub-goals succeed then the rule succeeds. Each time a possible clause is chosen, a "{choice point}" is created on a {stack}. If subsequent {resolution} fails then control eventually returns to the choice point and subsequent clauses are tried. This is known as "{backtracking}". Clauses may contain {logic variables} which take on any value necessary to make the fact or the left hand side of the rule match a goal. Unification binds these variables to the corresponding subterms of the goal. Such bindings are associated with the {choice point} at which the clause was chosen and are undone when backtracking reaches that choice point. The user is informed of the success or failure of his first goal and if it succeeds and contains variables he is told what values of those variables caused it to succeed. He can then ask for alternative solutions. (1997-07-14)

logic programming ::: (artificial intelligence, programming, language) A declarative, relational style of programming based on first-order logic. The original logic programming language was Prolog. The concept is based on Horn clauses.The programmer writes a database of facts, e.g. wet(water). (water is wet) and rules, e.g. mortal(X) :- human(X). (X is mortal is implied by X is human). Facts and rules are collectively known as clauses.The user supplies a goal which the system attempts to prove using resolution or backward chaining. This involves matching the current goal against each taking each sub-goal on the right hand side of the rule as the current goal. If all sub-goals succeed then the rule succeeds.Each time a possible clause is chosen, a choice point is created on a stack. If subsequent resolution fails then control eventually returns to the choice point and subsequent clauses are tried. This is known as backtracking.Clauses may contain logic variables which take on any value necessary to make the fact or the left hand side of the rule match a goal. Unification binds these associated with the choice point at which the clause was chosen and are undone when backtracking reaches that choice point.The user is informed of the success or failure of his first goal and if it succeeds and contains variables he is told what values of those variables caused it to succeed. He can then ask for alternative solutions. (1997-07-14)

loop through ::: To process each element of a list of things. Hold on, I've got to loop through my paper mail. Derives from the computer-language notion of an iterative loop; programmers. ITS hackers used to say IRP over after an obscure pseudo-op in the MIDAS PDP-10 assembler.[Jargon File]

loser "jargon" An unexpectedly bad situation, program, programmer, or person. Someone who habitually loses. (Even winners can lose occasionally). Someone who knows not and knows not that he knows not. Emphatic forms are "real loser", "total loser", and "complete loser" (but not **"moby loser", which would be a contradiction in terms). See {luser}. [{Jargon File}] (1995-04-19)

loser ::: (jargon) An unexpectedly bad situation, program, programmer, or person. Someone who habitually loses. (Even winners can lose occasionally). Someone who total loser, and complete loser (but not **moby loser, which would be a contradiction in terms).See luser.[Jargon File] (1995-04-19)

LYRIC ::: Language for Your Remote Instruction by Computer. A CAI language implemented as a Fortran preprocessor.[Computer Assisted Instruction: Specification of Attributes for CAI Programs and Programmers, G.M. Silvern et al, Proc ACM 21st Natl Conf (1966)]. (1994-10-12)

LYRIC Language for Your Remote Instruction by Computer. A {CAI} language implemented as a {Fortran} {preprocessor}. ["Computer Assisted Instruction: Specification of Attributes for CAI Programs and Programmers", G.M. Silvern et al, Proc ACM 21st Natl Conf (1966)]. (1994-10-12)

mainframe programmer/analyst "job" A peson who writes and maintains business applications. He develops and supports large-scale batch or high-volume transaction environments that require {IBM/MVS} {mainframe} processing power or equivalent. He programs in business-oriented languages such as {COBOL}, {CICS}, or {fourth-generation languages}. (2004-03-12)

mainframe programmer/analyst ::: (job) A peson who writes and maintains business applications. He develops and supports large-scale batch or high-volume transaction environments that require IBM/MVS mainframe processing power or equivalent. He programs in business-oriented languages such as COBOL, CICS, or fourth-generation languages.(2004-03-12)

Mary ::: (language) An extensible, machine-oriented superset of ALGOL68 developed by Mark Rain.Mary is maintained (and used) by Kvatro Telecom AS. Although dated, it still offers a nice strongly typed 3GL with macros but without most of C's flaws.It runs on SPARC and x86 computers.Hidden on the back cover of the manual: MARY HAD A LITTLE LAMB - COERCION IMPOSSIBLE.[Mary Programmer's Reference Manual, M. Rain et al, R Unit, Trondheim Norway, 1974].[Operator Expressions in Mary, M. Rain, SIGPLAN Notices 8(1), Jan 1973]. (1998-11-10)

Mary "language" An extensible, machine-oriented superset of {ALGOL68} developed by Mark Rain. Mary is maintained (and used) by {Kvatro Telecom AS}. Although dated, it still offers a nice strongly typed {3GL} with {macros} but without most of {C}'s flaws. It runs on {SPARC} and {x86} computers. Hidden on the back cover of the manual: MARY HAD A LITTLE LAMB - COERCION IMPOSSIBLE. ["Mary Programmer's Reference Manual", M. Rain et al, R Unit, Trondheim Norway, 1974]. ["Operator Expressions in Mary", M. Rain, SIGPLAN Notices 8(1), Jan 1973]. (1998-11-10)

McG360 ::: Interactive, similar to PAL[5], for IBM 360.McG360 Programmer's Guide, RC 2693, IBM TJWRC, Nov 1969.

McG360 Interactive, similar to PAL[5], for IBM 360. "McG360 Programmer's Guide", RC 2693, IBM TJWRC, Nov 1969.

Mel Kaye "person" The hero of {The Story of Mel, a Real Programmer}. The preface to the manuals for the {Royal McBee} {LGP-30} ACT 1 ({Algebraic Compiler and Translator}) {compiler} (dated 1959) contain the following attribution from Clay S. Boswell, Jr. (apparently ACT 1's designer): I wish to acknowledge my appreciation to the many people who offered suggestions and criticisms of the ACT 1 System. In particular, Mel Kaye of Royal McBee who did the bulk of the programming. (2008-08-04)

metaphone ::: (algorithm, text) An algorithm for encoding a word so that similar sounding words encode the same. It's similar to soundex in purpose, but as it as well as more storage capacity, but neither of these requirements are usually prohibitive. It is in the public domain so it can be freely implemented.Metaphone was developed by Lawrence Philips . It is described in [Practical Algorithms for Programmers, Binstock & Rex, Addison Wesley, 1995]. (1998-12-22)

metaphone "algorithm, text" An {algorithm} for encoding a word so that similar sounding words encode the same. It's similar to {soundex} in purpose, but as it knows the basic rules of English pronunciation it's more accurate. The higher accuracy doesn't come free, though, metaphone requires more computational power as well as more storage capacity, but neither of these requirements are usually prohibitive. It is in the public domain so it can be freely implemented. Metaphone was developed by Lawrence Philips "lphilips@verity.com". It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995]. (1998-12-22)

M-expression LISP (MLISP) The original "{meta-language}" {syntax} of {Lisp}, designed by {John McCarthy} in 1962. MLISP was intended for external use in place of the parenthesised {S-expression} {syntax}. ["LISP 1.5 Programmer's Manual", J. McCarthy et al, MIT Press 1962]. (1994-11-22)

M-expression LISP ::: (MLISP) The original meta-language syntax of Lisp, designed by John McCarthy in 1962. MLISP was intended for external use in place of the parenthesised S-expression syntax.[LISP 1.5 Programmer's Manual, J. McCarthy et al, MIT Press 1962]. (1994-11-22)

Microsoft Disk Operating System "operating system" /M S doss/ (Or "MS-DOS", "PC-DOS", "{MS-DOG}", "{mess-dos}") {Microsoft Corporation}'s {clone} of the {CP/M} {disk operating system} for the {8088} {crufted} together in 6 weeks by {hacker} {Tim Paterson}, who is said to have regretted it ever since. MS-DOS is a single user {operating system} that runs one program at a time and is limited to working with one megabyte of memory, 640 kilobytes of which is usable for the {application program}. Special add-on {EMS} memory boards allow EMS-compliant software to exceed the 1 MB limit. Add-ons to DOS, such as {Microsoft Windows} and {DESQview}, take advantage of EMS and allow the user to have multiple applications loaded at once and switch between them. Numerous features, including vaguely {Unix}-like but rather broken support for subdirectories, {I/O redirection} and {pipelines}, were hacked into MS-DOS 2.0 and subsequent versions; as a result, there are two or more incompatible versions of many system calls, and MS-DOS programmers can never agree on basic things like what character to use as an option switch ("-" or "/"). The resulting mess became the highest-unit-volume {operating system} in history. It was used on many {Intel} 16 and 32 bit {microprocessors} and {IBM PC} compatibles. Many of the original DOS functions were calls to {BASIC} (in {ROM} on the original {IBM PC}), e.g. Format and Mode. People with non-IBM PCs had to buy {MS-Basic} (later called {GWBasic}). Most version of DOS came with some version of BASIC. Also know as PC-DOS or simply DOS, ignoring the fact that there were many other OSes with that name, starting in the mid-1960s with {IBM}'s first disk operating system for the {IBM 360}. [{Jargon File}] (2007-05-21)

Milarepa "tool" A {Perl} {BNF} {parser generator} by Jeffrey Kegler "jeffrey@netcom.com". Milarepa takes a source {grammar} written in a mixture of {BNF} and {Perl} and generates Perl source, which, when enclosed in a simple wrapper, parses the language described by the grammar. Milarepa is not restricted to {LRn grammars}, and the parse logic follows directly from the BNF. It handles {ambiguous grammars}, ambiguous tokens (tokens which were not positively identified by the lexer) and allows the programmer to change the start symbol. The grammar may not be {left recursive}. The input must be divided into sentences of a finite maximum length. There is no fixed distinction between {terminals} and non-terminals, that is, a symbol can both match the input AND be on the left hand side of a production. Multiple Marpa grammars are allowed in a single Perl program. Version: Prototype 1.0. Posted to comp.lang.perl. The author is seeking an FTP site to hold the software. (1993-03-17)

molly-guard /mol'ee-gard/ [University of Illinois] A shield to prevent tripping of some {Big Red Switch} by clumsy or ignorant hands. Originally used of the plexiglass covers improvised for the BRS on an IBM 4341 after a programmer's toddler daughter (named Molly) frobbed it twice in one day. Later generalised to covers over stop/reset switches on disk drives and networking equipment. [{Jargon File}]

Mongolian Hordes technique ::: (programming, jargon) (Or Chinese Army technique) Assigning a large number of inexperienced programmers to a job which would better performed by a few skilled ones. The term was first used by Dr. Fred Brooks in his book The Mythical Man-Month, Chapter 3.According to Dr. Brooks, he had in mind the vision of the Mongol Hordes sweeping across Asia and Europe when he created the term.[Jargon File] (1996-06-20)

Mongolian Hordes technique "programming, jargon" (Or "Chinese Army technique") Assigning a large number of inexperienced programmers to a job which would better performed by a few skilled ones. The term was first used by Dr. Fred Brooks in his book "{The Mythical Man-Month}", Chapter 3. According to Dr. Brooks, he had in mind the vision of the Mongol Hordes sweeping across Asia and Europe when he created the term. [{Jargon File}] (1996-06-20)

MUMPS "language" (Or "M") Massachusetts General Hospital Utility Multi-Programming System. A programming language with extensive tools for the support of {database management systems}. MUMPS was originally used for medical records and is now widely used where multiple users access the same databases simultaneously, e.g. banks, stock exchanges, travel agencies, hospitals. Early MUMPS implementations for {PDP-11} and {IBM PC} were complete {operating systems}, as well as programming languages, but current-day implementations usually run under a normal host {operating system}. A MUMPS program hardly ever explicitly performs low-level operations such as opening a file - there are programming constructs in the language that will do so implicitly, and most MUMPS programmers are not even aware of the {operating system} activity that MUMPS performs. Syntactically MUMPS has only one data-type: strings. Semantically, the language has many data-types: text strings, {binary strings}, {floating point} values, {integer} values, {Boolean} values. Interpretation of strings is done inside functions, or implicitly while applying mathematical {operators}. Since many operations involve only moving data from one location to another, it is faster to just move uninterpreted strings. Of course, when a value is used multiple times in the context of arithmetical operations, optimised implementations will typically save the numerical value of the string. MUMPS was designed for portability. Currently, it is possible to share the same MUMPS database between radically different architectures, because all values are stored as text strings. The worst an implementation may have to do is swap pairs of bytes. Such multi-CPU databases are actually in use, some offices share databases between {VAX}, {DEC Alpha}, {SUN}, {IBM PC} and {HP} {workstations}. Versions of MUMPS are available on practically all {hardware}, from the smallest ({IBM PC}, {Apple Macintosh}, {Acorn} {Archimedes}), to the largest {mainframe}. MSM ({Micronetics Standard MUMPS}) runs on {IBM PC RT} and {R6000}; DSM (Digital Standard Mumps) on the {PDP-11}, {VAX}, {DEC Alpha}, and {Windows-NT}; {Datatree MUMPS} from {InterSystems} runs on {IBM PC}; and {MGlobal MUMPS} on the {Macintosh}. Multi-{platform} versions include {M/SQL}, available from {InterSystems}, {PFCS} "mumps@pfcs.com" and {MSM}. {Greystone Technologies}' GT/M runs on {VAX} and {DEC Alpha}. This is a compiler whereas the others are {interpreters}. {GT/SQL} is their {SQL} pre-processor. ISO standard 11756 (1991). ANSI standard: "MUMPS Language Standard", X11.1 (1977, 1984, 1990, 1995?). The MUMPS User's Group was the {M Technology Association}. {Usenet} newsgroups: {news:comp.lang.mumps}. (2003-06-04)

MUMPS ::: (language) (Or M) Massachusetts General Hospital Utility Multi-Programming System.A programming language with extensive tools for the support of database management systems. MUMPS was originally used for medical records and is now widely used where multiple users access the same databases simultaneously, e.g. banks, stock exchanges, travel agencies, hospitals.Early MUMPS implementations for PDP-11 and IBM PC were complete operating systems, as well as programming languages, but current-day implementations usually run under a normal host operating system.A MUMPS program hardly ever explicitly performs low-level operations such as opening a file - there are programming constructs in the language that will do so implicitly, and most MUMPS programmers are not even aware of the operating system activity that MUMPS performs.Syntactically MUMPS has only one data-type: strings. Semantically, the language has many data-types: text strings, binary strings, floating point values, times in the context of arithmetical operations, optimised implementations will typically save the numerical value of the string.MUMPS was designed for portability. Currently, it is possible to share the same MUMPS database between radically different architectures, because all values are of bytes. Such multi-CPU databases are actually in use, some offices share databases between VAX, DEC Alpha, SUN, IBM PC and HP workstations.Versions of MUMPS are available on practically all hardware, from the smallest (IBM PC, Apple Macintosh, Acorn Archimedes), to the largest mainframe. MSM versions include M/SQL, available from InterSystems, PFCS and MSM.Greystone Technologies' GT/M runs on VAX and DEC Alpha. This is a compiler whereas the others are interpreters. GT/SQL is their SQL pre-processor.ISO standard 11756 (1991). ANSI standard: MUMPS Language Standard, X11.1 (1977, 1984, 1990, 1995?).The MUMPS User's Group was the M Technology Association.Usenet newsgroups: comp.lang.mumps.(2003-06-04)

MZ "standard, file format" The file signature of an {MS-DOS} executable (.{EXE}) file (0x4d 5a), always the first two {bytes} of the file. It was reportedly invented by, and named after, a {Microsoft} programmer, Mark Zbikowski. In {Unix} systems, the string MZ is the {magic number} that identifies an MS-DOS EXE file. (2003-06-10)

MZ ::: (standard, file format) The file signature of an MS-DOS executable (.EXE) file (0x4d 5a), always the first two bytes of the file. It was reportedly invented by, and named after, a Microsoft programmer, Mark Zbikowski.In Unix systems, the string MZ is the magic number that identifies an MS-DOS EXE file.(2003-06-10)

name binding ::: In programming languages, name binding is the association of entities (data and/or code) with identifiers.[225] An identifier bound to an object is said to reference that object. Machine languages have no built-in notion of identifiers, but name-object bindings as a service and notation for the programmer is implemented by programming languages. Binding is intimately connected with scoping, as scope determines which names bind to which objects – at which locations in the program code (lexically) and in which one of the possible execution paths (temporally). Use of an identifier id in a context that establishes a binding for id is called a binding (or defining) occurrence. In all other occurrences (e.g., in expressions, assignments, and subprogram calls), an identifier stands for what it is bound to; such occurrences are called applied occurrences.

nastistical "humour, mathematics" A description of a method, thought by the programmer to be correct statistics, but which is not. An example is averaging together several averages of samples of different sizes. The correct way to do this is to average together all of the individual samples. (1997-02-12)

nastistical ::: (humour, mathematics) A description of a method, thought by the programmer to be correct statistics, but which is not. An example is averaging together several averages of samples of different sizes. The correct way to do this is to average together all of the individual samples. (1997-02-12)

neighborhood bike code "humour, programming" A piece of {code} that every programmer at the company has touched. [{Dodgy Coder (http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}]. [{Urban Dictionary: neighborhood bike (http://www.urbandictionary.com/define.php?term=neighborhood+bike)}]. (2014-07-12)

netpipes "networking" A package by Robert Forsman "thoth@cis.ufl.edu" to manipulate {BSD Unix} {TCP/IP} stream {sockets}. The netpipes package makes TCP/IP streams usable in {shell scripts}. It can also simplify {client-server} code by allowing the programmer to skip all the tedious programming related to sockets and concentrate on writing a filter/service. {(http://cis.ufl.edu/~thoth/netpipes/)}. (1996-10-03)

netpipes ::: (networking) A package by Robert Forsman to manipulate BSD Unix TCP/IP stream sockets. The netpipes package makes TCP/IP allowing the programmer to skip all the tedious programming related to sockets and concentrate on writing a filter/service. . (1996-10-03)

New Testament ::: [C programmers] The second edition of K&R's The C Programming Language (Prentice-Hall, 1988; ISBN 0-13-110362-8), describing ANSI C.[Jargon File]

New Testament [C programmers] The second edition of {K&R}'s "The C Programming Language" (Prentice-Hall, 1988; ISBN 0-13-110362-8), describing {ANSI C}. [{Jargon File}]

Old Testament ::: [C programmers] The first edition of K&R, the sacred text describing Classic C.[Jargon File]

Old Testament [C programmers] The first edition of {K&R}, the sacred text describing {Classic C}. [{Jargon File}]

one-banana problem ::: At mainframe shops, where the computers have operators for routine administrivia, the programmers and hardware people tend to look down on the scale to describe the difficulty of a task. A one-banana problem is simple; hence, It's only a one-banana job at the most; what's taking them so long?At IBM, folklore divides the world into one-, two-, and three-banana problems. Other cultures have different hierarchies and may divide them more finely; at to local variations, cosmic rays and ISO). At a complication level any higher than that, one asks the manufacturers to send someone around to check things.See also Infinite-Monkey Theorem.[Jargon File]

one-banana problem "jargon, abuse" At computer installations where the computers have operators for routine administrivia, the programmers and hardware people tend to look down on the operators and claim that a trained monkey could do their job. The incentives offered to said monkeys would then describe the difficulty of a task. A one-banana problem is simple; hence, "It's only a one-banana job at the most; what's taking them so long?" See also {Infinite-Monkey Theorem}. [{Jargon File}] (2010-03-20)

Open source license "legal" Any document that attempts to specify {open source} usage and distribution of software. These licenses are usually drafted by experts and are likely to be more legally sound than one a programmer could write. However, loopholes do exist. Here is a non-exhaustive list of open source licenses: 1. {Public Domain} - No license. 2. {BSD} License - An early open source license 3. {General Public License} (GPL) - The {copyleft} license of the {Free Software Foundation}. Used for {GNU} software and much of {Linux}. 4. {Artistic License (http://my-opensource.org/Artistic.txt)} Less restrictive than the GPL, permitted by {Perl} in addition to the GPL. 5. {Mozilla Public Licenses (http://mozilla.org/MPL/)}. (MPL, MozPL) and Netscape Public License (NPL). ["Open Sources", pub. O'Reilly, {full text (http://oreilly.com/catalog/opensources/book/perens.html)}]. (1999-11-28)

Open source license ::: (legal) Any document that attempts to specify open source usage and distribution of software. These licenses are usually drafted by experts and are likely to be more legally sound than one a programmer could write. However, loopholes do exist.Here is a non-exhaustive list of open source licenses:1. Public Domain - No license.2. BSD License - An early open source license3. General Public License (GPL) - The copyleft license of the Free Software Foundation. Used for GNU software and much of Linux.4. Less restrictive than the GPL, permitted by Perl in addition to the GPL.5. . (MPL, MozPL) and Netscape Public License (NPL).[Open Sources, pub. O'Reilly, (1999-11-28)

open source "philosophy, legal" A method and philosophy for software licensing and distribution designed to encourage use and improvement of software written by volunteers by ensuring that anyone can copy the {source code} and modify it freely. The term "open source" is now more widely used than the earlier term "{free software}" (promoted by the {Free Software Foundation}) but has broadly the same meaning - free of distribution restrictions, not necessarily free of charge. There are various {open source licenses} available. Programmers can choose an appropriate license to use when distributing their programs. The {Open Source Initiative} promotes the {Open Source Definition}. {The Cathedral and the Bazaar (http://tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.html)}. was a seminal paper describing the open source phenomenon. {Open Sources - O'Reilly book with full text online (http://oreilly.com/catalog/opensources/book/perens.html)}. {Articles from ZDNet (http://zdnet.com/pcmag/features/opensource/)}. (1999-12-29)

open source ::: (philosophy, legal) A method and philosophy for software licensing and distribution designed to encourage use and improvement of software written by volunteers by ensuring that anyone can copy the source code and modify it freely.The term open source is now more widely used than the earlier term free software (promoted by the Free Software Foundation) but has broadly the same meaning - free of distribution restrictions, not necessarily free of charge.There are various open source licenses available. Programmers can choose an appropriate license to use when distributing their programs.The Open Source Initiative promotes the Open Source Definition. . was a seminal paper describing the open source phenomenon. . . (1999-12-29)

optimism What a programmer is full of after fixing the last bug and just before actually discovering the *next* last bug. Fred Brooks's book "{The Mythical Man-Month}" contains the following paragraph that describes this extremely well. All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy god-mothers. Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists. But however the selection process works, the result is indisputable: "This time it will surely run," or "I just found the last bug.". See also {Lubarsky's Law of Cybernetic Entomology}. [{Jargon File}]

optimism ::: What a programmer is full of after fixing the last bug and just before actually discovering the *next* last bug. Fred Brooks's book The Mythical Man-Month contains the following paragraph that describes this extremely well.All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy god-mothers. Perhaps the hundreds result is indisputable: This time it will surely run, or I just found the last bug..See also Lubarsky's Law of Cybernetic Entomology.[Jargon File]

paper tape ::: (hardware, history) Punched paper tape. An early input/output and storage medium borrowed from telegraph and teletype systems.Data entered at the keyboard of the teletype could be directed to a perforator or punch which punched a pattern of holes across the width of a paper tape to feeding the computer. Computer output could be similarly punched onto tape and printed off-line.As well as storage of the program and data, use of paper tape enabled batch processing.The first units had five data hole positions plus a sprocket hole (for the driving wheel) across the width of the tape. These used commercial telegraph Elliott which were more programmer-friendly. Later systems had eight data holes and used ASCII coding.(2003-12-02)

paper tape "hardware, history" Punched paper tape. An early {input/output} and storage medium borrowed from {telegraph} and {teletype} systems. Data entered at the keyboard of the teletype could be directed to a perforator or punch which punched a pattern of holes across the width of a paper tape to represent the characters typed. The paper tape could be read by a tape reader feeding the computer. Computer output could be similarly punched onto tape and printed off-line. As well as storage of the program and data, use of paper tape enabled {batch processing}. The first units had five data hole positions plus a sprocket hole (for the driving wheel) across the width of the tape. These used commercial telegraph code ({ITA2} also known as {Murray}), {Baudot code} or proprietary codes such as {Elliott} which were more programmer-friendly. Later systems had eight data holes and used {ASCII} coding. (2003-12-02)

parallel processing "parallel" (Or "multiprocessing") The simultaneous use of more than one computer to solve a problem. There are many different kinds of parallel computer (or "parallel processor"). They are distinguished by the kind of interconnection between processors (known as "processing elements" or PEs) and between processors and memory. {Flynn's taxonomy} also classifies parallel (and serial) computers according to whether all processors execute the same instructions at the same time ("{single instruction/multiple data}" - SIMD) or each processor executes different instructions ("{multiple instruction/multiple data}" - MIMD). The processors may either communicate in order to be able to cooperate in solving a problem or they may run completely independently, possibly under the control of another processor which distributes work to the others and collects results from them (a "{processor farm}"). The difficulty of cooperative problem solving is aptly demonstrated by the following dubious reasoning: If it takes one man one minute to dig a post-hole then sixty men can dig it in one second. {Amdahl's Law} states this more formally. Processors communicate via some kind of network or bus or a combination of both. Memory may be either {shared memory} (all processors have equal access to all memory) or private (each processor has its own memory - "{distributed memory}") or a combination of both. Many different software systems have been designed for programming parallel computers, both at the {operating system} and programming language level. These systems must provide mechanisms for partitioning the overall problem into separate tasks and allocating tasks to processors. Such mechanisms may provide either {implicit parallelism} - the system (the {compiler} or some other program) partitions the problem and allocates tasks to processors automatically or {explicit parallelism} where the programmer must annotate his program to show how it is to be partitioned. It is also usual to provide synchronisation primitives such as {semaphores} and {monitors} to allow processes to share resources without conflict. {Load balancing} attempts to keep all processors busy by allocating new tasks, or by moving existing tasks between processors, according to some {algorithm}. Communication between tasks may be either via {shared memory} or {message passing}. Either may be implemented in terms of the other and in fact, at the lowest level, shared memory uses message passing since the address and data signals which flow between processor and memory may be considered as messages. The terms "parallel processing" and "multiprocessing" imply multiple processors working on one task whereas "{concurrent processing}" and "{multitasking}" imply a single processor sharing its time between several tasks. See also {cellular automaton},{symmetric multi-processing}. {Usenet} newsgroup: {news:comp.parallel}. {Institutions (http://ccsf.caltech.edu/other_sites.html)}, {research groups (http://cs.cmu.edu/~scandal/research-groups.html)}. (2004-11-07)

PBD {Programmer Brain Damage}

perfect programmer syndrome Arrogance; the egotistical conviction that one is above normal human error. Most frequently found among programmers of some native ability but relatively little experience (especially new graduates; their perceptions may be distorted by a history of excellent performance at solving {toy problems}). "Of course my program is correct, there is no need to test it." "Yes, I can see there may be a problem here, but *I'll* never type "rm -r /" while in {root mode}." [{Jargon File}]

perfect programmer syndrome ::: Arrogance; the egotistical conviction that one is above normal human error. Most frequently found among programmers of some native ability but relatively little is correct, there is no need to test it. Yes, I can see there may be a problem here, but *I'll* never type rm -r / while in root mode.[Jargon File]

PFE ::: 1. (text, editor) Programmer's File Editor.2. (language) Portable Forth Environment.(2000-12-07)

PFE 1. "text, editor" {Programmer's File Editor}. 2. "language" {Portable Forth Environment}. (2000-12-07)

PHIGS {Programmers Hierarchical Interactive Graphics System}

Pink-Shirt Book "publication" "The Peter Norton Programmer's Guide to the IBM PC". The original cover featured a picture of Peter Norton with a silly smirk on his face, wearing a pink shirt. Perhaps in recognition of this usage, the current edition has a different picture of Norton wearing a pink shirt. See also {book titles}. [{Jargon File}] (1995-03-28)

Pink-Shirt Book ::: (publication) The Peter Norton Programmer's Guide to the IBM PC.The original cover featured a picture of Peter Norton with a silly smirk on his face, wearing a pink shirt. Perhaps in recognition of this usage, the current edition has a different picture of Norton wearing a pink shirt.See also book titles.[Jargon File] (1995-03-28)

Plan 9 "operating system" (Named after the classically bad, exceptionally low-budget SF film "Plan 9 from Outer Space") An {operating system} developed at {Bell Labs} by many researchers previously intimately involved with {Unix}. Plan 9 is superficially Unix-like but features far finer control over the {name-space} (on a per-process basis) and is inherently distributed and scalable. Plan 9 is divided according to service functions. {CPU} servers concentrate computing power into large {multiprocessors}; {file servers} provide repositories for storage and terminals give each user of the system a dedicated computer with {bitmap screen} and {mouse} on which to run a window system. The sharing of computing and file storage services provides a sense of community for a group of programmers, amortises costs and centralises and hence simplifies management and administration. The pieces communicate by a single {protocol}, built above a reliable {data transport layer} offered by an appropriate network, that defines each service as a rooted tree of files. Even for services not usually considered as files, the unified design permits some simplification. Each process has a local file name space that contains attachments to all services the process is using and thereby to the files in those services. One of the most important jobs of a terminal is to support its user's customised view of the entire system as represented by the services visible in the name space. {(http://plan9.bell-labs.com/plan9dist/)}. (2005-02-15)

Plan 9 ::: (operating system) (Named after the classically bad, exceptionally low-budget SF film Plan 9 from Outer Space) An operating system developed at Bell Labs by many researchers previously intimately involved with Unix.Plan 9 is superficially Unix-like but features far finer control over the name-space (on a per-process basis) and is inherently distributed and scalable.Plan 9 is divided according to service functions. CPU servers concentrate computing power into large multiprocessors; file servers provide repositories programmers, amortises costs and centralises and hence simplifies management and administration.The pieces communicate by a single protocol, built above a reliable data transport layer offered by an appropriate network, that defines each service as to support its user's customised view of the entire system as represented by the services visible in the name space. .(2005-02-15)

playpen (IBM) A room where programmers work. Compare {salt mines}. [{Jargon File}]

playpen ::: (IBM) A room where programmers work.Compare salt mines.[Jargon File]

PPN ::: Project-Programmer Number.A user-ID under TOPS-10 and its various mutant progeny at SAIL, BBN, CompuServe and elsewhere. Old-time hackers from the PDP-10 era sometimes use this to refer to user IDs on other systems as well.[Jargon File] (1994-11-18)

PPN Project-Programmer Number. A user-ID under {TOPS-10} and its various mutant progeny at {SAIL}, {BBN}, {CompuServe} and elsewhere. Old-time hackers from the {PDP-10} era sometimes use this to refer to user IDs on other systems as well. [{Jargon File}] (1994-11-18)

precedence lossage ::: /pre's*-dens los'*j/ A C coding error in an expression due to unintended grouping of arithmetic or logical operators. Used especially of certain common ^, and >>. For example, the following C expression, intended to test the least significant bit of x, x & 1 == 0 is parsed as x & (1 == 0) which the compiler would probably evaluate at compile-time to (x & 0) and then to 0.Precedence lossage can always be avoided by suitable use of parentheses. For this reason, some C programmers deliberately ignore the language's precedence can't happen in *their* favourite language, which eschews precedence entirely, requiring one to use explicit parentheses everywhere.Other sources of bugs include aliasing bug, memory leak, memory smash, smash the stack, fandango on core, overrun screw.[Jargon File] (1994-12-16)

precedence lossage /pre's*-dens los'*j/ A misunderstanding of {operator precedence} resulting in unintended grouping of arithmetic or logical {operators} when coding an {expression}. Used especially of mistakes in {C} code due to the nonintuitively low precedence of "&", "|", "^", """" and """". For example, the following C expression, intended to test the least significant bit of x, x & 1 == 0 is {parsed} as x & (1 == 0) which is always zero (false). Some lazy programmers ignore precedence and parenthesise everything. {Lisp} fans enjoy pointing out that this can't happen in *their* favourite language, which eschews precedence entirely, requiring one to use explicit parentheses everywhere. [{Jargon File}] (1994-12-16)

PRL ::: Proof Refinement Logic.Versions: micro-PRL, lambda-PRL, nu-PRL.[PRL: Proof Refinement Logic Programmer's Manual, CS Dept, Cornell, 1983]. (1995-01-24)

PRL Proof Refinement Logic. Versions: {micro-PRL}, {lambda-PRL}, {nu-PRL}. ["PRL: Proof Refinement Logic Programmer's Manual", CS Dept, Cornell, 1983]. (1995-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}. (1996-10-13)

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. (1996-10-13)

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. (2000-01-24)

programmer ::: (job) (Or computer programmer, developer) Someone who writes or debugs computer programs, for a living or for fun. Analyst/developer is a term may be qualified according to the type of software - application programmer, system programmer, etc.(2000-01-24)

Programmer's Cheer ::: (humour) Shift to the left!Shift to the right! [Origin?][Jargon File] (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}] (1996-10-13)

Programmers Hierarchical Interactive Graphics System (PHIGS) An {ANSI}/{ISO} {standard}. Worked on by the {ISO}/{IEC} group {JTC1/SC24}. [More detail?] (1995-01-04)

Programmers Hierarchical Interactive Graphics System ::: (PHIGS) An ANSI/ISO standard. Worked on by the ISO/IEC group JTC1/SC24.[More detail?] (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]. (1996-03-21)

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]. (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 application that was broken out, and others. A more sophisticated debugger must be installed in order to inspect breakpoints, etc.(2000-11-01)

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. (2000-11-01)

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. (2004-05-17)

procedural language ::: (language) Any programming language in which the programmer specifies an explicit sequences of steps to follow to produce a result.The term should not be confused with imperative language. 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 these types of language are in contrast to declarative languages, in which the programmer specifies neither explicit sequences of actions nor internal state manipulation.(2004-05-17)

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 antifuse closes a connection (hence the name). Programming is done by applying high-voltage pulses which are not encountered during normal operation. (1995-04-22)

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. (1995-04-22)

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)]. (1999-05-26)

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)]. (1999-05-26)

PROMAL {PROgrammer's Microapplication Language}

Python ::: An interpreted, high-level, general-purpose programming language created by Guido van Rossum and first released in 1991. Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.[260]

QL "computer" (Quantum Leap) Sir {Clive Sinclair}'s first {Motorola 68008}-based {personal computer}, developed from around 1981 and released about 1983. The QL ran Sinclair's {QDOS} {operating system} which was the first {multitasking} OS on a home computer, though few programmers used this feature. It had a structured, extended {BASIC} and a suite of integrated {application programs} written by {Psion}. It featured innovative "{microdrives}" which were random-access tape drives. It was not a success. The microdrives were innovative but probably a mistake. Though reliable and quite quick, they sounded like they were going to jam and explode, releasing a shower of plastic shavings and tape into your face. The QL and QDOS only supported two graphics modes - ominously named high res and low res. High res had four (fixed) colours at a resolution of 512 by 256 {pixels}. Low res had 8 colours (black, blue, red, magenta, green, cyan, yellow, white) plus a flash mode with 256 by 256 pixels. The sound was next to useless - single channel single oscillator with various parameters for fuzz, pitch change. There was one internal {font}, scalable to 2 heights and 3 widths. Peripherals and enhancements included a {GUI} on a plug-in {ROM}, accelerator cards ({Motorola 68020}, 4 MB RAM), {floppy disks} and {hard disks}. In 1996 there is still some interest in the QL, spread by the Internet of course. {Emulation} software, {source code}, "The QL Hackers Journal" and similar are still available, and many QLs are on the net. {(http://imaginet.fr/~godefroy/english)}. (1996-08-01)

read-eval-print loop "language, LISP, programming" (REPL) A programming {structure} within {LISP} which repeatedly reads a {form} from the {user}, evaluates it, and displays the result. A read-eval-print {loop} forms the basis of the {Top-Level} {shell} that programmers of the LISP family of languages interact with. In many dialects of LISP a very simple REPL could be implemented as: (loop (print (eval (read)))). (2003-06-23)

read-eval-print loop ::: (language, LISP, programming) (REPL) A programming structure within LISP which repeatedly reads a form from the user, evaluates it, and displays the result.A read-eval-print loop forms the basis of the Top-Level shell that programmers of the LISP family of languages interact with.In many dialects of LISP a very simple REPL could be implemented as: (loop (print (eval (read)))). (2003-06-23)

Real Programmer "job, humour" (From the book "Real Men Don't Eat Quiche") A variety of hacker possessed of a flippant attitude toward complexity that is arrogant even when justified by experience. The archetypal "Real Programmer" likes to program on the {bare metal} and is very good at it, remembers the binary {op codes} for every machine he has ever programmed, thinks that {high-level languages} are sissy, and uses a {debugger} to edit his code because full-screen editors are for wimps. Real Programmers aren't satisfied with code that hasn't been {bum}med into a state of {tense}ness just short of rupture. Real Programmers never use {comments} or write {documentation}: "If it was hard to write", says the Real Programmer, "it should be hard to understand." Real Programmers can make machines do things that were never in their spec sheets; in fact, they are seldom really happy unless doing so. A Real Programmer's code can awe with its fiendish brilliance, even as its crockishness appals. Real Programmers live on junk food and coffee, hang line-printer art on their walls, and terrify the crap out of other programmers - because someday, somebody else might have to try to understand their code in order to change it. Their successors generally consider it a {Good Thing} that there aren't many Real Programmers around any more. For a famous (and somewhat more positive) portrait of a Real Programmer, see "{The Story of Mel}". The term itself was popularised by a 1983 Datamation article "{Real Programmers Don't Use Pascal}" by Ed Post, still circulating on {Usenet} and Internet in on-line form. [{Jargon File}] (1997-08-29)

Real Programmer ::: (job, humour) (From the book Real Men Don't Eat Quiche) A variety of hacker possessed of a flippant attitude toward complexity that is arrogant even wimps. Real Programmers aren't satisfied with code that hasn't been bummed into a state of tenseness just short of rupture.Real Programmers never use comments or write documentation: If it was hard to write, says the Real Programmer, it should be hard to understand. Real fact, they are seldom really happy unless doing so. A Real Programmer's code can awe with its fiendish brilliance, even as its crockishness appals.Real Programmers live on junk food and coffee, hang line-printer art on their walls, and terrify the crap out of other programmers - because someday, somebody successors generally consider it a Good Thing that there aren't many Real Programmers around any more.For a famous (and somewhat more positive) portrait of a Real Programmer, see The Story of Mel. The term itself was popularised by a 1983 Datamation article Real Programmers Don't Use Pascal by Ed Post, still circulating on Usenet and Internet in on-line form.[Jargon File] (1997-08-29)

Real Programmers Don't Use Pascal ::: (humour) Back in the good old days - the Golden Era of computers, it was easy to separate the men from the boys (sometimes called Real Men and out that Real Men don't relate to anything, and aren't afraid of being impersonal.)But, as usual, times change. We are faced today with a world in which little old ladies can get computers in their microwave ovens, 12-year-old kids can blow danger of becoming extinct, of being replaced by high-school students with TRASH-80s.There is a clear need to point out the differences between the typical high-school junior Pac-Man player and a Real Programmer. If this difference is why it would be a mistake to replace the Real Programmers on their staff with 12-year-old Pac-Man players (at a considerable salary savings).LANGUAGESThe easiest way to tell a Real Programmer from the crowd is by the programming language he (or she) uses. Real Programmers use Fortran. Quiche Eaters use need all these abstract concepts to get their jobs done - they are perfectly happy with a keypunch, a Fortran IV compiler, and a beer.Real Programmers do List Processing in Fortran.Real Programmers do String Manipulation in Fortran.Real Programmers do Accounting (if they do it at all) in Fortran.Real Programmers do Artificial Intelligence programs in Fortran.If you can't do it in Fortran, do it in assembly language. If you can't do it in assembly language, it isn't worth doing.STRUCTURED PROGRAMMINGThe academics in computer science have gotten into the structured programming rut over the past several years. They claim that programs are more easily in the world won't help you solve a problem like that - it takes actual talent. Some quick observations on Real Programmers and Structured Programming:Real Programmers aren't afraid to use GOTOs.Real Programmers can write five-page-long DO loops without getting confused.Real Programmers like Arithmetic IF statements - they make the code more interesting.Real Programmers write self-modifying code, especially if they can save 20 nanoseconds in the middle of a tight loop.Real Programmers don't need comments - the code is obvious.Since Fortran doesn't have a structured IF, REPEAT ... UNTIL, or CASE statement, Real Programmers don't have to worry about not using them. Besides, they can be simulated when necessary using assigned GOTOs.Data Structures have also gotten a lot of press lately. Abstract Data Types, Structures, Pointers, Lists, and Strings have become popular in certain circles. Languages, as we all know, have implicit typing based on the first letter of the (six character) variable name.OPERATING SYSTEMSWhat kind of operating system is used by a Real Programmer? CP/M? God forbid - CP/M, after all, is basically a toy operating system. Even little old ladies and grade school students can understand and use CP/M.Unix is a lot more complicated of course - the typical Unix hacker never can remember what the PRINT command is called this week - but when it gets right systems: they send jokes around the world on UUCP-net and write adventure games and research papers.No, your Real Programmer uses OS 370. A good programmer can find and understand the description of the IJK305I error he just got in his JCL manual. A great outstanding programmer can find bugs buried in a 6 megabyte core dump without using a hex calculator. (I have actually seen this done.)OS is a truly remarkable operating system. It's possible to destroy days of work with a single misplaced space, so alertness in the programming staff is people claim there is a Time Sharing system that runs on OS 370, but after careful study I have come to the conclusion that they were mistaken.PROGRAMMING TOOLSWhat kind of tools does a Real Programmer use? In theory, a Real Programmer could run his programs by keying them into the front panel of the computer. Back the first operating system for the CDC7600 in on the front panel from memory when it was first powered on. Seymore, needless to say, is a Real Programmer.One of my favorite Real Programmers was a systems programmer for Texas Instruments. One day he got a long distance call from a user whose system had includes a keypunch and lineprinter in his toolkit, he can get along with just a front panel and a telephone in emergencies.In some companies, text editing no longer consists of ten engineers standing in line to use an 029 keypunch. In fact, the building I work in doesn't contain a system is called SmallTalk, and would certainly not talk to the computer with a mouse.Some of the concepts in these Xerox editors have been incorporated into editors running on more reasonably named operating systems - Emacs and VI being two. The the Real Programmer wants a you asked for it, you got it text editor - complicated, cryptic, powerful, unforgiving, dangerous. TECO, to be precise.It has been observed that a TECO command sequence more closely resembles transmission line noise than readable text [4]. One of the more entertaining will probably destroy your program, or even worse - introduce subtle and mysterious bugs in a once working subroutine.For this reason, Real Programmers are reluctant to actually edit a program that is close to working. They find it much easier to just patch the binary object Programmer to do the job - no Quiche Eating structured programmer would even know where to start. This is called job security.Some programming tools NOT used by Real Programmers:Fortran preprocessors like MORTRAN and RATFOR. The Cuisinarts of programming - great for making Quiche. See comments above on structured programming.Source language debuggers. Real Programmers can read core dumps.Compilers with array bounds checking. They stifle creativity, destroy most of the interesting uses for EQUIVALENCE, and make it impossible to modify the operating system code with negative subscripts. Worst of all, bounds checking is inefficient.Source code maintenance systems. A Real Programmer keeps his code locked up in a card file, because it implies that its owner cannot leave his important programs unguarded [5].THE REAL PROGRAMMER AT WORKWhere does the typical Real Programmer work? What kind of programs are worthy of the efforts of so talented an individual? You can be sure that no Real or sorting mailing lists for People magazine. A Real Programmer wants tasks of earth-shaking importance (literally!).Real Programmers work for Los Alamos National Laboratory, writing atomic bomb simulations to run on Cray I supercomputers.Real Programmers work for the National Security Agency, decoding Russian transmissions.It was largely due to the efforts of thousands of Real Programmers working for NASA that our boys got to the moon and back before the Russkies.Real Programmers are at work for Boeing designing the operating systems for cruise missiles.Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter.The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 +/-3 kilometers of the surface of Mars. Nobody is going to trust a Pascal program (or a Pascal programmer) for navigation to these tolerances.As you can tell, many of the world's Real Programmers work for the U.S. Government - mainly the Defense Department. This is as it should be. Recently, programmers and Quiche Eaters alike.) Besides, the determined Real Programmer can write Fortran programs in any language.The Real Programmer might compromise his principles and work on something slightly more trivial than the destruction of life as we know it, providing Fortran, so there are a fair number of people doing graphics in order to avoid having to write COBOL programs.THE REAL PROGRAMMER AT PLAYGenerally, the Real Programmer plays the same way he works - with computers. He is constantly amazed that his employer actually pays him to do what he would be breath of fresh air and a beer or two. Some tips on recognizing Real Programmers away from the computer room:At a party, the Real Programmers are the ones in the corner talking about operating system security and how to get around it.At a football game, the Real Programmer is the one comparing the plays against his simulations printed on 11 by 14 fanfold paper.At the beach, the Real Programmer is the one drawing flowcharts in the sand.At a funeral, the Real Programmer is the one saying Poor George, he almost had the sort routine working before the coronary.In a grocery store, the Real Programmer is the one who insists on running the cans past the laser checkout scanner himself, because he never could trust keypunch operators to get it right the first time.THE REAL PROGRAMMER'S NATURAL HABITATWhat sort of environment does the Real Programmer function best in? This is an important question for the managers of Real Programmers. Considering the amount of money it costs to keep one on the staff, it's best to put him (or her) in an environment where he can get his work done.The typical Real Programmer lives in front of a computer terminal. Surrounding this terminal are:Listings of all programs the Real Programmer has ever worked on, piled in roughly chronological order on every flat surface in the office.Some half-dozen or so partly filled cups of cold coffee. Occasionally, there will be cigarette butts floating in the coffee. In some cases, the cups will contain Orange Crush.Unless he is very good, there will be copies of the OS JCL manual and the Principles of Operation open to some particularly interesting pages.Taped to the wall is a line-printer Snoopy calendar for the year 1969.Strewn about the floor are several wrappers for peanut butter filled cheese bars - the type that are made pre-stale at the bakery so they can't get any worse while waiting in the vending machine.Hiding in the top left-hand drawer of the desk is a stash of double-stuff Oreos for special occasions.Underneath the Oreos is a flowcharting template, left there by the previous occupant of the office. (Real Programmers write programs, not documentation. Leave that to the maintenance people.)The Real Programmer is capable of working 30, 40, even 50 hours at a stretch, under intense pressure. In fact, he prefers it that way. Bad response time project done on time, but creates a convenient excuse for not doing the documentation. In general:No Real Programmer works 9 to 5 (unless it's the ones at night).Real Programmers don't wear neckties.Real Programmers don't wear high-heeled shoes.Real Programmers arrive at work in time for lunch [9].A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII (or EBCDIC) code table.Real Programmers don't know how to cook. Grocery stores aren't open at three in the morning. Real Programmers survive on Twinkies and coffee.THE FUTUREWhat of the future? It is a matter of some concern to Real Programmers that the latest generation of computer programmers are not being brought up with the same ever learning Fortran! Are we destined to become an industry of Unix hackers and Pascal programmers?From my experience, I can only report that the future is bright for Real Programmers everywhere. Neither OS 370 nor Fortran show any signs of dying out, one of them has a way of converting itself back into a Fortran 66 compiler at the drop of an option card - to compile DO loops like God meant them to be.Even Unix might not be as bad on Real Programmers as it once was. The latest release of Unix has the potential of an operating system worthy of any Real in - like having the best parts of Fortran and assembly language in one place. (Not to mention some of the more creative uses for

Real Programmers Don't Use Pascal "humour" Back in the good old days - the "Golden Era" of computers, it was easy to separate the men from the boys (sometimes called "Real Men" and "Quiche Eaters" in the literature). During this period, the Real Men were the ones that understood computer programming, and the Quiche Eaters were the ones that didn't. A real computer programmer said things like "DO 10 I=1,10" and "ABEND" (they actually talked in capital letters, you understand), and the rest of the world said things like "computers are too complicated for me" and "I can't relate to computers - they're so impersonal". (A previous work [1] points out that Real Men don't "relate" to anything, and aren't afraid of being impersonal.) But, as usual, times change. We are faced today with a world in which little old ladies can get computers in their microwave ovens, 12-year-old kids can blow Real Men out of the water playing Asteroids and Pac-Man, and anyone can buy and even understand their very own Personal Computer. The Real Programmer is in danger of becoming extinct, of being replaced by high-school students with {TRASH-80s}. There is a clear need to point out the differences between the typical high-school junior Pac-Man player and a Real Programmer. If this difference is made clear, it will give these kids something to aspire to -- a role model, a Father Figure. It will also help explain to the employers of Real Programmers why it would be a mistake to replace the Real Programmers on their staff with 12-year-old Pac-Man players (at a considerable salary savings). LANGUAGES The easiest way to tell a Real Programmer from the crowd is by the programming language he (or she) uses. Real Programmers use {Fortran}. Quiche Eaters use {Pascal}. Nicklaus Wirth, the designer of Pascal, gave a talk once at which he was asked how to pronounce his name. He replied, "You can either call me by name, pronouncing it 'Veert', or call me by value, 'Worth'." One can tell immediately from this comment that Nicklaus Wirth is a Quiche Eater. The only parameter passing mechanism endorsed by Real Programmers is call-by-value-return, as implemented in the {IBM 370} {Fortran-G} and H compilers. Real programmers don't need all these abstract concepts to get their jobs done - they are perfectly happy with a {keypunch}, a {Fortran IV} {compiler}, and a beer. Real Programmers do List Processing in Fortran. Real Programmers do String Manipulation in Fortran. Real Programmers do Accounting (if they do it at all) in Fortran. Real Programmers do {Artificial Intelligence} programs in Fortran. If you can't do it in Fortran, do it in {assembly language}. If you can't do it in assembly language, it isn't worth doing. STRUCTURED PROGRAMMING The academics in computer science have gotten into the "structured programming" rut over the past several years. They claim that programs are more easily understood if the programmer uses some special language constructs and techniques. They don't all agree on exactly which constructs, of course, and the examples they use to show their particular point of view invariably fit on a single page of some obscure journal or another - clearly not enough of an example to convince anyone. When I got out of school, I thought I was the best programmer in the world. I could write an unbeatable tic-tac-toe program, use five different computer languages, and create 1000-line programs that WORKED. (Really!) Then I got out into the Real World. My first task in the Real World was to read and understand a 200,000-line Fortran program, then speed it up by a factor of two. Any Real Programmer will tell you that all the Structured Coding in the world won't help you solve a problem like that - it takes actual talent. Some quick observations on Real Programmers and Structured Programming: Real Programmers aren't afraid to use {GOTOs}. Real Programmers can write five-page-long DO loops without getting confused. Real Programmers like Arithmetic IF statements - they make the code more interesting. Real Programmers write self-modifying code, especially if they can save 20 {nanoseconds} in the middle of a tight loop. Real Programmers don't need comments - the code is obvious. Since Fortran doesn't have a structured IF, REPEAT ... UNTIL, or CASE statement, Real Programmers don't have to worry about not using them. Besides, they can be simulated when necessary using {assigned GOTOs}. Data Structures have also gotten a lot of press lately. Abstract Data Types, Structures, Pointers, Lists, and Strings have become popular in certain circles. Wirth (the above-mentioned Quiche Eater) actually wrote an entire book [2] contending that you could write a program based on data structures, instead of the other way around. As all Real Programmers know, the only useful data structure is the Array. Strings, lists, structures, sets - these are all special cases of arrays and can be treated that way just as easily without messing up your programing language with all sorts of complications. The worst thing about fancy data types is that you have to declare them, and Real Programming Languages, as we all know, have implicit typing based on the first letter of the (six character) variable name. OPERATING SYSTEMS What kind of operating system is used by a Real Programmer? CP/M? God forbid - CP/M, after all, is basically a toy operating system. Even little old ladies and grade school students can understand and use CP/M. Unix is a lot more complicated of course - the typical Unix hacker never can remember what the PRINT command is called this week - but when it gets right down to it, Unix is a glorified video game. People don't do Serious Work on Unix systems: they send jokes around the world on {UUCP}-net and write adventure games and research papers. No, your Real Programmer uses OS 370. A good programmer can find and understand the description of the IJK305I error he just got in his JCL manual. A great programmer can write JCL without referring to the manual at all. A truly outstanding programmer can find bugs buried in a 6 megabyte {core dump} without using a hex calculator. (I have actually seen this done.) OS is a truly remarkable operating system. It's possible to destroy days of work with a single misplaced space, so alertness in the programming staff is encouraged. The best way to approach the system is through a keypunch. Some people claim there is a Time Sharing system that runs on OS 370, but after careful study I have come to the conclusion that they were mistaken. PROGRAMMING TOOLS What kind of tools does a Real Programmer use? In theory, a Real Programmer could run his programs by keying them into the front panel of the computer. Back in the days when computers had front panels, this was actually done occasionally. Your typical Real Programmer knew the entire bootstrap loader by memory in hex, and toggled it in whenever it got destroyed by his program. (Back then, memory was memory - it didn't go away when the power went off. Today, memory either forgets things when you don't want it to, or remembers things long after they're better forgotten.) Legend has it that {Seymore Cray}, inventor of the Cray I supercomputer and most of Control Data's computers, actually toggled the first operating system for the CDC7600 in on the front panel from memory when it was first powered on. Seymore, needless to say, is a Real Programmer. One of my favorite Real Programmers was a systems programmer for Texas Instruments. One day he got a long distance call from a user whose system had crashed in the middle of saving some important work. Jim was able to repair the damage over the phone, getting the user to toggle in disk I/O instructions at the front panel, repairing system tables in hex, reading register contents back over the phone. The moral of this story: while a Real Programmer usually includes a keypunch and lineprinter in his toolkit, he can get along with just a front panel and a telephone in emergencies. In some companies, text editing no longer consists of ten engineers standing in line to use an 029 keypunch. In fact, the building I work in doesn't contain a single keypunch. The Real Programmer in this situation has to do his work with a "text editor" program. Most systems supply several text editors to select from, and the Real Programmer must be careful to pick one that reflects his personal style. Many people believe that the best text editors in the world were written at Xerox Palo Alto Research Center for use on their Alto and Dorado computers [3]. Unfortunately, no Real Programmer would ever use a computer whose operating system is called SmallTalk, and would certainly not talk to the computer with a mouse. Some of the concepts in these Xerox editors have been incorporated into editors running on more reasonably named operating systems - {Emacs} and {VI} being two. The problem with these editors is that Real Programmers consider "what you see is what you get" to be just as bad a concept in Text Editors as it is in women. No the Real Programmer wants a "you asked for it, you got it" text editor - complicated, cryptic, powerful, unforgiving, dangerous. TECO, to be precise. It has been observed that a TECO command sequence more closely resembles transmission line noise than readable text [4]. One of the more entertaining games to play with TECO is to type your name in as a command line and try to guess what it does. Just about any possible typing error while talking with TECO will probably destroy your program, or even worse - introduce subtle and mysterious bugs in a once working subroutine. For this reason, Real Programmers are reluctant to actually edit a program that is close to working. They find it much easier to just patch the binary {object code} directly, using a wonderful program called SUPERZAP (or its equivalent on non-IBM machines). This works so well that many working programs on IBM systems bear no relation to the original Fortran code. In many cases, the original source code is no longer available. When it comes time to fix a program like this, no manager would even think of sending anything less than a Real Programmer to do the job - no Quiche Eating structured programmer would even know where to start. This is called "job security". Some programming tools NOT used by Real Programmers: Fortran preprocessors like {MORTRAN} and {RATFOR}. The Cuisinarts of programming - great for making Quiche. See comments above on structured programming. Source language debuggers. Real Programmers can read core dumps. Compilers with array bounds checking. They stifle creativity, destroy most of the interesting uses for EQUIVALENCE, and make it impossible to modify the operating system code with negative subscripts. Worst of all, bounds checking is inefficient. Source code maintenance systems. A Real Programmer keeps his code locked up in a card file, because it implies that its owner cannot leave his important programs unguarded [5]. THE REAL PROGRAMMER AT WORK Where does the typical Real Programmer work? What kind of programs are worthy of the efforts of so talented an individual? You can be sure that no Real Programmer would be caught dead writing accounts-receivable programs in {COBOL}, or sorting {mailing lists} for People magazine. A Real Programmer wants tasks of earth-shaking importance (literally!). Real Programmers work for Los Alamos National Laboratory, writing atomic bomb simulations to run on Cray I supercomputers. Real Programmers work for the National Security Agency, decoding Russian transmissions. It was largely due to the efforts of thousands of Real Programmers working for NASA that our boys got to the moon and back before the Russkies. Real Programmers are at work for Boeing designing the operating systems for cruise missiles. Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based Fortran programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation - hitting ten-kilometer wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern-matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter. The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 +/-3 kilometers of the surface of Mars. Nobody is going to trust a Pascal program (or a Pascal programmer) for navigation to these tolerances. As you can tell, many of the world's Real Programmers work for the U.S. Government - mainly the Defense Department. This is as it should be. Recently, however, a black cloud has formed on the Real Programmer horizon. It seems that some highly placed Quiche Eaters at the Defense Department decided that all Defense programs should be written in some grand unified language called "ADA" ((C), DoD). For a while, it seemed that ADA was destined to become a language that went against all the precepts of Real Programming - a language with structure, a language with data types, {strong typing}, and semicolons. In short, a language designed to cripple the creativity of the typical Real Programmer. Fortunately, the language adopted by DoD has enough interesting features to make it approachable -- it's incredibly complex, includes methods for messing with the operating system and rearranging memory, and Edsgar Dijkstra doesn't like it [6]. (Dijkstra, as I'm sure you know, was the author of "GoTos Considered Harmful" - a landmark work in programming methodology, applauded by Pascal programmers and Quiche Eaters alike.) Besides, the determined Real Programmer can write Fortran programs in any language. The Real Programmer might compromise his principles and work on something slightly more trivial than the destruction of life as we know it, providing there's enough money in it. There are several Real Programmers building video games at Atari, for example. (But not playing them - a Real Programmer knows how to beat the machine every time: no challenge in that.) Everyone working at LucasFilm is a Real Programmer. (It would be crazy to turn down the money of fifty million Star Trek fans.) The proportion of Real Programmers in Computer Graphics is somewhat lower than the norm, mostly because nobody has found a use for computer graphics yet. On the other hand, all computer graphics is done in Fortran, so there are a fair number of people doing graphics in order to avoid having to write COBOL programs. THE REAL PROGRAMMER AT PLAY Generally, the Real Programmer plays the same way he works - with computers. He is constantly amazed that his employer actually pays him to do what he would be doing for fun anyway (although he is careful not to express this opinion out loud). Occasionally, the Real Programmer does step out of the office for a breath of fresh air and a beer or two. Some tips on recognizing Real Programmers away from the computer room: At a party, the Real Programmers are the ones in the corner talking about operating system security and how to get around it. At a football game, the Real Programmer is the one comparing the plays against his simulations printed on 11 by 14 fanfold paper. At the beach, the Real Programmer is the one drawing flowcharts in the sand. At a funeral, the Real Programmer is the one saying "Poor George, he almost had the sort routine working before the coronary." In a grocery store, the Real Programmer is the one who insists on running the cans past the laser checkout scanner himself, because he never could trust keypunch operators to get it right the first time. THE REAL PROGRAMMER'S NATURAL HABITAT What sort of environment does the Real Programmer function best in? This is an important question for the managers of Real Programmers. Considering the amount of money it costs to keep one on the staff, it's best to put him (or her) in an environment where he can get his work done. The typical Real Programmer lives in front of a computer terminal. Surrounding this terminal are: Listings of all programs the Real Programmer has ever worked on, piled in roughly chronological order on every flat surface in the office. Some half-dozen or so partly filled cups of cold coffee. Occasionally, there will be cigarette butts floating in the coffee. In some cases, the cups will contain Orange Crush. Unless he is very good, there will be copies of the OS JCL manual and the Principles of Operation open to some particularly interesting pages. Taped to the wall is a line-printer Snoopy calendar for the year 1969. Strewn about the floor are several wrappers for peanut butter filled cheese bars - the type that are made pre-stale at the bakery so they can't get any worse while waiting in the vending machine. Hiding in the top left-hand drawer of the desk is a stash of double-stuff Oreos for special occasions. Underneath the Oreos is a flowcharting template, left there by the previous occupant of the office. (Real Programmers write programs, not documentation. Leave that to the maintenance people.) The Real Programmer is capable of working 30, 40, even 50 hours at a stretch, under intense pressure. In fact, he prefers it that way. Bad response time doesn't bother the Real Programmer - it gives him a chance to catch a little sleep between compiles. If there is not enough schedule pressure on the Real Programmer, he tends to make things more challenging by working on some small but interesting part of the problem for the first nine weeks, then finishing the rest in the last week, in two or three 50-hour marathons. This not only impresses the hell out of his manager, who was despairing of ever getting the project done on time, but creates a convenient excuse for not doing the documentation. In general: No Real Programmer works 9 to 5 (unless it's the ones at night). Real Programmers don't wear neckties. Real Programmers don't wear high-heeled shoes. Real Programmers arrive at work in time for lunch [9]. A Real Programmer might or might not know his wife's name. He does, however, know the entire {ASCII} (or EBCDIC) code table. Real Programmers don't know how to cook. Grocery stores aren't open at three in the morning. Real Programmers survive on Twinkies and coffee. THE FUTURE What of the future? It is a matter of some concern to Real Programmers that the latest generation of computer programmers are not being brought up with the same outlook on life as their elders. Many of them have never seen a computer with a front panel. Hardly anyone graduating from school these days can do hex arithmetic without a calculator. College graduates these days are soft - protected from the realities of programming by source level debuggers, text editors that count parentheses, and "user friendly" operating systems. Worst of all, some of these alleged "computer scientists" manage to get degrees without ever learning Fortran! Are we destined to become an industry of Unix hackers and Pascal programmers? From my experience, I can only report that the future is bright for Real Programmers everywhere. Neither OS 370 nor Fortran show any signs of dying out, despite all the efforts of Pascal programmers the world over. Even more subtle tricks, like adding structured coding constructs to Fortran have failed. Oh sure, some computer vendors have come out with Fortran 77 compilers, but every one of them has a way of converting itself back into a Fortran 66 compiler at the drop of an option card - to compile DO loops like God meant them to be. Even Unix might not be as bad on Real Programmers as it once was. The latest release of Unix has the potential of an operating system worthy of any Real Programmer - two different and subtly incompatible user interfaces, an arcane and complicated teletype driver, virtual memory. If you ignore the fact that it's "structured", even 'C' programming can be appreciated by the Real Programmer: after all, there's no type checking, variable names are seven (ten? eight?) characters long, and the added bonus of the Pointer data type is thrown in - like having the best parts of Fortran and assembly language in one place. (Not to mention some of the more creative uses for

Real World ::: 1. Those institutions at which programming may be used in the same sentence as Fortran, COBOL, RPG, IBM, DBASE, etc. Places where programs do such commercially necessary but intellectually uninspiring things as generating payroll checks and invoices.2. The location of non-programmers and activities not related to programming.3. A bizarre dimension in which the standard dress is shirt and tie and in which a person's working hours are defined as 9 to 5 (see code grinder).4. Anywhere outside a university. Poor fellow, he's left MIT and gone into the Real World. Used pejoratively by those not in residence there. In conversation, because the Cambridge campus is actually coextensive with the centre of Cambridge.See also fear and loathing, mundane, uninteresting.

Real World 1. Those institutions at which "programming" may be used in the same sentence as "Fortran", "{COBOL}", "RPG", "{IBM}", "DBASE", etc. Places where programs do such commercially necessary but intellectually uninspiring things as generating payroll checks and invoices. 2. The location of non-programmers and activities not related to programming. 3. A bizarre dimension in which the standard dress is shirt and tie and in which a person's working hours are defined as 9 to 5 (see {code grinder}). 4. Anywhere outside a university. "Poor fellow, he's left MIT and gone into the Real World." Used pejoratively by those not in residence there. In conversation, talking of someone who has entered the Real World is not unlike speaking of a deceased person. It is also noteworthy that on the campus of Cambridge University in England, there is a gaily-painted lamp-post which bears the label "REALITY CHECKPOINT". It marks the boundary between university and the Real World; check your notions of reality before passing. This joke is funnier because the Cambridge "campus" is actually coextensive with the centre of Cambridge. See also {fear and loathing}, {mundane}, {uninteresting}.

red wire ::: (IBM) Patch wires installed by programmers who have no business mucking with the hardware. It is said that the only thing more dangerous than a hardware guy with a code patch is a softy with a soldering iron.Compare blue wire, yellow wire, purple wire.[Jargon File] (1994-12-23)

red wire "jargon, hardware" (IBM) Patch wires installed by programmers who have no business mucking with the hardware. It is said that the only thing more dangerous than a hardware guy with a code patch is a {softy} with a soldering iron. Compare {blue wire}, {yellow wire}, {purple wire}. [{Jargon File}] (1994-12-23)

refactoring ::: (object-oriented, programming) Improving a computer program by reorganising its internal structure without altering its external behaviour.When software developers add new features to a program, the code degrades because the original program was not designed with the extra features in mind.This problem could be solved by either rewriting the existing code or working around the problems which arise when adding the new features. Redesigning a have been designed to provide an alternative to the two situations mentioned above.The techniques enable programmers to restructure code so that the design of a program is clearer. It also allows programmers to extract reusable components, streamline a program, and make additions to the program easier to implement.Refactoring is usually done by renaming methods, moving fields from one class to another, and moving code into a separate method.Although it is done using small and simple steps, refactoring a program will vastly improve its design and structure, making it easier to maintain and leading to more robust code. . .(2001-05-02)

refactoring "object-oriented, programming" Improving a computer {program} by reorganising its internal structure without altering its external behaviour. When software developers add new features to a program, the code degrades because the original program was not designed with the extra features in mind. This problem could be solved by either rewriting the existing code or working around the problems which arise when adding the new features. Redesigning a program is extra work, but not doing so would create a program which is more complicated than it needs to be. Refactoring is a collection of techniques which have been designed to provide an alternative to the two situations mentioned above. The techniques enable programmers to restructure code so that the design of a program is clearer. It also allows programmers to extract {reusable components}, streamline a program, and make additions to the program easier to implement. Refactoring is usually done by renaming {methods}, moving {fields} from one {class} to another, and moving code into a separate method. Although it is done using small and simple steps, refactoring a program will vastly improve its design and structure, making it easier to maintain and leading to more robust code. {"Refactoring, Reuse & Reality" by Bill Opdyke (http://st-www.cs.uiuc.edu/users/opdyke/wfo.990201.refac.html)}. {"Refactoring, a first example" by Martin Fowler (http://aw.com/cseng/titles/0-201-89542-0/vidrefact/vidrefact.html)}. (2001-05-02)

Remote Procedure Call "networking, programming" (RPC) A {protocol} which allows a program running on one {host} to cause code to be executed on another host without the programmer needing to explicitly code for this. RPC is an easy and popular paradigm for implementing the {client-server} model of {distributed computing}. An RPC is initiated by the caller (client) sending request message to a remote system (the server) to execute a certain procedure using arguments supplied. A result message is returned to the caller. There are many variations and subtleties in various implementations, resulting in a variety of different (incompatible) RPC {protocols}. {Sun} RPC is defined in {RFC 1057} and {ONC} RPC in {RFC 1831}. (2003-06-04)

Remote Procedure Call ::: (networking, programming) (RPC) A protocol which allows a program running on one host to cause code to be executed on another host without the programmer various implementations, resulting in a variety of different (incompatible) RPC protocols.Sun RPC is defined in RFC 1057 and ONC RPC in RFC 1831.(2003-06-04)

Report Program Generator ::: (tool) (RPG) An IBM programming language developed by Wilf Hey at IBM in 1965 for easy production of sophisticated large system reports.RPG is a 3GL similar to COBOL, but more concise and supposedly easier for non-programmers to use. It processes its input one line at a time and does not treat tables as conceptual entities.It was popular on System 34/36 minicomputers.Versions: RPG II, RPG III, RPG/400 for IBM AS/400. MS-DOS versions by California Software and Lattice. Unix version by Unibol. Cross-platform version by J & C Migrations runs on MS-DOS, Windows, AIX, HP-UX, and OS/390.See also CL, OCL.(2004-08-24)

Report Program Generator "tool" (RPG) An {IBM} programming language developed by {Wilf Hey} at {IBM} in 1965 for easy production of sophisticated large system reports. RPG is a {3GL} similar to {COBOL}, but more concise and supposedly easier for non-programmers to use. It processes its input one line at a time and does not treat tables as {conceptual entities}. It was popular on {System 34}/36 {minicomputers}. Versions: RPG II, RPG III, RPG/400 for IBM {AS/400}. {MS-DOS} versions by {California Software} and {Lattice}. {Unix} version by {Unibol}. {Cross-platform} version by {J & C Migrations} runs on {MS-DOS}, {Windows}, {AIX}, {HP-UX}, and {OS/390}. See also {CL}, {OCL}. (2004-08-24)

RISC OS "operating system" (Reduced Instruction Set Computer Operating System) The {operating system} originally developed by {Acorn Computers} for their {Archimedes} family of {personal computers}. RISC OS replaced the {Arthur} operating system used on the first Archimedeses. It is written in {ARM} {assembly code} and distributed on {ROM} so it takes up no disk space and takes no time to load. It supports {cooperative multitasking} with memory management and includes a {graphical user interface} or "WIMP". It is written in a highly modular style and makes extensive use of {vectors} so it is easy to modify and extend by loading new modules in {RAM}. Many {system calls} (called "SWIs" - software interrupts) are available to application programmers and some of these are available as user comands via a built-in {command-line interpreter}. RISC OS also supported {outline fonts} when only {bitmap fonts} were available on most other {platforms}. Following the virtual demise of Acorn, development of RISC OS 4 was taken over by {RISCOS Ltd} on 1999-03-05 and released on 1999-07-01. (2004-09-21)

Ruby "language" 1. A {relational language} designed by Jones and M. Sheeran in 1986 for describing and designing circuits (a {hardware description language}). Ruby programs denote {binary relations} and programs are built-up inductively from primitive relations using a pre-defined set of {relational operators}. Ruby programs also have a geometric interpretation as networks of primitive relations connected by wires, which is important when layout is considered in circuit design. Ruby has been continually developed since 1986, and has been used to design many different kinds of circuits, including {systolic arrays}, {butterfly networks} and arithmetic circuits. {(ftp://ftp.cs.chalmers.se/pub/misc/ruby/)}. E-mail: "graham@cs.chalmers.se". ["Ruby - A Language of Relations and Higher-Order Functions", M. Sheeran, Proc 3rd Banff Workshop on Hardware Verification, Springer 1990]. (1994-10-27) 2. One of five pedagogical languages based on {Markov algorithms}, used in Higman's report (below). The other languages are {Brilliant}, {Diamond}, {Nonpareil}, and {Pearl}. ["Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968)]. (1994-10-27) 3. A fully {object oriented} {interpreted} {scripting language} by Yukihiro Matsumoto "matz@netlab.co.jp". Similar in scope to {Perl} and {Python}, Ruby has high-level {data types}, automatic {memory management}, {dynamic typing}, a {module} system, {exceptions}, and a rich standard library. Other features are {CLU}-style {iterators} for {loop abstraction}, {singleton classes}/{methods} and {lexical closures}. In Ruby, everything is an {object}, including the basic data types. For example, the number 1 is an instance of {class} Fixnum. Current version (stable): 1.6.7, as of 2002-03-01. {Ruby Home (http://ruby-lang.org/)}. {Ruby Central (http://rubycentral.com/)}. ["Programming Ruby - The Pragmatic Programmer's Guide", David Thomas, Andrew Hunt, Yukihiro Matsumoto pub. Addison Wesley 2000]. (2002-06-19)

Ruby ::: (language)1. A relational language designed by Jones and M. Sheeran in 1986 for describing and designing circuits (a hardware description language). Ruby programs denote geometric interpretation as networks of primitive relations connected by wires, which is important when layout is considered in circuit design.Ruby has been continually developed since 1986, and has been used to design many different kinds of circuits, including systolic arrays, butterfly networks and arithmetic circuits. .E-mail: .[Ruby - A Language of Relations and Higher-Order Functions, M. Sheeran, Proc 3rd Banff Workshop on Hardware Verification, Springer 1990]. (1994-10-27)2. One of five pedagogical languages based on Markov algorithms, used in Higman's report (below). The other languages are Brilliant, Diamond, Nonpareil, and Pearl.[Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics, B. Higman, ULICS Intl Report No ICSI 170, U London (1968)]. (1994-10-27)3. A fully object oriented interpreted scripting language by Yukihiro Matsumoto .Similar in scope to Perl and Python, Ruby has high-level data types, automatic memory management, dynamic typing, a module system, exceptions, and a rich standard library. Other features are CLU-style iterators for loop abstraction, singleton classes/methods and lexical closures.In Ruby, everything is an object, including the basic data types. For example, the number 1 is an instance of class Fixnum.Current version (stable): 1.6.7, as of 2002-03-01. . .[Programming Ruby - The Pragmatic Programmer's Guide, David Thomas, Andrew Hunt, Yukihiro Matsumoto pub. Addison Wesley 2000].(2002-06-19)

salt mines ::: Dense quarters housing large numbers of programmers working long hours on grungy projects, with some hope of seeing the end of the tunnel in N years. Noted for their absence of sunshine. Compare playpen, sandbox.[Jargon File]

salt mines Dense quarters housing large numbers of programmers working long hours on grungy projects, with some hope of seeing the end of the tunnel in N years. Noted for their absence of sunshine. Compare {playpen}, {sandbox}. [{Jargon File}]

same-day service "humour, operating system" An ironic term used to describe long response time, particularly with respect to {MS-DOS} {system calls} (which ought to require only a tiny fraction of a second to execute). Such response time is a major incentive for programmers to write programs that are not {well-behaved}. See also {PC-ism}. [{Jargon File}] (1996-12-17)

same-day service ::: (humour, operating system) An ironic term used to describe long response time, particularly with respect to MS-DOS system calls (which ought to require only a tiny fraction of a second to execute). Such response time is a major incentive for programmers to write programs that are not well-behaved.See also PC-ism.[Jargon File] (1996-12-17)

singleton variable "programming" A {variable} which is only referred to once in a piece of code, probably because of a programming mistake. To be useful, a variable must be set and read from, in that order. If it is only referred to once then it cannot be both set and read. There are various exceptions. {C}-like {assignment operators}, e.g. "x += y", read and set x and return its new value (they are abbreviations for "x = x+y", etc). A {function} {argument} may be passed only for the sake of uniformity or to support future enhancements. A good {compiler} or a {syntax} checker like {lint} should report singleton variables but also allow specific instances to be marked as deliberate by the programmer. (1997-12-20)

singleton variable ::: (programming) A variable which is only referred to once in a piece of code, probably because of a programming mistake. To be useful, a variable must be set and read from, in that order. If it is only referred to once then it cannot be both set and read.There are various exceptions. C-like assignment operators, e.g. x += y, read and set x and return its new value (they are abbreviations for x = x+y, etc). singleton variables but also allow specific instances to be marked as deliberate by the programmer. (1997-12-20)

SNOBOL2 A {SNOBOL} variant which existed only briefly. It featured built-in functions, but not programmer-defined ones. ["SNOBOL2", D.J. Farber, R.E. Griswold and I.P. Polonsky, TR Bell Labs, Apr 1964].

SNOBOL2 ::: A SNOBOL variant which existed only briefly. It featured built-in functions, but not programmer-defined ones.[SNOBOL2, D.J. Farber, R.E. Griswold and I.P. Polonsky, TR Bell Labs, Apr 1964].

software patent ::: (legal) A patent intended to prevent others from using some programming technique.There have been several infamous patents for software techniques which most experienced programmers would consider fundamental or trivial, such as the idea because programmers would have to worry about patents when designing or choosing algorithms.There are over ten thousand software patents in the US, and several thousand more are issued each year. Each one may be owned by, or could be bought by, a one group at a time, while advising the rest of us to relax because we are in no danger today.Compuserve developed the GIF format for graphical images many years ago, not knowing about Unisys's 1985 patent covering the LZW data compression algorithm Unisys when they decide it's our turn. So much trouble from just one software patent.Patents in the UK can't describe algorithms or mathematical methods.See also LPF, software law. . (1995-01-06)

software patent "legal" A patent intended to prevent others from using some programming technique. There have been several infamous patents for software techniques which most experienced programmers would consider fundamental or trivial, such as the idea of using {exclusive-or} to plot a cursor on a {bitmap display}. The spread of software patents could stifle innovation and make programming much harder because programmers would have to worry about patents when designing or choosing {algorithms}. There are over ten thousand software patents in the US, and several thousand more are issued each year. Each one may be owned by, or could be bought by, a grasping company whose lawyers carefully plan to attack people at their most vulnerable moments. Of course, they couch the threat as a "reasonable offer" to save you miserable years in court. "Divide and conquer" is the watchword: pursue one group at a time, while advising the rest of us to relax because we are in no danger today. Compuserve developed the {GIF} format for graphical images many years ago, not knowing about {Unisys}'s 1985 patent covering the {LZW} data compression {algorithm} used in GIF. GIF was subsequently adopted widely on the {Internet}. In 1994 Unisys threatened to sue Compuserve, forcing them to impose a sublicensing agreement for GIF on their users. Compuserve users can accept this agreement now, or face Unisys later on their own. The rest of us don't have a choice -- we get to face Unisys when they decide it's our turn. So much trouble from just one software patent. Patents in the UK can't describe {algorithms} or mathematical methods. See also {LPF}, {software law}. {patent search (http://sunsite.unc.edu/patents/intropat.html)}. (1995-01-06)

software tool "programming" A program that aids in the development of other programs. It may assist the programmer in the design, code, compile, link, edit, or debug phases. (1996-05-28)

software tool ::: (programming) A program that aids in the development of other programs. It may assist the programmer in the design, code, compile, link, edit, or debug phases. (1996-05-28)

SOLO ::: [SOL (Semantic Operating Language) + LOGO]. A variant of LOGO with primitives for dealing with semantic networks and pattern matching rather than lists.[A User-Friendly Software Environment for the Novice Programmer, M. Eisenstadt , CACM 27(12):1056-1064 (1983)].

SOLO [SOL (Semantic Operating Language) + LOGO]. A variant of {LOGO} with primitives for dealing with {semantic networks} and {pattern matching} rather than lists. ["A User-Friendly Software Environment for the Novice Programmer", M. Eisenstadt "marc@open.ac.uk", CACM 27(12):1056-1064 (1983)].

source code ::: (language, programming) (Or source, or rarely source language) The form in which a computer program is written by the programmer. Source code is written in some formal programming language which can be compiled automatically into object code or machine code or executed by an interpreter. (1995-01-05)

source code "language, programming" (Or "source", or rarely "source language") The form in which a {computer program} ({software}) is written by the {programmer}. Source code is written in some formal {programming language} which can be {compiled} automatically into {object code} or {machine code} or executed by an {interpreter}. Source code might be stored in a {source code management} system. If you have the source code for a program rather than just its compiled, executable form, then you can, with the right tools, modify it to fix {bugs} or add new {features}. This is the basis of the {open source} philosophy - empowering people to improve the software they use for the benefit of themselves and others. The {Jargon File} would have us believe that an old-time hacker might refer to source code informally as "English", with the implication that to him his favourite {programming language} is at least as readable as English. (2014-06-27)

source-level debugger "programming, tool" A {debugger} that shows the programmer the line or {expression} in the {source code} that resulted in a particular {machine code} instruction of a running program loaded in memory. This helps the programmer to analyse a program's behaviour in the high-level terms like source-level {flow control} constructs, {procedure} calls, named {variables}, etc instead of {machine instructions} and memory locations. Source-level debugging also makes it possible to step through execution a line at a time and set source-level {breakpoints}. In order to support source-level debugging, the program must be compiled with this option enabled so that extra information is included in the executable code to identify the corresponding positions in the source code. A {symbolic debugger} is one level lower - it displays symbols (procedure and variable names) stored in the executable but not individual source code lines. {GDB} is a widely used example of a source-level debugger. (2007-04-03)

SPECOL ::: [SPECOL - A Computer Enquiry Language for the Non-Programmer, B.T. Smith, Computer J 11:121 (1968)].

SPECOL ["SPECOL - A Computer Enquiry Language for the Non-Programmer", B.T. Smith, Computer J 11:121 (1968)].

spin ::: Equivalent to buzz. More common among C and Unix programmers.[Jargon File]

spin "programming, jargon" Equivalent to {buzz}. More common among {C} and {Unix} programmers. [{Jargon File}] (2008-01-21)

SRC Modula-3 Version 2.11 compiler(-"C), run-time, library, documentation The goal of Modula-3 is to be as simple and safe as it can be while meeting the needs of modern systems programmers. Instead of exploring new features, we studied the features of the Modula family of languages that have proven themselves in practice and tried to simplify them into a harmonious language. We found that most of the successful features were aimed at one of two main goals: greater robustness, and a simpler, more systematic type system. Modula-3 retains one of Modula-2's most successful features, the provision for explicit interfaces between modules. It adds objects and classes, exception handling, garbage collection, lightweight processes (or threads), and the isolation of unsafe features. conformance: implements the language defined in SPwM3. ports: i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix 68020/HP-UX RS/6000/AIX IBMRT/4.3 68000/NEXTSTEP i860/SVR4 SPARC/SunOS 68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix Mailing list: comp.lang.modula3 E-mail: Bill Kalsow "kalsow@src.dec.com" From DEC/SRC, Palo Alto, CA. "Modula-3 Report (revised)" Luca Cardelli et al. {(ftp://gatekeeper.dec.com/DEC/Modula-3/)}. (1992-02-09)

subroutine "programming" (Or "procedure") A sequence of {instructions} for performing a particular task. Most programming languages, including most {machine languages}, allow the programmer to define subroutines. This allows the subroutine code to be called from multiple places, even from within itself (in which case it is called {recursive}). The programming language implementation takes care of returning control to (just after) the calling location, usually with the support of call and return instructions at {machine language} level. Most languages also allow {arguments} to be passed to the subroutine, and one, or occasionally more, {return values} to be passed back. A {function} is often very similar to a subroutine, the main difference being that it is called chiefly for its return value, rather than for any {side effects}. (1996-10-01)

superprogrammer A prolific programmer; one who can code exceedingly well and quickly. Not all hackers are superprogrammers, but many are. Productivity can vary from one programmer to another by three orders of magnitude. For example, one programmer might be able to write an average of three lines of working code in one day, while another, with the proper tools, might be able to write 3,000. This range is astonishing; it is matched in very few other areas of human endeavour. The term "superprogrammer" is more commonly used within such places as IBM than in the hacker community. It tends to stress naive measures of productivity and to underweight creativity, ingenuity, and getting the job *done* - and to sidestep the question of whether the 3,000 lines of code do more or less useful work than three lines that do the {Right Thing}. Hackers tend to prefer the terms {hacker} and {wizard}. [{Jargon File}]

superprogrammer ::: A prolific programmer; one who can code exceedingly well and quickly. Not all hackers are superprogrammers, but many are. Productivity can vary from one while another, with the proper tools, might be able to write 3,000. This range is astonishing; it is matched in very few other areas of human endeavour.The term superprogrammer is more commonly used within such places as IBM than in the hacker community. It tends to stress naive measures of productivity and work than three lines that do the Right Thing. Hackers tend to prefer the terms hacker and wizard.[Jargon File]

syntactic salt ::: The opposite of syntactic sugar, a feature designed to make it harder to write bad code. Specifically, syntactic salt is a hoop the programmer must jump in that it tends to raise hackers' blood pressures in an unhealthy way. Compare candygrammar.[Jargon File]

syntactic salt The opposite of {syntactic sugar}, a feature designed to make it harder to write bad code. Specifically, syntactic salt is a hoop the programmer must jump through just to prove that he knows what's going on, rather than to express a program action. Some programmers consider required type declarations to be syntactic salt. A requirement to write "end if", "end while", "end do", etc. to terminate the last block controlled by a control construct (as opposed to just "end") would definitely be syntactic salt. Syntactic salt is like the real thing in that it tends to raise hackers' blood pressures in an unhealthy way. Compare {candygrammar}. [{Jargon File}]

syntactic sugar Term coined by Peter Landin for additions to the syntax of a language which do not affect its expressiveness but make it "sweeter" for humans to use. Syntactic sugar gives the programmer an alternative way of coding that is more succinct or more like some familiar notation. It does not affect the expressiveness of the formalism (compare {chrome}). Syntactic sugar can be easily translated ("desugared") to produce a program in some simpler "core" syntax. E.g. C's "a[i]" notation is syntactic sugar for "*(a + i)". In a (curried) functional language, all operators are really functions and the use of {infix notation} "x+y" is syntactic sugar for function application "(+) x y". Alan Perlis once quipped, "Syntactic sugar causes cancer of the semicolon." The variants "syntactic saccharin" and "syntactic syrup" are also recorded. These denote something even more gratuitous, in that they serve no purpose at all. Compare {candygrammar}, {syntactic salt}.

sysprog {Systems programmer}

system administration "job" Activities performed by a system administrator (or "admin", "sysadmin", "site admin") such as monitoring security configuration, managing allocation of {user names} and {passwords}, monitoring disk space and other resource use, performing {backups}, and setting up new hardware and software. system administrators often also help users, though in a large organisation this may be a separate job. Compare {postmaster}, {sysop}, {system management}, {systems programmer}. [Other tasks?] (1999-05-02)

system administration ::: (job) Activities performed by a system administrator (or admin, sysadmin, site admin) such as monitoring security configuration, managing allocation of user names and passwords, monitoring disk space and other resource use, performing backups, and setting up new hardware and software.system administrators often also help users, though in a large organisation this may be a separate job.Compare postmaster, sysop, system management, systems programmer.[Other tasks?] (1999-05-02)

system mangler "humour" A humorous synonym for "{system manager}", possibly from the fact that one major {IBM} {operating system} had a {root} account called SYSMANGR. The term refers specifically to a systems programmer in charge of administration, software maintenance, and updates at some site. Unlike {admin}, this term emphasises the technical end of the skills involved. [{Jargon File}] (1995-11-10)

Systems Analysis Definition ::: (programming) (SAD) The analysis of the role of a proposed system and the identification of the requirements that it should meet. SAD is the starting identifying requirements (i.e. systems analysis) and producing a design. The programmers are then responsible for implementing it. (1996-03-07)

Systems Analysis Definition "programming" (SAD) The analysis of the role of a proposed system and the identification of the requirements that it should meet. SAD is the starting point for system design. The term is most commonly used in the context of commercial programming, where software developers are often classed as either {systems analysts} or programmers. The systems analysts are responsible for identifying requirements (i.e. systems analysis) and producing a design. The programmers are then responsible for implementing it. (1996-03-07)

systems programmer "job" (sysprog) A generic job title that covers a variety of specialist roles such as writing low-level code that talks to directly to the {operating system} on a {server}. Typical skills required are experience of specific operating systems, networking ({TCP/IP}, {ATM}, {Ethernet}, {DNS}), electronic mail ({POP}, {IMAP}, {SMTP}), {web servers}, {RDBMS}, operating system and network security, and hardware ({SCSI}, {hard disks}, and {backup} devices). Contrast: {system administration}. (1999-09-14)

systems programmer ::: (job) (sysprog) A generic job title that covers a variety of specialist roles such as writing low-level code that talks to directly to the operating system on a server.Typical skills required are experience of specific operating systems, networking (TCP/IP, ATM, Ethernet, DNS), electronic mail (POP, IMAP, SMTP), web servers, RDBMS, operating system and network security, and hardware (SCSI, hard disks, and backup devices).Contrast: system administration. (1999-09-14)

systems programming ::: systems programmer

systems programming {systems programmer}

Telescript A communications-oriented programming language using "active software agents", released by {General Magic} in 1994. What {PostScript} did for cross-{platform}, device-independent documents, Telescript aims to do for cross-{platform}, network-independent messaging. Telescript protects programmers from many of the complexities of network {protocols}. (1995-01-16)

Telescript ::: A communications-oriented programming language using active software agents, released by General Magic in 1994. What PostScript did for cross-platform, network-independent messaging. Telescript protects programmers from many of the complexities of network protocols. (1995-01-16)

tense Of programs, very clever and efficient. A tense piece of code often got that way because it was highly {bum}med, but sometimes it was just based on a great idea. A comment in a clever routine by Mike Kazar, once a grad-student hacker at CMU: "This routine is so tense it will bring tears to your eyes." A tense programmer is one who produces tense code. [{Jargon File}]

tense ::: Of programs, very clever and efficient. A tense piece of code often got that way because it was highly bummed, but sometimes it was just based on a great idea. A This routine is so tense it will bring tears to your eyes. A tense programmer is one who produces tense code.[Jargon File]

TeX ::: (publication) /tekh/ An extremely powerful macro-based text formatter written by Donald Knuth, very popular in academia, especially in the computer-science community (it is good enough to have displaced Unix troff, the other favoured formatter, even at many Unix installations).The first version of TeX was written in the programming language SAIL, to run on a PDP-10 under Stanford's WAITS operating system.Knuth began TeX because he had become annoyed at the declining quality of the typesetting in volumes I-III of his monumental Art of Computer Programming grand hackish projects have started as a bit of toolsmithing on the way to something else; Knuth's diversion was simply on a grander scale than most.Guy Steele happened to be at Stanford during the summer of 1978, when Knuth was developing his first version of TeX. When he returned to MIT that fall, he rewrote TeX's I/O to run under ITS.TeX has also been a noteworthy example of free, shared, but high-quality software. Knuth offers monetary awards to people who find and report a bug in so full of cutting edge technique) that it is said to have unearthed at least one bug in every Pascal system it has been compiled with.TeX fans insist on the correct (guttural) pronunciation, and the correct spelling (all caps, squished together, with the E depressed below the baseline; user), TeXhacker (TeX programmer), TeXmaster (competent TeX programmer), TeXhax, and TeXnique.Several document processing systems are based on TeX, notably LaTeX Lamport TeX - incorporates document styles for books, letters, slides, etc., jadeTeX uses for bibliographies (distributed with LaTeX), PDFTeX modifies TeX to produce PDF and Omega extends TeX to use the Unicode character set.For some reason, TeX uses its own variant of the point, the TeX point.See also Comprehensive TeX Archive Network. .E-mail: (TeX User's group, Oregon, USA).(2002-03-11)

TeX "publication" /tekh/ An extremely powerful {macro}-based text formatter written by {Donald Knuth}, very popular in academia, especially in the computer-science community (it is good enough to have displaced {Unix} {troff}, the other favoured formatter, even at many {Unix} installations). The first version of TeX was written in the programming language {SAIL}, to run on a {PDP-10} under Stanford's {WAITS} {operating system}. Knuth began TeX because he had become annoyed at the declining quality of the typesetting in volumes I-III of his monumental "Art of Computer Programming" (see {Knuth}, also {bible}). In a manifestation of the typical hackish urge to solve the problem at hand once and for all, he began to design his own typesetting language. He thought he would finish it on his sabbatical in 1978; he was wrong by only about 8 years. The language was finally frozen around 1985, but volume IV of "The Art of Computer Programming" has yet to appear as of mid-1997. (However, the third edition of volumes I and II have come out). The impact and influence of TeX's design has been such that nobody minds this very much. Many grand hackish projects have started as a bit of {toolsmithing} on the way to something else; Knuth's diversion was simply on a grander scale than most. {Guy Steele} happened to be at Stanford during the summer of 1978, when Knuth was developing his first version of TeX. When he returned to {MIT} that fall, he rewrote TeX's {I/O} to run under {ITS}. TeX has also been a noteworthy example of free, shared, but high-quality software. Knuth offers monetary awards to people who find and report a bug in it: for each bug the award is doubled. (This has not made Knuth poor, however, as there have been very few bugs and in any case a cheque proving that the owner found a bug in TeX is rarely cashed). Though well-written, TeX is so large (and so full of cutting edge technique) that it is said to have unearthed at least one bug in every {Pascal} system it has been compiled with. TeX fans insist on the correct (guttural) pronunciation, and the correct spelling (all caps, squished together, with the E depressed below the baseline; the mixed-case "TeX" is considered an acceptable {kluge} on {ASCII}-only devices). Fans like to proliferate names from the word "TeX" - such as TeXnician (TeX user), TeXhacker (TeX programmer), TeXmaster (competent TeX programmer), TeXhax, and TeXnique. Several document processing systems are based on TeX, notably {LaTeX} Lamport TeX - incorporates document styles for books, letters, slides, etc., {jadeTeX} uses TeX as a backend for printing from {James' DSSSL Engine}, and {Texinfo}, the {GNU} document processing system. Numerous extensions to TeX exist, among them {BibTeX} for bibliographies (distributed with LaTeX), {PDFTeX} modifies TeX to produce {PDF} and {Omega} extends TeX to use the {Unicode} character set. For some reason, TeX uses its own variant of the {point}, the {TeX point}. See also {Comprehensive TeX Archive Network}. {(ftp://labrea.stanford.edu/tex/)}. E-mail: "tug@tug.org" (TeX User's group, Oregon, USA). (2002-03-11)

The story of Mel, a Real Programmer "programming, person" A 1983 article by Ed Nather about {hacker} {Mel Kaye}. The full text follows. A recent article devoted to the macho side of programming made the bald and unvarnished statement, "Real Programmers write in FORTRAN". Maybe they do now, in this decadent era of Lite beer, hand calculators and "user-friendly" software but back in the Good Old Days, when the term "software" sounded funny and Real Computers were made out of {drums} and {vacuum tubes}, Real Programmers wrote in {machine code} - not {Fortran}, not {RATFOR}, not even {assembly language} - {Machine Code}, raw, unadorned, inscrutable {hexadecimal} numbers, directly. Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name. I first met Mel when I went to work for {Royal McBee Computer Corporation}, a now-defunct subsidiary of the typewriter company. The firm manufactured the {LGP-30}, a small, cheap (by the standards of the day) {drum}-memory computer, and had just started to manufacture the RPC-4000, a much-improved, bigger, better, faster -- drum-memory computer. Cores cost too much, and weren't here to stay, anyway. (That's why you haven't heard of the company, or the computer.) I had been hired to write a {Fortran} compiler for this new marvel and Mel was my guide to its wonders. Mel didn't approve of compilers. "If a program can't rewrite its own code," he asked, "what good is it?" Mel had written, in {hexadecimal}, the most popular computer program the company owned. It ran on the {LGP-30} and played blackjack with potential customers at computer shows. Its effect was always dramatic. The LGP-30 booth was packed at every show, and the IBM salesmen stood around talking to each other. Whether or not this actually sold computers was a question we never discussed. Mel's job was to re-write the blackjack program for the {RPC-4000}. ({Port}? What does that mean?) The new computer had a one-plus-one addressing scheme, in which each machine instruction, in addition to the {operation code} and the address of the needed {operand}, had a second address that indicated where, on the revolving drum, the next instruction was located. In modern parlance, every single instruction was followed by a {GO TO}! Put *that* in {Pascal}'s pipe and smoke it. Mel loved the RPC-4000 because he could optimize his code: that is, locate instructions on the drum so that just as one finished its job, the next would be just arriving at the "read head" and available for immediate execution. There was a program to do that job, an "optimizing assembler", but Mel refused to use it. "You never know where its going to put things", he explained, "so you'd have to use separate constants". It was a long time before I understood that remark. Since Mel knew the numerical value of every operation code, and assigned his own drum addresses, every instruction he wrote could also be considered a numerical constant. He could pick up an earlier "add" instruction, say, and multiply by it, if it had the right numeric value. His code was not easy for someone else to modify. I compared Mel's hand-optimised programs with the same code massaged by the optimizing assembler program, and Mel's always ran faster. That was because the "{top-down}" method of program design hadn't been invented yet, and Mel wouldn't have used it anyway. He wrote the innermost parts of his program loops first, so they would get first choice of the optimum address locations on the drum. The optimizing assembler wasn't smart enough to do it that way. Mel never wrote time-delay loops, either, even when the balky {Flexowriter} required a delay between output characters to work right. He just located instructions on the drum so each successive one was just *past* the read head when it was needed; the drum had to execute another complete revolution to find the next instruction. He coined an unforgettable term for this procedure. Although "optimum" is an absolute term, like "unique", it became common verbal practice to make it relative: "not quite optimum" or "less optimum" or "not very optimum". Mel called the maximum time-delay locations the "most pessimum". After he finished the blackjack program and got it to run, ("Even the initialiser is optimised", he said proudly) he got a Change Request from the sales department. The program used an elegant (optimised) {random number generator} to shuffle the "cards" and deal from the "deck", and some of the salesmen felt it was too fair, since sometimes the customers lost. They wanted Mel to modify the program so, at the setting of a sense switch on the console, they could change the odds and let the customer win. Mel balked. He felt this was patently dishonest, which it was, and that it impinged on his personal integrity as a programmer, which it did, so he refused to do it. The Head Salesman talked to Mel, as did the Big Boss and, at the boss's urging, a few Fellow Programmers. Mel finally gave in and wrote the code, but he got the test backward, and, when the sense switch was turned on, the program would cheat, winning every time. Mel was delighted with this, claiming his subconscious was uncontrollably ethical, and adamantly refused to fix it. After Mel had left the company for greener pa$ture$, the Big Boss asked me to look at the code and see if I could find the test and reverse it. Somewhat reluctantly, I agreed to look. Tracking Mel's code was a real adventure. I have often felt that programming is an art form, whose real value can only be appreciated by another versed in the same arcane art; there are lovely gems and brilliant coups hidden from human view and admiration, sometimes forever, by the very nature of the process. You can learn a lot about an individual just by reading through his code, even in hexadecimal. Mel was, I think, an unsung genius. Perhaps my greatest shock came when I found an innocent loop that had no test in it. No test. *None*. Common sense said it had to be a closed loop, where the program would circle, forever, endlessly. Program control passed right through it, however, and safely out the other side. It took me two weeks to figure it out. The RPC-4000 computer had a really modern facility called an {index register}. It allowed the programmer to write a program loop that used an indexed instruction inside; each time through, the number in the index register was added to the address of that instruction, so it would refer to the next datum in a series. He had only to increment the index register each time through. Mel never used it. Instead, he would pull the instruction into a machine register, add one to its address, and store it back. He would then execute the modified instruction right from the register. The loop was written so this additional execution time was taken into account -- just as this instruction finished, the next one was right under the drum's read head, ready to go. But the loop had no test in it. The vital clue came when I noticed the index register bit, the bit that lay between the address and the operation code in the instruction word, was turned on-- yet Mel never used the index register, leaving it zero all the time. When the light went on it nearly blinded me. He had located the data he was working on near the top of memory -- the largest locations the instructions could address -- so, after the last datum was handled, incrementing the instruction address would make it overflow. The carry would add one to the operation code, changing it to the next one in the instruction set: a jump instruction. Sure enough, the next program instruction was in address location zero, and the program went happily on its way. I haven't kept in touch with Mel, so I don't know if he ever gave in to the flood of change that has washed over programming techniques since those long-gone days. I like to think he didn't. In any event, I was impressed enough that I quit looking for the offending test, telling the Big Boss I couldn't find it. He didn't seem surprised. When I left the company, the blackjack program would still cheat if you turned on the right sense switch, and I think that's how it should be. I didn't feel comfortable hacking up the code of a Real Programmer." [Posted to {Usenet} by its author, Ed Nather "utastro!nather", on 1983-05-21]. {Jargon File (http://www.catb.org/jargon/html/story-of-mel.html)}. [{On the trail of a Real Programmer (http://www.jamtronix.com/blog/2011/03/25/on-the-trail-of-a-real-programmer/)}, 2011-03-25 blog post by "jonno" at Jamtronix] [When did it happen? Did Mel use hexadecimal or octal?] (2003-09-12)

The story of Mel, a Real Programmer ::: (programming, person) An article devoted to the macho side of programming made the bald and unvarnished statement, Real Programmers write in Fortran. language - Machine Code. Raw, unadorned, inscrutable hexadecimal numbers, directly.Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name.I first met Mel when I went to work for Royal McBee Computer Corporation, a now-defunct subsidiary of the typewriter company. The firm manufactured the faster -- drum-memory computer. Cores cost too much, and weren't here to stay, anyway. (That's why you haven't heard of the company, or the computer.)I had been hired to write a Fortran compiler for this new marvel and Mel was my guide to its wonders. Mel didn't approve of compilers.If a program can't rewrite its own code, he asked, what good is it?Mel had written, in hexadecimal, the most popular computer program the company owned. It ran on the LGP-30 and played blackjack with potential customers at every show, and the IBM salesmen stood around talking to each other. Whether or not this actually sold computers was a question we never discussed.Mel's job was to re-write the blackjack program for the RPC-4000. (Port? What does that mean?) The new computer had a one-plus-one addressing scheme, in which drum, the next instruction was located. In modern parlance, every single instruction was followed by a GO TO! Put *that* in Pascal's pipe and smoke it.Mel loved the RPC-4000 because he could optimize his code: that is, locate instructions on the drum so that just as one finished its job, the next would be was a program to do that job, an optimizing assembler, but Mel refused to use it.You never know where its going to put things, he explained, so you'd have to use separate constants.It was a long time before I understood that remark. Since Mel knew the numerical value of every operation code, and assigned his own drum addresses, every pick up an earlier add instruction, say, and multiply by it, if it had the right numeric value. His code was not easy for someone else to modify.I compared Mel's hand-optimised programs with the same code massaged by the optimizing assembler program, and Mel's always ran faster. That was because the they would get first choice of the optimum address locations on the drum. The optimizing assembler wasn't smart enough to do it that way.Mel never wrote time-delay loops, either, even when the balky Flexowriter required a delay between output characters to work right. He just located practice to make it relative: not quite optimum or less optimum or not very optimum. Mel called the maximum time-delay locations the most pessimum.After he finished the blackjack program and got it to run, (Even the initialiser is optimised, he said proudly) he got a Change Request from the Mel to modify the program so, at the setting of a sense switch on the console, they could change the odds and let the customer win.Mel balked. He felt this was patently dishonest, which it was, and that it impinged on his personal integrity as a programmer, which it did, so he refused program would cheat, winning every time. Mel was delighted with this, claiming his subconscious was uncontrollably ethical, and adamantly refused to fix it.After Mel had left the company for greener pa$ture$, the Big Boss asked me to look at the code and see if I could find the test and reverse it. Somewhat reluctantly, I agreed to look. Tracking Mel's code was a real adventure.I have often felt that programming is an art form, whose real value can only be appreciated by another versed in the same arcane art; there are lovely gems and reading through his code, even in hexadecimal. Mel was, I think, an unsung genius.Perhaps my greatest shock came when I found an innocent loop that had no test in it. No test. *None*. Common sense said it had to be a closed loop, where the it, however, and safely out the other side. It took me two weeks to figure it out.The RPC-4000 computer had a really modern facility called an index register. It allowed the programmer to write a program loop that used an indexed instruction address of that instruction, so it would refer to the next datum in a series. He had only to increment the index register each time through. Mel never used it.Instead, he would pull the instruction into a machine register, add one to its address, and store it back. He would then execute the modified instruction right taken into account -- just as this instruction finished, the next one was right under the drum's read head, ready to go. But the loop had no test in it.The vital clue came when I noticed the index register bit, the bit that lay between the address and the operation code in the instruction word, was turned on-- yet Mel never used the index register, leaving it zero all the time. When the light went on it nearly blinded me.He had located the data he was working on near the top of memory -- the largest locations the instructions could address -- so, after the last datum was instruction set: a jump instruction. Sure enough, the next program instruction was in address location zero, and the program went happily on its way.I haven't kept in touch with Mel, so I don't know if he ever gave in to the flood of change that has washed over programming techniques since those that I quit looking for the offending test, telling the Big Boss I couldn't find it. He didn't seem surprised.When I left the company, the blackjack program would still cheat if you turned on the right sense switch, and I think that's how it should be. I didn't feel comfortable hacking up the code of a Real Programmer.[Posted to USENET by its author, Ed Nather utastro!nather>, on 1983-05-21]. .[When did it happen? Did Mel use hexadecimal or octal?](2003-09-12)

The story of Mel {The story of Mel, a Real Programmer}

time bomb ::: (software, security) A subspecies of logic bomb that is triggered by reaching some preset time, either once or periodically. There are numerous go off if the programmer is fired or laid off and is not present to perform the appropriate suppressing action periodically.Interestingly, the only such incident for which we have been pointed to documentary evidence took place in the Soviet Union in 1986! A disgruntled lots of attention in the Soviet Union because it was the first cracking case to make it to court there. The perpetrator got 3 years in jail.[Jargon File](2001-09-15)

time bomb "software, security" A subspecies of {logic bomb} that is triggered by reaching some preset time, either once or periodically. There are numerous legends about time bombs set up by programmers in their employers' machines, to go off if the programmer is fired or laid off and is not present to perform the appropriate suppressing action periodically. Interestingly, the only such incident for which we have been pointed to documentary evidence took place in the Soviet Union in 1986! A disgruntled programmer at the Volga Automobile Plant (where the Fiat clones called Ladas were manufactured) planted a time bomb which, a week after he'd left on vacation, stopped the entire main assembly line for a day. The case attracted lots of attention in the Soviet Union because it was the first cracking case to make it to court there. The perpetrator got 3 years in jail. [{Jargon File}] (2001-09-15)

token ::: 1. (grammar) A basic, grammatically indivisible unit of a language such as a keyword, operator or identifier. Compare: lexeme.2. (convention) (Or pumpkin) An abstact concept passed between cooperating agents to ensure synchronised access to a shared resource. Such a the token has exclusive access to the resource it controls. See for example token ring.If several programmers are working on a program, one programmer will have the token at any time, meaning that only he can change the program whereas others can only read it. If someone else wants to modify it he must first obtain the token. (1999-02-23)

token 1. "grammar" A basic, grammatically indivisible unit of a language such as a {keyword}, operator or identifier. Compare: {lexeme}. 2. "convention" (Or "{pumpkin}") An abstract concept passed between cooperating agents to ensure synchronised access to a shared resource. Such a token is never duplicated or destroyed (unless the resource is) and whoever has the token has exclusive access to the resource it controls. See for example {token ring}. If several programmers are working on a program, one programmer will "have the token" at any time, meaning that only he can change the program whereas others can only read it. If someone else wants to modify it he must first obtain the token. (1999-02-23)

toolbar "operating system" A common {graphical user interface} component, consisting of a permanently visible row of button {icons} that, when clicked with the {mouse}, cause the program to perform some action such as printing the current document or changing the {mode} of operation. The toolbar buttons often invoke functions accessible via {menus} but they are easier to use since they are permanently visible. A typical use would be in a {paint} program where the toolbar allows the users to select one of the various painting "tools" - brush, pencil, bucket etc. Some {application programs} under some {operating systems} may allow the user to customise the functions accessible via toolbars; in others, the choice is fixed by the programmer. (2003-10-24)

toolbar ::: (operating system) A common graphical user interface component, consisting of a permanently visible row of button icons that, when clicked with the mouse, cause the program to perform some action such as printing the current document or changing the mode of operation.The toolbar buttons often invoke functions accessible via menus but they are easier to use since they are permanently visible. A typical use would be in a paint program where the toolbar allows the users to select one of the various painting tools - brush, pencil, bucket etc.Some application programs under some operating systems may allow the user to customise the functions accessible via toolbars; in others, the choice is fixed by the programmer.(2003-10-24)

toolsmith The software equivalent of a tool-and-die specialist; one who specialises in making the {tools} with which other programmers create applications. Many hackers consider this more fun than applications per se; to understand why, see {uninteresting}. Jon Bentley, in the "Bumper-Sticker Computer Science" chapter of his book "More Programming Pearls", quotes Dick Sites from DEC as saying "I'd rather write programs to write programs than write programs". [{Jargon File}]

toolsmith ::: The software equivalent of a tool-and-die specialist; one who specialises in making the tools with which other programmers create applications. Many hackers his book More Programming Pearls, quotes Dick Sites from DEC as saying I'd rather write programs to write programs than write programs.[Jargon File]

toto ::: (programming) /toh-toh'/ The default scratch file name among French-speaking programmers - in other words, a francophone foo. The phonetic mutations titi, tata, and tutu canonically follow toto, analogously to bar, baz and quux in English.[Jargon File] (1995-04-18)

toto "programming" /toh-toh'/ The default {scratch file} name among French-speaking programmers; the French equivalent of {foo}. "toto" may be followed by the phonetic mutations "titi", "tata", and "tutu". [{Jargon File}] (1995-04-18)

trap ::: 1. A program interrupt, usually an interrupt caused by some exceptional situation in the user program. In most cases, the OS performs some action, then returns control to the program.2. To cause a trap. These instructions trap to the monitor. Also used transitively to indicate the cause of the trap. The monitor traps all input/output instructions.This term is associated with assembler programming (interrupt or exception is more common among HLL programmers) and appears to be fading into history 1), who use it to distinguish deterministically repeatable exceptions from timing-dependent ones (such as I/O interrupts).[Jargon File]

trap 1. A program interrupt, usually an interrupt caused by some exceptional situation in the user program. In most cases, the OS performs some action, then returns control to the program. 2. To cause a trap. "These instructions trap to the monitor." Also used transitively to indicate the cause of the trap. "The monitor traps all input/output instructions." This term is associated with assembler programming ("interrupt" or "exception" is more common among {HLL} programmers) and appears to be fading into history among programmers as the role of assembler continues to shrink. However, it is still important to computer architects and systems hackers (see {system}, sense 1), who use it to distinguish {deterministic}ally repeatable exceptions from timing-dependent ones (such as I/O interrupts). [{Jargon File}]

type system ::: In programming languages, a set of rules that assigns a property called type to the various constructs of a computer program, such as variables, expressions, functions, or modules.[315] These types formalize and enforce the otherwise implicit categories the programmer uses for algebraic data types, data structures, or other components (e.g. "string", "array of float", "function returning boolean"). The main purpose of a type system is to reduce possibilities for bugs in computer programs[316] by defining interfaces between different parts of a computer program, and then checking that the parts have been connected in a consistent way. This checking can happen statically (at compile time), dynamically (at run time), or as a combination of static and dynamic checking. Type systems have other purposes as well, such as expressing business rules, enabling certain compiler optimizations, allowing for multiple dispatch, providing a form of documentation, etc.

type "theory, programming" (Or "data type") A set of values from which a {variable}, {constant}, {function}, or other {expression} may take its value. A type is a classification of data that tells the {compiler} or {interpreter} how the programmer intends to use it. For example, the process and result of adding two variables differs greatly according to whether they are integers, floating point numbers, or strings. Types supported by most programming languages include {integers} (usually limited to some range so they will fit in one {word} of storage), {Booleans}, {floating point numbers}, and characters. {Strings} are also common, and are represented as {lists} of characters in some languages. If s and t are types, then so is s -" t, the type of {functions} from s to t; that is, give them a term of type s, functions of type s -" t will return a term of type t. Some types are {primitive} - built-in to the language, with no visible internal structure - e.g. Boolean; others are composite - constructed from one or more other types (of either kind) - e.g. {lists}, {arrays}, {structures}, {unions}. {Object-oriented programming} extends this with {classes} which encapsulate both the structure of a type and the operations that can be performed on it. Some languages provide {strong typing}, others allow {implicit type conversion} and/or {explicit type conversion}. (2003-12-22)

universal thunk ::: (programming, operating system) A software mechanism allowing a Windows 3.1 application to call a 32-bit dynamically linked library (DLL) under Win32s.The Windows 3.1 application which wants to call an entry in a 32-bit DLL instead calls a corresponding entry in a 16-bit DLL. The programmer must also include code to detect whether the 32-bit DLL is loaded. A 32-bit EXE loads the 32-bit DLL.See also Generic Thunk, Flat Thunk.[Calling a Win32 DLL from a Windows 3.1 Application, Win32 SDK Knowledge Base, Article ID Q97785].[Better explanation?] (1997-10-11)

universal thunk "programming, operating system" A software mechanism allowing a {Windows 3.1} {application} to call a {32-bit} {dynamically linked library} (DLL) under {Win32s}. The {Windows 3.1} {application} which wants to call an entry in a 32-bit DLL instead calls a corresponding entry in a {16-bit} DLL. The programmer must also include {code} to detect whether the {32-bit} DLL is loaded. A {32-bit} {EXE} loads the {32-bit} DLL. See also {Generic Thunk}, {Flat Thunk}. ["Calling a Win32 DLL from a Windows 3.1 Application", Win32 SDK Knowledge Base, Article ID Q97785]. [Better explanation?] (1997-10-11)

user ::: 1. (person) Someone doing real work with the computer, using it as a means rather than an end. Someone who pays to use a computer. A programmer who program, however skillfully, without getting into the internals of the program. One who reports bugs instead of just fixing them. See also luser, real user.Users are looked down on by hackers to some extent because they don't understand the full ramifications of the system in all its glory. The term is relative: a skillfully or not. Thus there is some overlap between the two terms; the subtle distinctions must be resolved by context.2. (jargon) Any person, organisation, process, device, program, protocol, or system which uses a service provided by others.The term client (as in client-server systems) is rather more specific, usually implying two processes communicating via some protocol.[Jargon File] (1996-04-28)

user 1. "person" Someone doing "real work" with the computer, using it as a means rather than an end. Someone who pays to use a computer. A programmer who will believe anything you tell him. One who asks silly questions without thinking for two seconds or looking in the documentation. Someone who uses a program, however skillfully, without getting into the internals of the program. One who reports {bugs} instead of just fixing them. See also {luser}, {real user}. Users are looked down on by {hackers} to some extent because they don't understand the full ramifications of the system in all its glory. The term is relative: a skilled hacker may be a user with respect to some program he himself does not hack. A LISP hacker might be one who maintains LISP or one who uses LISP (but with the skill of a hacker). A LISP user is one who uses LISP, whether skillfully or not. Thus there is some overlap between the two terms; the subtle distinctions must be resolved by context. 2. "jargon" Any person, organisation, process, device, program, {protocol}, or system which uses a service provided by others. The term "{client}" (as in "{client-server}" systems) is rather more specific, usually implying two processes communicating via some protocol. [{Jargon File}] (1996-04-28)

user-friendly ::: Programmer-hostile. Generally used by hackers in a critical tone, to describe systems that hold the user's hand so obsessively that they make it painful for the more experienced and knowledgeable to get any work done. See menuitis, drool-proof paper, Macintrash, user-obsequious.[Jargon File]

user-friendly Programmer-hostile. Generally used by hackers in a critical tone, to describe systems that hold the user's hand so obsessively that they make it painful for the more experienced and knowledgeable to get any work done. See {menuitis}, {drool-proof paper}, {Macintrash}, {user-obsequious}. [{Jargon File}]

VAX "computer" /vaks/ (Virtual Address eXtension) The most successful {minicomputer} design in industry history, possibly excepting its immediate ancestor, the {PDP-11}. Between its release in 1978 and its eclipse by {killer micros} after about 1986, the VAX was probably the {hacker}'s favourite machine, especially after the 1982 release of {4.2BSD} {Unix}. Especially noted for its large, {assembly code}-programmer-friendly {instruction set} - an asset that became a liability after the {RISC} revolution. VAX is also a British brand of {carpet cleaner (http://vax.co.uk/)} whose advertising slogan, "Nothing sucks like a VAX!" became a battle-cry of RISC partisans. It is even sometimes claimed that DEC actually entered a licencing deal that allowed them to market VAX computers in the UK in return for not challenging the carpet cleaner trademark in the US. The slogan originated in the late 1960s as "Nothing sucks like Electrolux", Electrolux AB being a rival Swedish company. It became a classic textbook example of the perils of not knowing the local idiom, which is ironic because, according to the Electrolux press manager in 1996, the double entendre was intentional. VAX copied the slogan in their promotions in 1986-1987, and it surfaced in New Zealand TV ads as recently as 1992! [{Jargon File}] (2000-09-28)

VAX ::: (computer) /vaks/ (Virtual Address eXtension) The most successful minicomputer design in industry history, possibly excepting its immediate large, assembly code-programmer-friendly instruction set - an asset that became a liability after the RISC revolution.VAX is also a British brand of whose advertising slogan, Nothing sucks like a VAX! became a battle-cry of RISC partisans. It is even to market VAX computers in the UK in return for not challenging the carpet cleaner trademark in the US.The slogan originated in the late 1960s as Nothing sucks like Electrolux, Electrolux AB being a rival Swedish company. It became a classic textbook intentional. VAX copied the slogan in their promotions in 1986-1987, and it surfaced in New Zealand TV ads as recently as 1992![Jargon File](2000-09-28)

vaxocentrism /vak"soh-sen"trizm/ [analogy with "ethnocentrism"] A notional disease said to afflict C programmers who persist in coding according to certain assumptions that are valid (especially under Unix) on {VAXen} but false elsewhere. Among these are: 1. The assumption that dereferencing a null pointer is safe because it is all bits 0, and location 0 is readable and 0. Problem: this may instead cause an illegal-address trap on non-VAXen, and even on VAXen under OSes other than BSD Unix. Usually this is an implicit assumption of sloppy code (forgetting to check the pointer before using it), rather than deliberate exploitation of a misfeature. 2. The assumption that characters are signed. 3. The assumption that a pointer to any one type can freely be cast into a pointer to any other type. A stronger form of this is the assumption that all pointers are the same size and format, which means you don't have to worry about getting the casts or types correct in calls. Problem: this fails on word-oriented machines or others with multiple pointer formats. 4. The assumption that the parameters of a routine are stored in memory, on a stack, contiguously, and in strictly ascending or descending order. Problem: this fails on many RISC architectures. 5. The assumption that pointer and integer types are the same size, and that pointers can be stuffed into integer variables (and vice-versa) and drawn back out without being truncated or mangled. Problem: this fails on segmented architectures or word-oriented machines with funny pointer formats. 6. The assumption that a data type of any size may begin at any byte address in memory (for example, that you can freely construct and dereference a pointer to a word- or greater-sized object at an odd char address). Problem: this fails on many (especially RISC) architectures better optimised for {HLL} execution speed, and can cause an illegal address fault or bus error. 7. The (related) assumption that there is no padding at the end of types and that in an array you can thus step right from the last byte of a previous component to the first byte of the next one. This is not only machine- but compiler-dependent. 8. The assumption that memory address space is globally flat and that the array reference "foo[-1]" is necessarily valid. Problem: this fails at 0, or other places on segment-addressed machines like Intel chips (yes, segmentation is universally considered a {brain-damaged} way to design machines (see {moby}), but that is a separate issue). 9. The assumption that objects can be arbitrarily large with no special considerations. Problem: this fails on segmented architectures and under non-virtual-addressing environments. 10. The assumption that the stack can be as large as memory. Problem: this fails on segmented architectures or almost anything else without virtual addressing and a paged stack. 11. The assumption that bits and addressable units within an object are ordered in the same way and that this order is a constant of nature. Problem: this fails on {big-endian} machines. 12. The assumption that it is meaningful to compare pointers to different objects not located within the same array, or to objects of different types. Problem: the former fails on segmented architectures, the latter on word-oriented machines or others with multiple pointer formats. 13. The assumption that an "int" is 32 bits, or (nearly equivalently) the assumption that "sizeof(int) == sizeof(long)". Problem: this fails on {PDP-11s}, {Intel 80286}-based systems and even on {Intel 80386} and {Motorola 68000} systems under some compilers. 14. The assumption that "argv[]" is writable. Problem: this fails in many embedded-systems C environments and even under a few flavours of Unix. Note that a programmer can validly be accused of vaxocentrism even if he or she has never seen a VAX. Some of these assumptions (especially 2--5) were valid on the {PDP-11}, the original {C} machine, and became endemic years before the VAX. The terms "vaxocentricity" and "all-the-world"s-a-VAX syndrome' have been used synonymously. [{Jargon File}]

vaxocentrism ::: /vaksoh-sentrizm/ [analogy with ethnocentrism] A notional disease said to afflict C programmers who persist in coding according to certain assumptions that are valid (especially under Unix) on VAXen but false elsewhere. Among these are:1. The assumption that dereferencing a null pointer is safe because it is all bits 0, and location 0 is readable and 0. Problem: this may instead cause an the pointer before using it), rather than deliberate exploitation of a misfeature.2. The assumption that characters are signed.3. The assumption that a pointer to any one type can freely be cast into a pointer to any other type. A stronger form of this is the assumption that all getting the casts or types correct in calls. Problem: this fails on word-oriented machines or others with multiple pointer formats.4. The assumption that the parameters of a routine are stored in memory, on a stack, contiguously, and in strictly ascending or descending order. Problem: this fails on many RISC architectures.5. The assumption that pointer and integer types are the same size, and that pointers can be stuffed into integer variables (and vice-versa) and drawn back out without being truncated or mangled. Problem: this fails on segmented architectures or word-oriented machines with funny pointer formats.6. The assumption that a data type of any size may begin at any byte address in memory (for example, that you can freely construct and dereference a pointer to many (especially RISC) architectures better optimised for HLL execution speed, and can cause an illegal address fault or bus error.7. The (related) assumption that there is no padding at the end of types and that in an array you can thus step right from the last byte of a previous component to the first byte of the next one. This is not only machine- but compiler-dependent.8. The assumption that memory address space is globally flat and that the array reference foo[-1] is necessarily valid. Problem: this fails at 0, or other universally considered a brain-damaged way to design machines (see moby), but that is a separate issue).9. The assumption that objects can be arbitrarily large with no special considerations. Problem: this fails on segmented architectures and under non-virtual-addressing environments.10. The assumption that the stack can be as large as memory. Problem: this fails on segmented architectures or almost anything else without virtual addressing and a paged stack.11. The assumption that bits and addressable units within an object are ordered in the same way and that this order is a constant of nature. Problem: this fails on big-endian machines.12. The assumption that it is meaningful to compare pointers to different objects not located within the same array, or to objects of different types. Problem: the former fails on segmented architectures, the latter on word-oriented machines or others with multiple pointer formats.13. The assumption that an int is 32 bits, or (nearly equivalently) the assumption that sizeof(int) == sizeof(long). Problem: this fails on PDP-11s, Intel 80286-based systems and even on Intel 80386 and Motorola 68000 systems under some compilers.14. The assumption that argv[] is writable. Problem: this fails in many embedded-systems C environments and even under a few flavours of Unix.Note that a programmer can validly be accused of vaxocentrism even if he or she has never seen a VAX. Some of these assumptions (especially 2--5) were valid on terms vaxocentricity and all-the-worlds-a-VAX syndrome' have been used synonymously.[Jargon File]

version "programming" One of a sequence of copies of a program, each incorporating new modifications. Each version is usually identified by a number, commonly of the form X.Y where X is the major version number and Y is the release number. Typically an increment in X (with Y reset to zero) signifies a substantial increase in the function of the program or a partial or total re-implementation, whereas Y increases each time the progam is changed in any way and re-released. Version numbers are useful so that the user can know if the program has changed ({bugs} have been fixed or new functions added) since he obtained his copy and the programmer can tell if a bug report relates to the current version. It is thus always important to state the version when reporting bugs. Statements about compatibility between different software components should always say which versions they apply to. See {change management}. (1997-12-07)

WAITS /wayts/ The mutant cousin of {TOPS-10} used on a handful of systems at {SAIL} up to 1990. There was never an "official" expansion of WAITS (the name itself having been arrived at by a rather sideways process), but it was frequently glossed as "West-coast Alternative to ITS". Though WAITS was less visible than ITS, there was frequent exchange of people and ideas between the two communities, and innovations pioneered at WAITS exerted enormous indirect influence. The early screen modes of {Emacs}, for example, were directly inspired by WAITS's "E" editor - one of a family of editors that were the first to do "real-time editing", in which the editing commands were invisible and where one typed text at the point of insertion/overwriting. The modern style of multi-region windowing is said to have originated there, and WAITS alumni at XEROX PARC and elsewhere played major roles in the developments that led to the XEROX Star, the Macintosh, and the Sun workstations. {Bucky bits} were also invented there thus, the ALT key on every IBM PC is a WAITS legacy. One notable WAITS feature seldom duplicated elsewhere was a news-wire interface that allowed WAITS hackers to read, store, and filter AP and UPI dispatches from their terminals; the system also featured a still-unusual level of support for what is now called "multimedia" computing, allowing analog audio and video signals to be switched to programming terminals. Ken Shoemake adds: Some administrative body told us we needed a name for the operating system, and that "SAIL" wouldn't do. (Up to that point I don't think it had an official name.) So the anarchic denizens of the lab proposed names and voted on them. Although I worked on the OS used by CCRMA folks (a parasitic subgroup), I was not writing WAITS code. Those who were, proposed "SAINTS", for (I think) Stanford AI New Time-sharing System. Thinking of ITS, and AI, and the result of many people using one machine, I proposed the name WAITS. Since I invented it, I can tell you without fear of contradiction that it had no official meaning. Nevertheless, the lab voted that as their favorite; upon which the disgruntled system programmers declared it the "Worst Acronym Invented for a Time-sharing System"! But it was in keeping with the creative approach to acronyms extant at the time, including self-referential ones. For me it was fun, if a little unsettling, to have an "acronym" that wasn't. I have no idea what the voters thought. :) [{Jargon File}] (2003-11-17)

wannabee /won'*-bee/ (Or, more plausibly, spelled "wannabe") [Madonna fans who dress, talk, and act like their idol; probably originally from biker slang] A would-be {hacker}. The connotations of this term differ sharply depending on the age and exposure of the subject. Used of a person who is in or might be entering {larval stage}, it is semi-approving; such wannabees can be annoying but most hackers remember that they, too, were once such creatures. When used of any professional programmer, CS academic, writer, or {suit}, it is derogatory, implying that said person is trying to cuddle up to the hacker mystique but doesn't, fundamentally, have a prayer of understanding what it is all about. Overuse of hacker terms is often an indication of the {wannabee} nature. Compare {newbie}. Historical note: The wannabee phenomenon has a slightly different flavour now (1993) than it did ten or fifteen years ago. When the people who are now hackerdom's tribal elders were in {larval stage}, the process of becoming a hacker was largely unconscious and unaffected by models known in popular culture - communities formed spontaneously around people who, *as individuals*, felt irresistibly drawn to do hackerly things, and what wannabees experienced was a fairly pure, skill-focussed desire to become similarly wizardly. Those days of innocence are gone forever; society's adaptation to the advent of the microcomputer after 1980 included the elevation of the hacker as a new kind of folk hero, and the result is that some people semi-consciously set out to *be hackers* and borrow hackish prestige by fitting the popular image of hackers. Fortunately, to do this really well, one has to actually become a wizard. Nevertheless, old-time hackers tend to share a poorly articulated disquiet about the change; among other things, it gives them mixed feelings about the effects of public compendia of lore like this one. [{Jargon File}]

weak typing ::: (programming) Strict enforcement of type rules but with well-defined exceptions or an explicit type-violation mechanism.Weak typing is friendlier to the programmer than strong typing, but catches fewer errors at compile time.C and C++ are weakly typed, as they automatically coerce many types e.g. ints and floats. E.g. int a = 5;float b = a; example the following is allowed, which would probably be disallowed in a strongly typed language: typedef int Date; /* Type to represent a date */Date a = 12345; C++ is stricter than C in its handling of enumerated types: enum animal {CAT=0,DOG=2,ANT=3};enum animal a = CAT; /* NB The enum is optional in C++ */ (2000-07-04)

weak typing "programming" Strict enforcement of {type} rules but with well-defined exceptions or an explicit type-violation mechanism. Weak typing is "friendlier" to the programmer than {strong typing}, but catches fewer errors at compile time. {C} and {C++} are weakly typed, as they automatically {coerce} many types e.g. {ints} and {floats}. E.g. int a = 5; float b = a; They also allow ignore {typedefs} for the purposes of type comparison; for example the following is allowed, which would probably be disallowed in a strongly typed language: typedef int Date;  /* Type to represent a date */ Date a = 12345; int b = a;   /* What does the coder intend? */ C++ is stricter than C in its handling of enumerated types: enum animal {CAT=0,DOG=2,ANT=3}; enum animal a = CAT; /* NB The enum is optional in C++ */ enum animal b = 1;  /* This is a warning or error in C++ */ (2000-07-04)

wetware "jargon" /wet'weir/ (Probably from the novels of Rudy Rucker, or maybe Stanislav Lem) The human nervous system, as opposed to electronic computer {hardware} or {software}. "Wetware has 7 plus or minus 2 temporary {registers}." Also, human beings (programmers, operators, administrators) attached to a computer system, as opposed to the system's hardware or software. See {liveware}, {meatware}. [True origin? Dates?] [{Jargon File}] (1996-08-19)

wetware ::: (jargon) /wet'weir/ (Probably from the novels of Rudy Rucker, or maybe Stanislav Lem) The human nervous system, as opposed to electronic computer human beings (programmers, operators, administrators) attached to a computer system, as opposed to the system's hardware or software.See liveware, meatware.[True origin? Dates?][Jargon File] (1996-08-19)

What You See Is What You Get "jargon" (WYSIWYG) /wiz'ee-wig/ Describes a user interface for a document preparation system under which changes are represented by displaying a more-or-less accurate image of the way the document will finally appear, e.g. when printed. This is in contrast to one that uses more-or-less obscure commands that do not result in immediate visual feedback. True WYSIWYG in environments supporting multiple fonts or graphics is rarely-attained; there are variants of this term to express real-world manifestations including WYSIAWYG (What You See Is *Almost* What You Get) and WYSIMOLWYG (What You See Is More or Less What You Get). All these can be mildly derogatory, as they are often used to refer to dumbed-down {user-friendly} interfaces targeted at non-programmers; a hacker has no fear of obscure commands (compare {WYSIAYG}). On the other hand, {Emacs} was one of the very first WYSIWYG editors, replacing (actually, at first overlaying) the extremely obscure, command-based {TECO}. See also {WIMP}. (1999-03-03)

Wilf Hey ::: (person) The person who originally developed Report Program Generator and coined the phrase GIGO (garbage in: garbage out). He now (2004) works as a writer for PC Plus magazine in the UK and does Wilf's programmers workshop amongst other things. He has been in computing for over 40 years.(2004-10-03)

Wilf Hey "person" The person who originally developed {Report Program Generator} and coined the phrase GIGO (garbage in: garbage out). In 2004, after more than forty years in computing, he was writing for {PC Plus} magazine in the UK and doing Wilf's programmers workshop amongst other things. He died on 2007-01-01 after a long illness. (2007-01-06)

Windows 1 "operating system" The first incarnation of {Microsoft Windows}, released in 1985. It took a total of 55 programmer-years to develop, and only allowed tiled windows. (1996-07-08)

Windows 1 ::: (operating system) The first incarnation of Microsoft Windows, released in 1985. It took a total of 55 programmer-years to develop, and only allowed tiled windows. (1996-07-08)

wizard 1. A person who knows how a complex piece of software or hardware works (that is, who {groks} it); especially someone who can find and fix bugs quickly in an emergency. Someone is a {hacker} if he or she has general hacking ability, but is a wizard with respect to something only if he or she has specific detailed knowledge of that thing. A good hacker could become a wizard for something given the time to study it. 2. A person who is permitted to do things forbidden to ordinary people; one who has {wheel} privileges on a system. 3. A Unix expert, especially a Unix systems programmer. This usage is well enough established that "Unix Wizard" is a recognised job title at some corporations and to most headhunters. See {guru}, {lord high fixer}. See also {deep magic}, {heavy wizardry}, {incantation}, {magic}, {mutter}, {rain dance}, {voodoo programming}, {wave a dead chicken}. 4. An interactive help utility that guides the user through a potentially complex task, such as configuring a {PPP} driver to work with a new {modem}. Wizards are often implemented as a sequence of {dialog boxes} which the user can move forward and backward through, filling in the details required. The implication is that the expertise of a human wizard in one of the above senses is encapsulated in the software wizard, allowing the average user to perform expertly. [{Jargon File}] (1998-09-07)

wizard ::: 1. A person who knows how a complex piece of software or hardware works (that is, who groks it); especially someone who can find and fix bugs quickly in an knowledge of that thing. A good hacker could become a wizard for something given the time to study it.2. A person who is permitted to do things forbidden to ordinary people; one who has wheel privileges on a system.3. A Unix expert, especially a Unix systems programmer. This usage is well enough established that Unix Wizard is a recognised job title at some corporations and to most headhunters.See guru, lord high fixer. See also deep magic, heavy wizardry, incantation, magic, mutter, rain dance, voodoo programming, wave a dead chicken.4. An interactive help utility that guides the user through a potentially complex task, such as configuring a PPP driver to work with a new modem. Wizards encapsulated in the software wizard, allowing the average user to perform expertly.[Jargon File] (1998-09-07)

XML Template Pages "web" (XTP) {JSP} transformed by {XSL} stylesheets. An XTP page is basically a JSP page which specifies an XSL stylesheet. The XSL specifies how selected tags in the XTP page should be rewritten. All other tags are passed through unchanged and so treated as standard JSP. JSP programmers can use XTP used as an easy introduction to XSL, incrementally applying styles to their pages. {Caucho (http://caucho.com/resin/ref/xtp.xtp)}. (2003-07-13)

XPL "language" A small dialect of {PL/I} developed at {Stanford} in 1967-69, used for {compiler} writing. XPL has one-dimensional {arrays}. I/O is achieved with character pseudo-variable INPUT and OUTPUT, e.g. OUTPUT = 'This is a line'; It has inline {machine code}. "Programmers are given all the rope they ask for. Novices tend to hang themselves fairly frequently." XPL has been implemented on {IBM 360}, {Univac 1100}, {ICL System 4}, {CDC 6000} and {Cyber} series, {XDS Sigma-5} and {Sigma-7}, {DEC} {PDP-10}, {IA32}, {FreeBSD} and {Linux}. An optimising XPL compiler (version 1) by Robin Vowels "robin_vowels@rmit.edu.au" is a standard implementation of XPL and is based on McKeeman, Horning, and Wortman's improved {XCOM} (which employs hashed symbol table generation). It includes the extra built-in function COREHALFWORD. The following areas have been optimised: procedures calls when the argument and corresponding parameter are of the same type, and when the argument is a constant; constant subscripts; use of CORELHALFWORD and COREWORD; string constants of length one; iterative DO statements by transferring code to the end of the loop. String constants of length one do not require a descriptor, hence more descriptors are available for string variables. Comparison operations are treated as commutative, and an improved Commute algorithm is used. Halfword instructions are generated for BIT(16) variables. These areas have been improved or re-written: calls on OUTPUT, catenation, integer-to-string conversion, multiply, divide, and MOD. An emitter for SS-type instructions has been added. The compiler achieves an 11% reduction in object code compiling itself, an 11% increase in compilation rate, a 55% increase in compilation speed when the $E toggle is set. Special treatment for catenating a string to an integer substantially decreases consumption of the free string area, and decreases string moves. The latter improvement is most noticeable on small core machines. Core requirements: less than the improved XCOM on which it is based (approx. 98000 bytes). Symbol table size is 468. Ported to {IBM} {System 370}. The compiler is written in XPL. The code generators are machine-specific. ["A Compiler Generator," W.M. McKeeman et al, P-H 1970]. [JCC, AFIPS 1968]. (2017-09-17)

Xv++ ::: A library of classes from Interface Engineering, Stevenage, providing a C++ Application Programmer's Interface to the XView toolkit.

Xv++ A library of classes from Interface Engineering, Stevenage, providing a C++ Application Programmer's Interface to the XView toolkit.

YAFIYGI "abuse" /yaf'ee-y*-gee/ You asked for it, you got it. The command-oriented {ed}/{vi}/{nroff}/{TeX} style of {word processing} or other user interfaces which are not {WYSIWYG}. What you actually asked for is often not immediately apparent. This precise sense of "You asked for it, you got it" seems to have first appeared in Ed Post's classic parody "{Real Programmers} don't use Pascal"; the acronym is a more recent (as of 1993) invention. [{Jargon File}] (1995-03-13)

YAFIYGI ::: (abuse) /yaf'ee-y*-gee/ You asked for it, you got it.The command-oriented ed/vi/nroff/TeX style of word processing or other user interfaces which are not WYSIWYG. What you actually asked for is often not immediately apparent.This precise sense of You asked for it, you got it seems to have first appeared in Ed Post's classic parody Real Programmers don't use Pascal; the acronym is a more recent (as of 1993) invention.[Jargon File] (1995-03-13)

YAML Ain't Markup Language ::: (data, language) (YAML) A data serialisation language designed to be readable and writable by humans and to work well with modern programming languages.YAML uses printable Unicode characters to represent both structure and data. The structural syntax is simple and terse. For example, indentation is used for structure, colons separate pairs, and dashes are used for list items.YAML can represent mappings (hashes or dictionaries), sequences (arrays or lists), scalars (strings or numbers), or any combination of the above. It has a familiar to programmers using Perl, Python, PHP, Ruby, or Javascript, but YAML can be used with any programming language.YAML is, in some respects, a simpler alternative to XML, though it does not share the constraints imposed by XML's SGML legacy and has somewhat different aims. .(2004-02-02)

YAML Ain't Markup Language "data, language" (YAML) A data {serialisation} language designed to be readable and writable by humans and to work well with modern programming languages. YAML uses printable {Unicode} characters to represent both structure and data. The structural syntax is simple and terse. For example, indentation is used for structure, colons separate pairs, and dashes are used for list items. YAML can represent mappings ({hashes} or dictionaries), sequences ({arrays} or lists), {scalars} (strings or numbers), or any combination of the above. It has a simple {typing system} and {reference} syntax. Its structures will be particularly familiar to programmers using {Perl}, {Python}, {PHP}, {Ruby}, or {Javascript}, but YAML can be used with any programming language. YAML is, in some respects, a simpler alternative to XML, though it does not share the constraints imposed by XML's {SGML} legacy and has somewhat different aims. {YAML Home (http://yaml.org/)}. (2004-02-02)



QUOTES [0 / 0 - 51 / 51]


KEYS (10k)


NEW FULL DB (2.4M)

   5 Kelsey Grammer
   4 Anonymous
   4 Andy Grammer
   4 Alan Perlis

*** WISDOM TROVE ***

*** NEWFULLDB 2.4M ***

1:Life is supposed to get tough. ~ Kelsey Grammer,
2:I'm a humble guy, but I'm audacious. ~ Andy Grammer,
3:The greatest sin is judgment without knowledge. ~ Kelsey Grammer,
4:Diamonds aren't a girl's best friend. Freedom is. ~ Camille Grammer,
5:My life is a party thrown for me by my own decisions. ~ Kelsey Grammer,
6:Only rainbows after rain...The sun will always come again. ~ Andy Grammer,
7:As a musician, you just want to be able to do what you love. ~ Andy Grammer,
8:Everyone has their thing, and I was the weird, artsy kid. ~ Spencer Grammer,
9:I think it's your duty to overcome what you inherit in life. ~ Kelsey Grammer,
10:Kelsey Grammer is one of the best actors I've ever worked with. ~ Sanaa Lathan,
11:What I can control is how I react. I can't control anything else. ~ Kelsey Grammer,
12:I did an episode of 'Frasier' with my friend Kelsey Grammer once. ~ John C McGinley,
13:To be a good musician, you need to give people what they want, what they need. ~ Andy Grammer,
14:If you're not adventurous, you're not really living, I think... especially in college. ~ Spencer Grammer,
15:My children are most important to me. I'm a mother and I adore my children. I live for them. ~ Camille Grammer,
16:Apologizes are pointless, regrets come too late. What matters is you can move, on you can grow. ~ Kelsey Grammer,
17:The mark of a man is one who knows he can' control his circumstances - but he can control his responses. ~ Kelsey Grammer,
18:I don't know if I'm addicted to fame; fame is more of an unpleasant circumstance of an addiction to creativity. ~ Kelsey Grammer,
19:I love pushing my boundaries and seeing how far I can go without, you know, dying or injuring myself too badly. ~ Spencer Grammer,
20:No day-to-day mishaps or indignities can really compromise your sense of self after you've survived a deep tragedy. ~ Kelsey Grammer,
21:When your dad makes a living as a children's singer, you figure, 'I can do anything.' He made up his own job and did it. ~ Andy Grammer,
22:It takes a very strange person to enjoy fame, with all the by-products that come with it. It's not necessarily a thrill. ~ Kelsey Grammer,
23:I went and did some things [rehab], and then of course my life didn't change that much [for a while], but I never missed work. ~ Kelsey Grammer,
24:Prayer is when you talk to God. Meditation is when you're listening. Playing the piano allows you to do both at the same time. ~ Kelsey Grammer,
25:I always thought that sororities were just made up of cheerleaders from high school. And I kind of picked on those cheerleaders! ~ Spencer Grammer,
26:I was brought up to never lie. Sure, I have. But in the final mix, the lies I've told are far outweighed by the truths I've lived. ~ Kelsey Grammer,
27:I'm not a tweeter or a Facebooker or a Grammer. I'm a real grump when it comes to technology. I'm like, come on, just write me a letter. ~ Matt Smith,
28:Alexander Pope once wrote that the theater aspires to wake the soul by gentle strokes of art - to raise the genius and to mend the heart. ~ Kelsey Grammer,
29:I got fired when I was a dishwasher at Denny's. That set me back a little bit. You don't realize how important dishwashers are until you do the job. ~ Kelsey Grammer,
30:I have a thing: I will always put money in for any street musician anywhere in the country, anywhere in the world. It's like giving back the money I got. ~ Andy Grammer,
31:The first thing I thought [when I read the script] was that Frasier was an intellectual at some points but also an Everyman - flawed and very insecure. ~ Kelsey Grammer,
32:While it is tempting to play it safe, the more we're willing to risk, the more alive we are. In the end, what we regret most are the chances we never took. ~ Kelsey Grammer,
33:Fame obviously has become a premium in everybody's life. Everybody thinks they deserve it, everybody thinks they want it and most people really don't enjoy it once they get it. ~ Kelsey Grammer,
34:I've got a great support group, real and true friends and I'm moving forward with my life. I was sad and wanted to make things work but I'm completely fine now. I'm moving on. ~ Camille Grammer,
35:I want to pay my mortgage and go on vacation, so I love working. I want to be able to do independent projects as well, and being on a successful TV show allows you to do some other things. ~ Spencer Grammer,
36:I always thought Cheers ended well. You always anticipate that the characters, theough they're leaving television, will somehow go on in another world of the imagination, which I think is good. ~ Kelsey Grammer,
37:In Jazz, improvisation isn't a matter of just making any ol' thing up. Jazz, like any language, has its own grammer and vocabulary. There's no right or wrong, just some choices that are better than others. ~ Wynton Marsalis,
38:A child is a reinvigorating experience. It almost does feel like immortality, but not in the way people think. It reminds us there are universal truths that are most simply seen through the mind of a young person. ~ Kelsey Grammer,
39:I think Mariska Hargitay on 'Law and Order: SVU' is a really good example of a female lead I'd like to emulate. She's really been able to captivate men and women in a way that's appealing, which is a tough line to follow. ~ Spencer Grammer,
40:Netflix has such a knack for giving a new life to those B-movies that you thought and hoped no one would ever see. Especially when you have a new project coming out and they're looking to mine some of your lesser-known films. ~ Spencer Grammer,
41:It's one thing when you're driving to go play at a radio station and you hear it on that station. It's another thing when you're just out in the middle of nowhere, and the song just comes on the radio, and you're like "Oh my God!" ~ Andy Grammer,
42:I once went to a fraternity house when I was in high school... you know, you would rent them during the summer for really cheap, and students are in there. So I met some people who rented a room. I just remember it being very dirty. ~ Spencer Grammer,
43:I became an actor, and because I had success as an actor, I became famous. I was acting for quite a while before I got famous; television made me famous. I guess that it's television that is responsible for everybody's desire to be famous. ~ Kelsey Grammer,
44:My dad has an incredible passion for living life, and he's really, really funny, so he definitely encourages me to enjoy all aspects of life. He's very proud of me and definitely encourages my career path, and we have a good time talking about work. ~ Spencer Grammer,
45:I'm an actor and I've created a lasting and memorable character named Frasier, who is not me, but who most people think is. So when I have a chance to play something that's different, I embrace it because it's fun; also in this case, he's a memorable character. ~ Kelsey Grammer,
46:Well, there are two kinds of happiness, grounded and ungrounded. Ungrounded happiness is cheesy and not based on reality. Grounded happiness is informed happiness based on the knowledge that the world sometimes sucks, but even then you have to believe in yourself. ~ Andy Grammer,
47:They decide all of that in the office. And in their smart little conferences. The teachers, they sit around in this big circle jer-jerk and all they say is Yeah, Yeah, Right, Right. All they give a fuck about is whether you behaved yourself in grammer school and what the town thinks of your family. ~ Stephen King,
48:I've learned to trust that you know what you're doing, because it gets scary sometimes. There's a lot of money being spent. If you panic, then that kind of messes with the whole creative vibe. You can't force something to happen, you have to let it all come out and believe that you'll get there in the end. ~ Andy Grammer,
49:My ultimate goal is to try to be real. It just so happens that I'm usually more happy than sad when I'm writing. And in general I think that life is pretty great, and it's cool to be here, so that comes through in my music. I don't have a dismal outlook, but I don't aim to make positive music. It's just what I am. ~ Andy Grammer,
50:I should have my own show by now. Yeah. How many damn sitcoms does Kelsey Grammer need? How many more stupid Housewives do they need throwing tables and limbs at each other. Yeah, I guess I need to take off my artificial leg and throw it at Vanderpump. I like doing live shows - it's just getting to them that's a hassle.Doing films is fun too ... a good film ... but there's a lot of waiting around. ~ Judy Tenuta,
51:My own take on it is that government will never adequately represent every person in the country. It can't. It's not possible. It's a multicultural, multifaceted society in which we live. The country, I think, thrives because it's willing to embrace many ideas at the same time, but once a decision is made you will be unpopular with many people. The business of our political leaders is to go ahead and make a decision and let the chips fall where they may. That's a very hard thing to do. ~ Kelsey Grammer,

IN CHAPTERS [0/0]









WORDNET












--- Grep of noun grammer
computer programmer
programmer



IN WEBGEN [10000/520]

Wikipedia - Aaron Iba -- American computer programmer and entrepreneur
Wikipedia - Adam Kennedy (programmer)
Wikipedia - Adam Leventhal (programmer)
Wikipedia - Adele Goldstine -- American computer programmer
Wikipedia - Adriaan de Groot (software developer) -- Dutch computer programmer
Wikipedia - Alan Cooper -- American computer programmer
Wikipedia - Alan Cox -- British computer programmer
Wikipedia - Alexander Repenning -- American computer programmer
Wikipedia - Alistair Cockburn -- American computer programmer
Wikipedia - Amanda Steinberg -- American computer programmer
Wikipedia - American Programmer
Wikipedia - Amir Taaki -- British-Iranian anarchist revolutionary, hacktivist, and programmer
Wikipedia - Andrew Bradfield -- New Zealand computer programmer
Wikipedia - Andrew Fluegelman -- American publisher, photographer and programmer
Wikipedia - Andrew Koenig (programmer) -- American computer programmer
Wikipedia - Andrew Morton (computer programmer)
Wikipedia - Andrew Plotkin -- Interactive fiction programmer and writer
Wikipedia - Andrew Stone (computer programmer) -- American computer programmer
Wikipedia - Andy Grammer
Wikipedia - Andy Hunt (author) -- American computer programmer
Wikipedia - Anil Johnson -- Indian keyboard programmer and composer
Wikipedia - Anne Westfall -- American game programmer and software developer
Wikipedia - Ann Hardy -- American computer programmer, pioneer of computer time-sharing systems
Wikipedia - Arfa Karim -- Pakistani computer programmer
Wikipedia - Audrey Bates (programmer) -- British-American computer programmer
Wikipedia - Audrey Tang -- Taiwanese software programmer (born 1981)
Wikipedia - Aza Raskin -- American computer programmer
Wikipedia - Ben Chiu -- Computer programmer
Wikipedia - Ben Delo -- British billionaire mathematician and programmer
Wikipedia - Betty Holberton -- American computer programmer
Wikipedia - Bill Gosper -- American mathematician and programmer
Wikipedia - Bill Stewart (programmer) -- American software developer
Wikipedia - Bill Wagner (software) -- American computer programmer
Wikipedia - Bill Zeller -- American computer programmer (1983-2011)
Wikipedia - Bjorn Michaelsen -- German programmer
Wikipedia - Blaine Cook (programmer) -- Canadian software engineer
Wikipedia - Brad Fitzpatrick -- American programmer and creator of LiveJournal
Wikipedia - Bram Cohen -- American programmer and author of the BitTorrent protocol
Wikipedia - Bram Moolenaar -- Dutch computer programmer
Wikipedia - Brantley Coile -- American businessman and computer programmer
Wikipedia - Brendan Eich -- American computer programmer and technologist
Wikipedia - Brendan Iribe -- American game programmer and founder
Wikipedia - Brendan Q. Ferguson -- American computer game designer, writer, programmer
Wikipedia - Bret Taylor -- American computer programmer and entrepreneur
Wikipedia - Brian Acton -- American computer programmer and Internet entrepreneur, co-founder of WhatsApp
Wikipedia - Brian Behlendorf -- American computer programmer and executive
Wikipedia - Brian d foy -- American computer programmer
Wikipedia - Brian Eddy -- American game designer and programmer
Wikipedia - Brian Fox (computer programmer) -- American computer programmer
Wikipedia - Brianna Wu -- American video game developer and computer programmer
Wikipedia - Bruce Ableson -- Computer programmer
Wikipedia - Bruce Carver -- Video game designer and programmer
Wikipedia - Bruce Eckel -- American computer programmer, author and consultant
Wikipedia - Camille Grammer -- American television personality
Wikipedia - Carla Meninsky -- Lawyer and Atari 2600 video game designer and programmer
Wikipedia - Category:American computer programmers
Wikipedia - Category:American video game programmers
Wikipedia - Category:Belgian computer programmers
Wikipedia - Category:British computer programmers
Wikipedia - Category:Canadian computer programmers
Wikipedia - Category:Competitive programmers
Wikipedia - Category:Computer programmers
Wikipedia - Category:Danish computer programmers
Wikipedia - Category:Dutch computer programmers
Wikipedia - Category:English computer programmers
Wikipedia - Category:Finnish computer programmers
Wikipedia - Category:Free software programmers
Wikipedia - Category:Japanese computer programmers
Wikipedia - Category:Kernel programmers
Wikipedia - Category:Linux kernel programmers
Wikipedia - Category:Russian computer programmers
Wikipedia - Category:South African computer programmers
Wikipedia - Category:Transgender and transsexual computer programmers
Wikipedia - Cathryn Mataga -- American video game programmer
Wikipedia - Charles Katz -- American computer programmer
Wikipedia - Charles Petzold -- American computer programmer
Wikipedia - Chris Kubecka -- American computer programmer and computer security researcher
Wikipedia - Chris Pile (programmer) -- British computer programmer
Wikipedia - Chris Roberts (video game developer) -- Computer game designer, game programmer, film producer and film director
Wikipedia - Christian Whitehead -- Australian video game programmer
Wikipedia - Christopher Abad -- American hacker, museum curator, artist, network engineer and programmer
Wikipedia - Christopher Dunn (computer programmer) -- British writer and computer enthusiast
Wikipedia - Chris Wright (programmer) -- Linux kernel hacker
Wikipedia - Chromatic (programmer) -- American computer programmer
Wikipedia - Clint Curtis -- American lawyer and computer programmer
Wikipedia - Computer programmers
Wikipedia - Computer programmer
Wikipedia - Corrinne Yu -- American game programmer
Wikipedia - Crackme -- Small program designed to test a programmer's reverse engineering skills
Wikipedia - Craig McClanahan -- American computer programmer
Wikipedia - D.A Got That Dope -- American record producer and music programmer from Illinois
Wikipedia - Damien Doligez -- French academic and programmer
Wikipedia - Dan Benjamin -- American computer programmer
Wikipedia - Danielle Bunten Berry -- American game designer and programmer
Wikipedia - Daniel Robbins (computer programmer) -- American computer programmer
Wikipedia - Daniel Shiffman -- American computer programmer
Wikipedia - Daniel Weinreb -- American computer programmer
Wikipedia - Danny Goodman -- American computer programmer, technology consultant
Wikipedia - Darius Kazemi -- Computer programmer and artist
Wikipedia - Dave Taylor (game programmer) -- American video game programmer
Wikipedia - Dave Thomas (programmer)
Wikipedia - David Abrahams (computer programmer)
Wikipedia - David Crane (programmer) -- American video game designer and programmer
Wikipedia - David F. Bacon -- American computer programmer
Wikipedia - David Heinemeier Hansson -- Programmer, racing driver, creator of Ruby on Rails
Wikipedia - David Korn (computer scientist) -- American computer programmer
Wikipedia - David Louis Edelman -- American novelist and web programmer
Wikipedia - David Plummer (programmer) -- Canadian-American programmer and entrepreneur
Wikipedia - David Silver (programmer)
Wikipedia - Decline and Fall of the American Programmer
Wikipedia - Diana Merry -- American computer programmer
Wikipedia - Dirk Poot -- Dutch programmer and politician
Wikipedia - Dona Bailey -- American video game programmer
Wikipedia - Don Dailey -- American researcher and game programmer
Wikipedia - Don Woods (programmer)
Wikipedia - Douglas Crockford -- American computer programmer
Wikipedia - Draft:Volodymyr Kovpak -- programmer
Wikipedia - Duncan Brinsmead -- Canadian software programmer
Wikipedia - Elaine M. McGraw -- American computer programmer
Wikipedia - Elizabeth Betty Ryan -- American game developer and programmer
Wikipedia - Ellen Ullman -- American writer and programmer
Wikipedia - Elsie Shutt -- American computer programmer and entrepreneur
Wikipedia - Eric Allman -- American computer programmer
Wikipedia - Eric Haines -- American computer programmer
Wikipedia - Eric Sink -- American computer programmer
Wikipedia - Eric S. Raymond -- American computer programmer, author, and advocate for the open source movement
Wikipedia - Erik Naggum -- Norwegian computer programmer
Wikipedia - Ernest Friedman-Hill -- American computer programmer
Wikipedia - Francois Lionet -- French computer programmer
Wikipedia - Game programmer
Wikipedia - Gervase Markham (programmer) -- British software engineer for the Mozilla Foundation
Wikipedia - Glen Kuban -- American computer programmer and independent investigator
Wikipedia - Good to Be Alive (Hallelujah) -- 2015 song performed by Andy Grammer
Wikipedia - Greer Grammer -- American actress and former beauty queen
Wikipedia - Guido van Rossum -- Dutch programmer and creator of Python
Wikipedia - Hacker (programmer subculture)
Wikipedia - Hack (programmer subculture)
Wikipedia - Hampton Catlin -- American computer programmer
Wikipedia - Hans Reiser -- American computer programmer, entrepreneur, and convicted murderer
Wikipedia - Harriet Bruce-Annan -- Ghanaian programmer and humanitarian
Wikipedia - Harri Hursti -- Finnish computer programmer
Wikipedia - Henriette Avram -- American computer programmer and system analyst
Wikipedia - Herb Sutter -- US computer programmer and author
Wikipedia - HM-aM-;M-^S Thanh ViM-aM-;M-^Gt -- Vietnamese computer programmer
Wikipedia - Ian Sommerville (technician) -- British electronics technician and computer programmer
Wikipedia - Igor Pavlov (programmer)
Wikipedia - Increpare Games -- British video game programmer
Wikipedia - Institution of Analysts and Programmers
Wikipedia - Iterator -- In computing, an object that enables a programmer to traverse a container, particularly lists
Wikipedia - Jaan Tallinn -- Estonian programmer and investor
Wikipedia - Jade Wang -- American computer programmer and neuroscientist
Wikipedia - James D. Sachs -- American computer programmer
Wikipedia - Jason Spisak -- American voice actor and computer programmer
Wikipedia - Jean Bartik -- American ENIAC computer programmer
Wikipedia - Jean-loup Gailly -- Computer programmer
Wikipedia - Jed McCaleb -- American banker, programmer and entrepreneur
Wikipedia - Jeremie Miller -- American computer programmer
Wikipedia - Jeremy Ashkenas -- Computer programmer
Wikipedia - Jerry Yang -- computer programmer and Founder of Yahoo!
Wikipedia - Jesse Vincent -- Businessperson and computer programmer
Wikipedia - Jessie MacWilliams -- Mathematician, programmer
Wikipedia - Jim Gettys -- American computer programmer
Wikipedia - Jim Hall (computer programmer) -- American programmer and FreeDOS founder
Wikipedia - Jim Kent -- American research scientist and computer programmer
Wikipedia - Jim Weirich -- American computer programmer
Wikipedia - JJ Zhuang -- American computer programmer
Wikipedia - Joao Branco -- French-born Portuguese theatrical actor and reviewer, professor, and programmer
Wikipedia - Joe Armstrong (programmer) -- British computer scientist
Wikipedia - Joe Hewitt (programmer) -- Software programmer
Wikipedia - John Carmack -- American computer programmer, engineer, and businessman
Wikipedia - John Chambers (programmer)
Wikipedia - John Harris (software developer) -- Computer programmer, hacker and software developer
Wikipedia - John McAfee -- American computer programmer and businessman
Wikipedia - John Walker (programmer)
Wikipedia - John Warnock -- American computer programmer
Wikipedia - John W. Cowan -- American programmer
Wikipedia - Jonathan Alexander (computer programmer) -- Computer programmer
Wikipedia - Jonathan Blow -- American game designer (Braid, The Witness) and programmer (Jai language)
Wikipedia - Jonathan Potter (computer programmer)
Wikipedia - Jonathan Zarra -- American computer programmer
Wikipedia - Jon Hall (programmer) -- Programmer and major contributor to the Linux project
Wikipedia - Josephine Jue -- Chinese-American mathematician and programmer
Wikipedia - Josh Gare -- English computer programmer
Wikipedia - Julian Le Fay -- Video game programmer
Wikipedia - Justin Frankel -- American computer programmer
Wikipedia - Kathleen Antonelli -- Irish-American computer programmer
Wikipedia - Kelly Bailey (composer) -- Composer, musician, game designer, sound designer, conceptual artist, and programmer
Wikipedia - Kelsey Grammer -- American actor, comedian, singer, producer, director, writer and activist
Wikipedia - Ken Arnold -- American computer programmer
Wikipedia - Ken Coar -- American software programmer
Wikipedia - Ken Thompson (computer programmer)
Wikipedia - Kit Clayton -- American musician and computer programmer
Wikipedia - Kohsuke Kawaguchi -- Jenkins creator and computer programmer
Wikipedia - LaFarr Stuart -- American computer programmer
Wikipedia - Larry Ewing -- American computer programmer
Wikipedia - Larry Kaplan -- American video game designer and programmer
Wikipedia - Larry McVoy -- American computer programmer
Wikipedia - Larry Wall -- American computer programmer and author
Wikipedia - Lars Bak (computer programmer) -- Danish computer programmer
Wikipedia - Lauren McCarthy -- American artist and computer programmer
Wikipedia - Lead programmer
Wikipedia - Lee Daniel Crocker -- American software programmer
Wikipedia - Lemuel Davis -- American computer programmer
Wikipedia - Leslie Benzies -- Scottish computer programmer and businessman
Wikipedia - Li-Chen Wang -- American computer programmer
Wikipedia - List of programmers -- Wikimedia list article
Wikipedia - List of Rage guest programmers -- Wikipedia list article
Wikipedia - List of Russian programmers
Wikipedia - L. Peter Deutsch -- Programmer of free software and creator of Ghostscript
Wikipedia - Lucy Gilbert -- American computer programmer
Wikipedia - Ludvig Strigeus -- Swedish computer programmer
Wikipedia - Luis Villa -- American computer programmer
Wikipedia - Lynn Abbey -- American computer programmer and author
Wikipedia - Mabel Grammer -- African-American journalist
Wikipedia - Macintosh Programmer's Workshop
Wikipedia - Margaret Helen Harper -- American computer programmer
Wikipedia - Margaret Marrs -- English computer programmer
Wikipedia - Mark Allen (software developer) -- American software engineer, game programmer, and game designer
Wikipedia - Mark Delany -- Australian computer programmer
Wikipedia - Mark Harris (programmer) -- American computer programmer
Wikipedia - Mark Kilgard -- American computer programmer
Wikipedia - Mark Pilgrim -- American computer programmer
Wikipedia - Markus Neteler -- German free software programmer
Wikipedia - Markus Persson -- Swedish video game programmer
Wikipedia - Marlin Eller -- American programmer
Wikipedia - Martin Bryant (programmer)
Wikipedia - Martin Roesch -- American computer programmer
Wikipedia - Mary Lee Woods -- British mathematician and computer programmer
Wikipedia - Matthew Garrett -- Irish computer programmer
Wikipedia - Matthew Haughey -- American programmer, web designer, and blogger
Wikipedia - Matthew Smith (games programmer)
Wikipedia - M-CM-^]mir Vigfusson -- Icelandic computer programmer
Wikipedia - Mel Phillips (radio programmer) -- American radio programmer
Wikipedia - Method (Godhead) -- Programmer, bassist and keyboard player for rock band Godhead
Wikipedia - Michael Abrash -- Game programmer and technical writer
Wikipedia - Michael Holve -- American author, photographer, programmer and Linux practitioner
Wikipedia - Michael Osinski -- American computer programmer
Wikipedia - Michael Sperberg-McQueen -- American computer programmer
Wikipedia - Michael Widenius -- Finnish software programmer
Wikipedia - Mick West -- Science writer, skeptical investigator, and retired programmer
Wikipedia - Mike Shapiro (programmer) -- American computer programmer
Wikipedia - Moamel Ahmed Shakeer -- Iraqi programmer
Wikipedia - Monte Davidoff -- American computer programmer
Wikipedia - Monty Taylor -- American computer programmer
Wikipedia - Nanette Rainone -- American radio presenter and programmer (1942-2016)
Wikipedia - Nathan Adams (programmer) -- British video game developer
Wikipedia - Nick D'Aloisio -- Programmer, entrepreneur
Wikipedia - Nick Gerakines -- American writer and computer programmer
Wikipedia - Nicky Robinson (game programmer) -- Computer game programmer
Wikipedia - Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS
Wikipedia - Otavio Good -- American computer programmer
Wikipedia - Owen Mock -- American software programmer
Wikipedia - Paco MenM-CM-)ndez -- Spanish computer programmer
Wikipedia - Patrick Buckland -- British computer programmer
Wikipedia - Pat Villani -- Italian-American programmer and original developer of the FreeDOS kernel
Wikipedia - Paul Brainerd -- American computer programmer in the field of computer-aided editing, design and publishing.
Wikipedia - Paul Courbis -- French programmer
Wikipedia - Paul Davis (programmer)
Wikipedia - Paul Graham (computer programmer)
Wikipedia - Paul Graham (programmer) -- English programmer, venture capitalist, and essayist
Wikipedia - Paul Haeberli -- American computer programmer
Wikipedia - Peter H. Salus -- American linguist and computer programmer
Wikipedia - Peter MacDonald (computer programmer)
Wikipedia - Peter Mattis -- American computer programmer, entrepreneur
Wikipedia - Peter Molyneux -- English video game designer and game programmer
Wikipedia - Peter Norton -- American programmer, software publisher
Wikipedia - Peter Samson -- American computer programmer
Wikipedia - Petr Mitrichev -- Russian sport programmer
Wikipedia - Phil Farrand -- American computer programmer and consultant, webmaster and author
Wikipedia - Philip Hazel -- British computer programmer
Wikipedia - Pieter Van den Abeele -- Computer programmer
Wikipedia - Programmer art
Wikipedia - Programmer (disambiguation)
Wikipedia - Programmer (hardware)
Wikipedia - Programmers
Wikipedia - Programmer -- Person who writes computer software
Wikipedia - Quentin Stafford-Fraser -- Computer programmer
Wikipedia - Rael Dornfest -- American computer programmer and author
Wikipedia - Randal L. Schwartz -- American programmer and technology writer
Wikipedia - Randy Suess -- American computer programmer
Wikipedia - Rasmus Lerdorf -- Danish programmer and creator of PHP
Wikipedia - Ray Tomlinson -- American computer programmer
Wikipedia - Real Programmers Don't Use Pascal -- 1983 essay about programming
Wikipedia - Real Programmer
Wikipedia - Rebecca Garcia -- American computer programmer
Wikipedia - Rebecca Heineman -- American video game programmer
Wikipedia - Richard Brodie (programmer) -- American computer programmer and author
Wikipedia - Richard Greenblatt (programmer)
Wikipedia - Richard Milton Bloch -- American computer programmer
Wikipedia - Richard Wallace (scientist) -- American computer programmer
Wikipedia - Rich Hickey -- Computer programmer
Wikipedia - Rise and Resurrection of the American Programmer
Wikipedia - Robby Garner -- American natural language programmer and software developer
Wikipedia - Robert Duffy (programmer) -- American video game programmer
Wikipedia - Robert Fourer -- American computer programmer
Wikipedia - Robert S. Lancaster -- American computer programmer and skeptical activist
Wikipedia - Rodnay Zaks -- American computer programmer and author (born 1946)
Wikipedia - Roger Gregory (programmer)
Wikipedia - Roger Powell (musician) -- American musician, programmer, and magazine columnist
Wikipedia - Ross Cohen -- American computer programmer
Wikipedia - Rubber duck debugging -- Debugging method, in which a programmer explains code, line-by-line, to an inanimate object
Wikipedia - Russ Wetmore -- American computer programmer and video game designer
Wikipedia - Samantha John -- American engineer. computer programmer and business executive
Wikipedia - Scott Guthrie -- American computer programmer
Wikipedia - Scott Meyers -- American computer programmer
Wikipedia - Scott Werndorfer -- American computer programmer
Wikipedia - Shawn Bayern -- American computer programmer
Wikipedia - Shawn Fanning -- American computer programmer, entrepreneur, and angel investor
Wikipedia - Sid Meier -- Canadian-American game programmer and designer
Wikipedia - Simon Phipps (programmer) -- computer scientist and web and open source advocate
Wikipedia - Simon Tatham -- English programmer
Wikipedia - Software programmer
Wikipedia - Spencer Grammer -- American actress
Wikipedia - Spencer Kimball (computer programmer) -- American computer programmer, entrepreneur, and business
Wikipedia - Stefan Hechenberger -- Austrian artist and programmer
Wikipedia - Stephen Crow (game programmer)
Wikipedia - Steve Capps -- American computer programmer
Wikipedia - Steve Coast -- British computer programmer
Wikipedia - Steve Gibson (computer programmer) -- Computer enthusiast, software engineer and security researcher
Wikipedia - Steven Batiste -- US programmer and business executive
Wikipedia - Steven McGeady -- American computer programmer
Wikipedia - Steve Wozniak -- American inventor, computer engineer, and programmer
Wikipedia - Systems programmer
Wikipedia - Tarn Adams -- American computer game programmer
Wikipedia - Ted Henter -- American computer programmer and businessman
Wikipedia - Terry A. Davis -- American computer programmer, creator of TempleOS
Wikipedia - Textadept -- Programmer's text editor using Scintilla
Wikipedia - The Pragmatic Programmer
Wikipedia - The Story of Mel -- Computer programmer
Wikipedia - Thomas Bushnell -- American software programmer
Wikipedia - Thomas G. Shanks -- American computer programmer, author
Wikipedia - Tim O'Reilly -- Irish computer programmer, author and businessman
Wikipedia - Tim Paterson -- American computer programmer
Wikipedia - Tim Skelly -- Video game programmer
Wikipedia - Tom Hudson (programmer) -- American computer programme
Wikipedia - Tom Proulx -- American computer programmer and entrepreneur
Wikipedia - Tom Van Vleck -- American computer programmer
Wikipedia - Tony Guntharp -- American computer programmer
Wikipedia - Tracy Grammer -- American folk singer
Wikipedia - Trevor Blackwell -- American programmer
Wikipedia - Trung Dung -- American businessman and programmer
Wikipedia - Video game programmer -- Software engineer, programmer, or computer scientist who primarily develops codebase for video games
Wikipedia - Virgil Griffith -- American computer programmer
Wikipedia - Vitalik Buterin -- Russian-Canadian programmer and writer
Wikipedia - Walter Bright -- American computer programmer
Wikipedia - Ward Cunningham -- American computer programmer who developed the first wiki
Wikipedia - Wayne Bell -- American computer programmer
Wikipedia - Will Harvey -- Computer programmer and businessperson
Wikipedia - William Barden Jr. -- American computer programmer
Wikipedia - William Crowther (programmer)
Wikipedia - William John Sullivan -- American software programmer
Wikipedia - Xochi Birch -- American programmer and entrepreneur
Wikipedia - Yakov Rekhter -- network protocol designer and software programmer
Wikipedia - ZoM-CM-+ Quinn -- American video game developer, video game programmer, and writer
Mark Zuckerberg ::: Born: May 14, 1984; Occupation: Programmer;
Larry Wall ::: Born: September 27, 1954; Occupation: Programmer;
Bill Budge ::: Born: 1954; Occupation: Game programmer;
Eric S. Raymond ::: Born: December 4, 1957; Occupation: Programmer;
John McAfee ::: Born: September 18, 1945; Occupation: Computer programmer;
Aaron Swartz ::: Born: November 8, 1986; Died: January 11, 2013; Occupation: Computer programmer;
Guido van Rossum ::: Born: January 31, 1956; Occupation: Computer programmer;
Spencer Grammer ::: Born: October 9, 1983; Occupation: Actress;
Andy Grammer ::: Born: December 3, 1983; Occupation: Singer-songwriter;
Kelsey Grammer ::: Born: February 21, 1955; Occupation: Actor;
Camille Grammer ::: Born: September 2, 1968; Occupation: Television Personality;
https://www.goodreads.com/book/show/1027677.Sun_Certified_Programmer_Developer_for_Java_2_Study_Guide
https://www.goodreads.com/book/show/12706318-complete-programmer
https://www.goodreads.com/book/show/12800744-ocp-java-se-7-programmer-study-guide
https://www.goodreads.com/book/show/13452206-the-grumpy-programmer-s-guide-to-building-testable-php-applications
https://www.goodreads.com/book/show/13612733-the-grumpy-programmer-s-guide-to-building-testable-applications-in-php
https://www.goodreads.com/book/show/1641080.Unix_for_FORTRAN_Programmers
https://www.goodreads.com/book/show/16580535-oca-ocp-java-se-7-programmer-i-ii-study-guide-exams-1z0-8oca-ocp-java
https://www.goodreads.com/book/show/17516919-the-grumpy-programmer-s-phpunit-cookbook
https://www.goodreads.com/book/show/18373081-a-programmer-s-story
https://www.goodreads.com/book/show/21322855-the-grumpy-programmer-s-phpunit-cookbook
https://www.goodreads.com/book/show/231263.SCJP_Sun_Certified_Programmer_for_Java_5_Study_Guide_Exam_310_055_
https://www.goodreads.com/book/show/23430867-oca-ocp-java-se-7-programmer-i-ii-study-guide-exams-1z0-803-1z0-804
https://www.goodreads.com/book/show/23854322-how-to-be-a-programmer
https://www.goodreads.com/book/show/25069349-mazes-for-programmers
https://www.goodreads.com/book/show/2593099-scjp-sun-certified-programmer-for-java-6-study-guide
https://www.goodreads.com/book/show/30095744-talking-to-artists-talking-to-programmers
https://www.goodreads.com/book/show/30175487-grumpy-programmer-s-minimum-viable-tests
https://www.goodreads.com/book/show/33618151-category-theory-for-programmers
https://www.goodreads.com/book/show/3411606-the-productive-programmer
https://www.goodreads.com/book/show/4099.The_Pragmatic_Programmer
https://www.goodreads.com/book/show/41790.User_Interface_Design_for_Programmers
https://www.goodreads.com/book/show/6399113-the-passionate-programmer
https://www.goodreads.com/book/show/8666855-how-to-be-a-programmer
https://www.goodreads.com/book/show/873375.UML_for_Java_Programmers
https://www.goodreads.com/book/show/8735574-how-to-be-a-programmer
https://www.goodreads.com/book/show/886650.Newton_Programmer_s_Guide_For_Newton_2_0
https://www.goodreads.com/author/show/16532165.Libby_Mae_Grammer
https://familypedia.wikia.org/wiki/Allen_Jefferson_Davis_Grammer_(1851-1925)
https://familypedia.wikia.org/wiki/John_Thomas_Grammer_(1878-1944)
dedroidify.blogspot - self-as-metaprogrammer-by-chris
https://tvtropes.org/pmwiki/pmwiki.php/Anime/BattleProgrammerShirase
https://tvtropes.org/pmwiki/pmwiki.php/Creator/KelseyGrammer
https://en.wikiquote.org/wiki/Category:Programmers
https://en.wikiquote.org/wiki/Category:Programmers_from_Japan
https://en.wikiquote.org/wiki/Category:Programmers_from_the_United_States
https://en.wikiquote.org/wiki/Kelsey_Grammer
https://en.wikiquote.org/wiki/Programmers
What's Happening Now!! (1985 - 1988) - This sitcom is the follow-up to the popular ABC series in the 70's. Raj is newly married and trying to write while his two buddies, Rerun and Dwayne are sharing a bachelor apartment. Rerun is working as a used car salesman while Dwayne is a computer programmer. This syndicated program was on the air...
Ragewar(1985) - A computer programmer/enthusiast Paul Bradford (Jeffery Byron), and his girlfriend Gwen (Leslie Wing), get sucked into another world where a sorcerer named Mestema, known as "The Dungeonmaster" (Richard Moll), has them interact in seven different scenarios/riddles to see who can survive. They must f...
Sidekicks(1992) - Barry is an asthmatic kid having trouble in life. He lives with his father, a computer programmer, in Texas. Barry is struggling to get by in life, dealing with his rough school life, bullies, as well as his health. Barry's only source of enjoyment is fantasizing that he is with Chuck Norris. Barry...
Bartok the Magnificent(1999) - Ace animator Don Bluth directed this direct-to-video follow-up to his 1997 hit Anastasia, concentrating on the adventures of Bartok the Albino Bat (voice of Hank Azaria). Bartok and his best friend, Zozi the Bear (voice of Kelsey Grammer), are now making their way as street performers, but they find...
Goldeneye(1995) - Bond, while on holiday, meets the beautiful but deadly Xenia Onatopp, a member of a Russia mafia group and attempts to stop Xenia and another person taking the 'Tiger' helicopter, a new design and protected against any form of jamming. Meanwhile, Natalya Siminova, a Russian computer programmer is sh...
Dance 'Til Dawn(1988) - Another of the many NBC made for tv comedies featuring stars(Christina Applegate,Alyssa Milano,Kelsey Grammer,Alan Thicke) of then popular 80's sitcoms.This movie revolves around the ups and downs that teenagers,and their adult chaperons,face during an all night prom.
Down Periscope(1996) - Lt. Cmdr Tom Dodge (Kelsey Grammer) is one of the Navy's best, even if he is a bit unconventional. But to take command of his own ship, he must first prove himself in simulated combat. Dodge is shocked when he's put in command of the rusty and outdated USS Stingray. His crew consists of the Navy's w...
ThrillKill(1984) - Karlie (Diana Reis)is a computer programmer who hacks into bank accounts and amasses a fortune of 5 million dollars.The company Karlie works for wants the money so they have her killed.Karlie's stewardess sister Bobbi(Gina Massey) teams up with a detective(Robin Ward) to find Karlie's killer and the...
Antitrust(2001) - A computer programmer's dream job at a hot Portland-based firm turns nightmarish when he discovers his boss has a secret and ruthless means of dispatching anti-trust problems.
https://myanimelist.net/anime/579/Battle_Programmer_Shirase -- Comedy, Ecchi, Sci-Fi
Black Mirror: Bandersnatch (2018) ::: 7.2/10 -- TV-MA | 1h 30min | Drama, Fantasy, Mystery | TV Movie 28 December 2018 -- A young programmer starts to question reality when he adapts a mad writer's fantasy novel into a video game. Director: David Slade Writer: Charlie Brooker
Ex Machina (2014) ::: 7.7/10 -- R | 1h 48min | Drama, Sci-Fi, Thriller | 24 April 2015 (USA) -- A young programmer is selected to participate in a ground-breaking experiment in synthetic intelligence by evaluating the human qualities of a highly advanced humanoid A.I. Director: Alex Garland Writer:
Faults (2014) ::: 6.7/10 -- Not Rated | 1h 29min | Comedy, Crime, Drama | 6 March 2015 (USA) -- A cult deprogrammer must help a couple whose daughter has recently joined a cult. Director: Riley Stearns Writer: Riley Stearns
Person of Interest ::: TV-14 | 43min | Action, Crime, Drama | TV Series (20112016) -- An ex-CIA agent and a wealthy programmer save lives via a surveillance AI that sends them the identities of civilians involved in impending crimes. However, the details of the crimes, including the civilians' roles, are left a mystery. Creator:
Person of Interest ::: TV-14 | 43min | Action, Crime, Drama | TV Series (2011-2016) Episode Guide 103 episodes Person of Interest Poster -- An ex-CIA agent and a wealthy programmer save lives via a surveillance AI that sends them the identities of civilians involved in impending crimes. However, the details of the crimes, including the civilians' roles, are left a mystery. Creator:
The Pentagon Wars (1998) ::: 7.3/10 -- R | 1h 44min | Comedy, War | TV Movie 28 February 1998 -- Story of a cover up in the military. Director: Richard Benjamin Writers: James Burton (book), Jamie Malanowski (teleplay) | 1 more credit Stars: Kelsey Grammer, Cary Elwes, Viola Davis
Videodrome (1983) ::: 7.2/10 -- R | 1h 27min | Horror, Sci-Fi, Thriller | 4 February 1983 (USA) -- A programmer at a TV station that specializes in adult entertainment searches for the producers of a dangerous and bizarre broadcast. Director: David Cronenberg Writer: David Cronenberg
https://animanga.fandom.com/wiki/Battle_Programmer_Shirase
https://animanga.fandom.com/wiki/Ultrabaroque_Deprogrammer
https://autocad.fandom.com/wiki/AutoLISP_for_programmers_of_other_languages
https://cheers.fandom.com/wiki/Kelsey_Grammer
https://code.fandom.com/wiki/Programmer%27s_Wiki
https://code.fandom.com/wiki/Programmer's_Wiki
https://code.fandom.com/wiki/Programmer's_Wiki:About
https://code.fandom.com/wiki/Programmer's_Wiki:Depediafication
https://code.fandom.com/wiki/Programmer's_Wiki:To-do
https://code.fandom.com/wiki/Programmer's_Wiki:What_the_Programmer's_Wiki_is
https://code.fandom.com/wiki/Programmer's_Wiki:WikiNode
https://frasier.fandom.com/wiki/Kelsey_Grammer
https://java.fandom.com/wiki/Promotion_To_Java_Programmer_Plan
https://memory-alpha.fandom.com/wiki/Introduction_to_Klingon_Grammer
https://memory-alpha.fandom.com/wiki/Kelsey_Grammer
https://memory-alpha.fandom.com/wiki/Programmer
https://memory-alpha.fandom.com/wiki/Viorsa's_programmer_001
https://starwars.fandom.com/wiki/Programmer_droid
https://tardis.fandom.com/wiki/Female_programmer
https://vim.fandom.com/wiki/Fast_jump_to_next_variable_on_the_same_line_(php_programmers_)
Battle Programmer Shirase -- -- AIC -- 15 eps -- Original -- Comedy Ecchi Sci-Fi -- Battle Programmer Shirase Battle Programmer Shirase -- Battle Programmer Shirase, also known as BPS, is a free programmer with super hacking abilities who doesn't work for money. What he does work for is certainly something that only people like him would appreciate. But, his demeanor certainly doesn't suit the jobs he is hired for. With the evil King of America causing trouble via the internet, Shirase is nothing but busy as each new adventure brings even more interesting people into the picture. -- -- (Source: ANN) -- -- Licensor: -- Maiden Japan -- TV - Oct 4, 2003 -- 30,537 6.93
Death March kara Hajimaru Isekai Kyousoukyoku -- -- Connect, SILVER LINK. -- 12 eps -- Light novel -- Adventure Fantasy Harem -- Death March kara Hajimaru Isekai Kyousoukyoku Death March kara Hajimaru Isekai Kyousoukyoku -- Ichirou Suzuki, a programmer nearing his thirties, is drowning in work. Worn out, he eventually has a chance to catch up on sleep, only to wake up and discover himself in a fantasy RPG world, which is mashed together from the games he was debugging in reality. In this new place, he realizes that not only has his appearance changed to a younger version of himself, but his name has also changed to Satou, a nickname he used while running beta tests on games. -- -- However, before Satou can fully grasp his situation, an army of lizardmen launch an assault on him. Forced to cast a powerful spell in retaliation, Satou wipes them out completely and his level is boosted to 310, effectively maximizing his stats. Now, as a high-leveled adventurer armed with a plethora of skills and no way to return to reality, Satou sets out to explore this magical new world. -- -- 350,234 6.51
Kobayashi-san Chi no Maid Dragon -- -- Kyoto Animation -- 13 eps -- Manga -- Slice of Life Comedy Fantasy -- Kobayashi-san Chi no Maid Dragon Kobayashi-san Chi no Maid Dragon -- As Kobayashi sets off for another day at work, she opens her apartment door only to be met by an unusually frightening sight—the head of a dragon, staring at her from across the balcony. The dragon immediately transforms into a cute, busty, and energetic young girl dressed in a maid outfit, introducing herself as Tooru. -- -- It turns out that the stoic programmer had come across the dragon the previous night on a drunken excursion to the mountains, and since the mythical beast had nowhere else to go, she had offered the creature a place to stay in her home. Thus, Tooru had arrived to cash in on the offer, ready to repay her savior's kindness by working as her personal maidservant. Though deeply regretful of her words and hesitant to follow through on her promise, a mix of guilt and Tooru's incredible dragon abilities convinces Kobayashi to take the girl in. -- -- Despite being extremely efficient at her job, the maid's unorthodox methods of housekeeping often end up horrifying Kobayashi and at times bring more trouble than help. Furthermore, the circumstances behind the dragon's arrival on Earth seem to be much more complicated than at first glance, as Tooru bears some heavy emotions and painful memories. To top it all off, Tooru's presence ends up attracting several other mythical beings to her new home, bringing in a host of eccentric personalities. Although Kobayashi makes her best effort to handle the crazy situation that she has found herself in, nothing has prepared her for this new life with a dragon maid. -- -- -- Licensor: -- Funimation -- 826,046 8.01
New Game! -- -- Doga Kobo -- 12 eps -- 4-koma manga -- Game Slice of Life Comedy -- New Game! New Game! -- Since childhood, Aoba Suzukaze has loved the Fairies Story game series, particularly the character designs. So when she graduates from high school, it is no surprise that she applies to work at Eagle Jump, the company responsible for making her favorite video game. On her first day, she is excited to learn that she will be working on a new installment to the series: Fairies Story 3—and even more so under Kou Yagami, the lead character designer. -- -- In their department are people who share the same passion for games. There is Yun Iijima, whose specialty is designing monsters; the shy Hifumi Takimoto, who prefers to communicate through instant messaging; Hajime Shinoda, an animation team member with an impressive figurine collection; Rin Tooyama, the orderly art director; Shizuku Hazuki, the game director who brings her cat to work; and Umiko Ahagon, the short-tempered head programmer. -- -- New Game! follows Aoba and the others on their adventure through the ups and downs of game making, from making the perfect character design to fixing all the errors that will inevitably accumulate in the process. -- -- 346,352 7.60
New Game! -- -- Doga Kobo -- 12 eps -- 4-koma manga -- Game Slice of Life Comedy -- New Game! New Game! -- Since childhood, Aoba Suzukaze has loved the Fairies Story game series, particularly the character designs. So when she graduates from high school, it is no surprise that she applies to work at Eagle Jump, the company responsible for making her favorite video game. On her first day, she is excited to learn that she will be working on a new installment to the series: Fairies Story 3—and even more so under Kou Yagami, the lead character designer. -- -- In their department are people who share the same passion for games. There is Yun Iijima, whose specialty is designing monsters; the shy Hifumi Takimoto, who prefers to communicate through instant messaging; Hajime Shinoda, an animation team member with an impressive figurine collection; Rin Tooyama, the orderly art director; Shizuku Hazuki, the game director who brings her cat to work; and Umiko Ahagon, the short-tempered head programmer. -- -- New Game! follows Aoba and the others on their adventure through the ups and downs of game making, from making the perfect character design to fixing all the errors that will inevitably accumulate in the process. -- -- -- Licensor: -- Crunchyroll, Funimation -- 346,352 7.60
Onegai☆Twins -- -- Daume -- 12 eps -- Original -- Comedy Drama Harem School Sci-Fi -- Onegai☆Twins Onegai☆Twins -- Maiku Kamishiro's past has always been somewhat of a mystery to him. The only clue he has to who his family might be is an old photograph showing two young children, a boy and a girl, playing in a small pool outside of a blue house. In an attempt to find his family, he moves to this blue house and begins working as a programmer. He's living a comfortable life until the day two very different girls show up at his door, both in possession of the same photograph, and both claiming to be his twin. With no way to prove who is a relative and who is a stranger, Maiku allows both girls to move in with him until they know for sure. -- -- (Source: ANN) -- -- Licensor: -- Bandai Entertainment, Nozomi Entertainment -- TV - Jul 15, 2003 -- 78,787 6.87
Onegai☆Twins -- -- Daume -- 12 eps -- Original -- Comedy Drama Harem School Sci-Fi -- Onegai☆Twins Onegai☆Twins -- Maiku Kamishiro's past has always been somewhat of a mystery to him. The only clue he has to who his family might be is an old photograph showing two young children, a boy and a girl, playing in a small pool outside of a blue house. In an attempt to find his family, he moves to this blue house and begins working as a programmer. He's living a comfortable life until the day two very different girls show up at his door, both in possession of the same photograph, and both claiming to be his twin. With no way to prove who is a relative and who is a stranger, Maiku allows both girls to move in with him until they know for sure. -- -- (Source: ANN) -- TV - Jul 15, 2003 -- 78,787 6.87
Sakura-sou no Pet na Kanojo -- -- J.C.Staff -- 24 eps -- Light novel -- Slice of Life Comedy Drama Romance School -- Sakura-sou no Pet na Kanojo Sakura-sou no Pet na Kanojo -- When abandoned kittens and his good conscience force second year Sorata Kanda to move into Suimei High School’s infamous Sakura Hall, the satellite dorm and its eccentric, misfit residents turn his life upside down. The decidedly average Sorata finds it difficult to fit in with the bizarre collection of dorm residents like Misaki, an energetic animator; Jin, a playwright playboy; Ryuunosuke, a reclusive programmer; and Chihiro, the dorm manager, art teacher, and party girl. -- -- Sorata's friend Nanami, a second year student and aspiring voice actress, pushes him to find new owners for the many cats so that he can quickly move back into the regular dorms. However, his desire to escape Sakura Hall wavers when the pet-like and infantile second year Mashiro Shiina, a world-class artistic savant looking to become a mangaka, transfers in during the spring trimester and quickly latches onto him. -- -- Supported by each other's quirks, Sorata and Mashiro come out of their shells and trigger change in the lives of those around them. Based on the light novel series of the same name, Sakurasou no Pet na Kanojo explores the fine threads connecting talent, hard work, romance, and friendship with its ensemble cast. -- -- -- Licensor: -- Sentai Filmworks -- 965,451 8.17
Stella no Mahou -- -- SILVER LINK. -- 12 eps -- 4-koma manga -- Game Slice of Life Comedy School -- Stella no Mahou Stella no Mahou -- Upon enrolling in high school, Tamaki Honda joins a club for making doujin games known as the SNS Club. Joined by programmer Shiina, writer Ayame, and composer Kayo, Tamaki begins working as an illustrator for the club's next game. -- -- (Source: Wikipedia) -- -- Licensor: -- Sentai Filmworks -- 34,275 6.86
Subete ga F ni Naru -- -- A-1 Pictures -- 11 eps -- Novel -- Sci-Fi Mystery Psychological -- Subete ga F ni Naru Subete ga F ni Naru -- In a research facility hidden away on a remote island, genius programmer Shiki Magata has lived as a recluse for years. She rarely sees guests, but associate professor Souhei Saikawa and university student Moe Nishinosono still seek her out. However, their meeting is cut short when they are caught up in a locked-room murder mystery. -- -- Everything is not as it seems, and many secrets are hidden. Within an isolated facility, a seemingly impossible and gruesome crime takes place, and Saikawa and Moe must unravel the truth behind the murder and Magata's shrouded past. -- -- -- Licensor: -- Sentai Filmworks -- 141,702 7.27
Tantei Gakuen Q -- -- Studio Pierrot -- 45 eps -- Manga -- Comedy Drama Mystery Police Shounen -- Tantei Gakuen Q Tantei Gakuen Q -- Kyuu is your average boy with a knack for logic and reasoning. Desiring to become a detective, he finds out about the existence of the Dan Detective School (DDS); a famed school where students are allowed to bear arms. Together with Megu, a girl with photographic memory, the martial arts master Kinta, the genius programmer Kazuma and the mysterious Ryuu, Kyuu tackles many well planned out crimes, always seeking the truth. -- TV - Apr 15, 2003 -- 28,923 7.76
https://wiki.archlinux.org/index.php/List_of_applications#MCU_IDE_and_programmers
Aijia Grammer
Andrew Morton (computer programmer)
Andrew Stone (computer programmer)
Andy Grammer
Battle Programmer Shirase
Billy Grammer
Brogrammer
Camille Grammer
Category:American video game programmers
Christopher Dunn (computer programmer)
Chromatic (programmer)
Comparison of IDE choices for Haxe programmers
Daniel Robbins (computer programmer)
Dave Carter and Tracy Grammer
Dave Taylor (game programmer)
Dave Thomas (programmer)
David Abrahams (computer programmer)
David Plummer (programmer)
Day of the Programmer
Decline and Fall of the American Programmer
Elijah S. Grammer
Fine by Me (Andy Grammer song)
Flame programmer
Grammer
Harry Grammer
Institution of Analysts and Programmers
James Clark (programmer)
Jim Hall (computer programmer)
Joe Armstrong (programmer)
Joe Hewitt (programmer)
John Walker (programmer)
Jonathan Smith (games programmer)
Jon Hall (programmer)
Kelsey Grammer
Lead programmer
List of awards and nominations received by Kelsey Grammer
List of programmers
List of Rage guest programmers
Macintosh Programmer's Workshop
Mark Harris (programmer)
Martin Bryant (programmer)
Matthew Smith (games programmer)
Michael Seifert (programmer)
Naive (Andy Grammer album)
Nathan Adams (programmer)
Pat Sullivan (programmer)
Paul Davis (programmer)
Paul Graham (programmer)
Programmer
Programmer's key
Programmer and Operator Productivity Aid
Programmer art
Programmer (hardware)
Real Programmers Don't Use Pascal
Robert Carr (programmer)
Robin Grammer Jr.
Roger Gregory (programmer)
Spencer Grammer
Spencer Kimball (computer programmer)
SS Nisbet Grammer
Steve Gibson (computer programmer)
Steve Turner (game programmer)
Talk:Real Programmer
The Pragmatic Programmer
Tim Anderson (programmer)
Tom Hudson (programmer)
Tom Miller (computer programmer)
Video game programmer
William Crowther (programmer)



convenience portal:
recent: Section Maps - index table - favorites
Savitri -- Savitri extended toc
Savitri Section Map -- 1 2 3 4 5 6 7 8 9 10 11 12
authors -- Crowley - Peterson - Borges - Wilber - Teresa - Aurobindo - Ramakrishna - Maharshi - Mother
places -- Garden - Inf. Art Gallery - Inf. Building - Inf. Library - Labyrinth - Library - School - Temple - Tower - Tower of MEM
powers -- Aspiration - Beauty - Concentration - Effort - Faith - Force - Grace - inspiration - Presence - Purity - Sincerity - surrender
difficulties -- cowardice - depres. - distract. - distress - dryness - evil - fear - forget - habits - impulse - incapacity - irritation - lost - mistakes - obscur. - problem - resist - sadness - self-deception - shame - sin - suffering
practices -- Lucid Dreaming - meditation - project - programming - Prayer - read Savitri - study
subjects -- CS - Cybernetics - Game Dev - Integral Theory - Integral Yoga - Kabbalah - Language - Philosophy - Poetry - Zen
6.01 books -- KC - ABA - Null - Savitri - SA O TAOC - SICP - The Gospel of SRK - TIC - The Library of Babel - TLD - TSOY - TTYODAS - TSZ - WOTM II
8 unsorted / add here -- Always - Everyday - Verbs


change css options:
change font "color":
change "background-color":
change "font-family":
change "padding":
change "table font size":
last updated: 2022-05-08 20:04:44
260225 site hits