Programming Languages - B

Sample Program

B -

1. Thompson, 1970. A systems language written for Unix on the PDP-11. Derived from BCPL, and very similar to it except for syntax. B was the predecessor of C. Used as the systems language on Honeywell's GCOS-3. "The Programming Language B", S.C. Johnson & B.W. Kernighan, CS TR 8, Bell Labs (Jan 1973).

2. L. Meertens & S. Pemberton. Simple interactive programming language, the predecessor of ABC[1]. "Draft Proposal for the B Language", Lambert Meertens, CWI, Amsterdam, 1981.

3. Jean-Raymond Abrial. Specification language similar to Z, but also supports development of C code from specifications. B Core UK, Magdalen Centre, Oxford Science Park, Oxford OX4 4GA. info:

B-0 - Original name of FLOW-MATIC, Remington Rand. UNIVAC I or II ca. 1958.

Babbage - GEC Marconi Ltd. Named after "the first programmer to slip schedule and go over budget". Low-level language, used on their OS4000 operating system. The British videotext system Prestel is programmed in Babbage. Article in Datamation, ca Oct, 1980[?]


1. A subset of ALGOL 60, with many ALGOL W extensions. "BABEL, A New Programming Language", R.S. Scowen, Natl Phys Lab UK, Report CCU7, 1969.

2. Mentioned in The Psychology of Computer Programming, G.M. Weinberg, Van Nostrand 1971, p.241.

3. Higher-order functional plus first-order logic language. "Graph-Based Implementation of a Functional Logic Language", H. Kuchen et al, Proc ESOP 90, LNCS 432, Springer 1990, pp.271-290. "Logic Programming with Functions and Predicates: The Language BABEL", Moreno-Navarro et al, J Logic Prog 12(3) (Feb 1992).

BABYLON - Development environment for expert systems.*

BACAIC - Boeing Airplane Company Algebraic Interpreter Coding system. Pre-FORTRAN system on the IBM 701, IBM 650.

BAL - Basic Assembly Language. What most people called IBM 360 assembly language. (See ALC).

BALGOL - ALGOL on Burroughs 220. Sammet 1969, p.174.

BALITAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).

BALM - Block And List Manipulation. Harrison, 1970. Extensible language with LISP-like features and ALGOL-like syntax, for CDC 6600. "The Balm Programming Language", Malcolm Harrison, Courant Inst (May 1973).

BAP - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959).

Baroque - Boyer & Moore, 1972. Early logic programming language. "Computational Logic: Structure Sharing and Proof of program Properties", J. Moore, DCL Memo 67, U Edinburgh 1974.

BASCMP - A modification of STAGE2, used to implement the Basic Wisp translator. Implementing Software for Non-numeric Applications, W. M. Waite, P-H 1973.

bash - Bourne Again SHell. GNU's command shell for Unix.

BASIC - Beginner's All-purpose Symbolic Instruction Code. John G. Kemeny & Thomas E. Kurtz, Dartmouth College, designed 1963, first ran on an IBM 704 on May 1, 1964. Quick and easy programming by students and beginners. BASIC exists in many dialects, and is popular on microcomputers with sound and graphics support. Most micro versions are interactive and interpreted, but the original Dartmouth BASIC was compiled. ANSI Minimal BASIC, ANS X3.60-1978. list:

BASIC AUTOCODER - Early system on IBM 7070. Listed in CACM 2(5):16 (May 1959).

Basic COBOL - Subset of COBOL from COBOL-60 standards. Sammet 1969, p.339.

Basic FORTRAN - Subset of FORTRAN. Sammet 1969, p.150.

Basic JOVIAL - Subset of JOVIAL, ca. 1965. Sammet 1969, p.529.

bawk - Bob Brodt. AWK-like pattern-matching language, distributed with Minix.

bc - [Belinda's Calculator?] An interactive mini-language for numerical calculation. Part of the Unix toolkit since V7. Originally implemented by Belinda Cherry as a preprocessor for dc, supporting infix notation. The GNU toolkit contains a clone of it.

BC NELIAC - Version of NELIAC, post 1962. Sammet 1969, p.197.

BCL - Successor to Atlas Commercial Language. "The Provisional BCL Manual", D. Hendry, U London 1966.

BCPL - Basic CPL. Richards 1969. British systems language, a descendant of CPL and the inspiration for B and C. BCPL is low-level, typeless and block-structured, and provides only one-dimensional arrays. Case is not significant, but conventionally reserved words begin with a capital. Flow control: If-Then, Test-Then-Else, Unless-Do, While-Do, Until-Do, Repeat, Repeatwhile, Repeatuntil, For-to-By-Do, Loop, Break and Switchon-Into-Case-Default-Endcase. BCPL has conditional expressions, pointers, and manifest constants. BCPL had both procedures: 'Let foo(bar) Be command' and functions: 'Let foo(bar) = expression'. 'Valof $(..Resultis..$)' causes a compound command to produce a value. Parameters are call-by-value. Program segments communicate via the global vector where system and user variables are stored in fixed numerical locations in a single array. BCPL was used to implement the TRIPOS OS, which was subsequently reincarnated as AmigaDOS. "BCPL - The Language and its Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979. (See OCODE, INTCODE). Oxford BCPL differed slightly: Test-Ifso-Ifnot, and section brackets in place of $( $).

BDL - Block Diagram Compiler. A block-diagram simulation tool, with associated language. "A Software Environment for Digital Signal-Processing Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal Processing 6(1):31-43, (1987).

BeBOP - Combines sequential and parallel logic programming, object-oriented and meta-level programming. Both "don't know" nondeterminism and stream AND-parallelism. Prolog theories are first order entities and may be updated or passed in messages. Implemented by translation to NU-Prolog and PNU-Prolog. info: Andrew Davidson <>

BEGL - Back End Generator Language. A code generator description language. The input language for the back end generator BEG. "BEG - A Generator for Efficient Back Ends", H. Emmelmann et al, SIGPLAN Notices 24(7):227-237 (Jul 1989). "BEG - A Back End Generator - User Manual", H. Emmelmann <>, GMD, U Karlsruhe 1990.*

BELL - Early system on IBM 650 and Datatron 200 series. [Is Datatron version the same?] Listed in CACM 2(5):16 (May 1959). Versions: BELL L2, BELL L3.

BER - Basic Encoding Rules. Provides a universal (contiguous) representation of data values. Used with ASN.1.

Bertrand - (named for the British mathematician Bertrand Russell (1872- 1970)). Wm. Leler. Rule-based specification language based on augmented term rewriting. Used to implement constraint languages. The user must explicitly specify the tree-search and the constraint propagation. "Constraint Programming Languages - Their Specification and Generation", W. Leler, A-W 1988, ISBN 0-201-06243-7.

BETA - Kristensen, Madsen<>, Moller-Pedersen & Nygaard, 1983. Object-oriented language with block structure, coroutines, concurrency, strong typing, part objects, separate objects and classless objects. Central feature is a single abstraction mechanism called "patterns", a generalization of classes, providing instantiation and hierarchical inheritance for all objects including procedures and processes. "Object-Oriented Programming in the BETA Programming Language", Ole Lehrmann et al, A-W June 1993, ISBN 0-201-62430-3. Mjolner Informatics ApS, implementations for Mac, Sun, HP, Apollo. info: list:

BIOR - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959).

BLAZE - Single assignment language for parallel processing. "The BLAZE Language: A Parallel Language for Scientific Programming", P. Mehrotra <> et al, J Parallel Comp 5(3):339-361 (Nov 1987).

BLAZE 2 - Object-oriented successor to BLAZE. "Concurrent Object Access in BLAZE 2", P. Mehrotra et al, SIGPLAN Notices 24(4):40-42 (Apr 1989).

Blazon - "From Blazon to Postscript", Daniel V. Klein, LoneWolf Systems, USENIX Symp on Very High Level Languages, Oct 1994.

B-LINE - Early CAD language. "B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall JCC 33 1968.

BLISS - Basic Language for Implementation of System Software (or allegedly, "System Software Implementation Language, Backwards"). W.A. Wulf, CMU ca. 1969. An expression language, block-structured, and typeless, with exception handling facilities, coroutines, a macro system, and a highly optimizing compiler. One of the first non-assembly languages for OS implementation. Gained fame for its lack of a goto. Also lacks implicit dereferencing: all symbols stand for addresses, not values. "BLISS: A Language for Systems Programming", W.A. Wulf et al, CACM 14(12):780-790 (Dec 1971). Versions: CMU BLISS-10 for the PDP-10. CMU BLISS-11, a cross compiler for PDP-11 running on PDP-10, to support the C.mmp/Hydra project. DEC BLISS-32 for VAX/VMS.

BlooP - Douglas Hofstadter, 1979. Imperative language, designed for pedagogical purposes. Mechanizes primitive-recursive functions. Douglas Hofstadter, "Godel, Escher, and Bach: An Eternal Golden Braid", Basic Books, Chap 13. ISBN 0-465-02685-0. Implementation in Perl by John Cowan <>, 1994. (See FlooP).*

Blosim - Block-Diagram Simulator. A block-diagram simulator. "A Tool for Structured Functional Simulation", D.G. Messerschmitt, IEEE J on Selected Areas in Comm, SAC-2(1):137-147, 1984.

BLOX - A visual language.

Blue - Softech. A language proposed to meet the DoD Ironman requirements which led to Ada. "On the BLUE Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):10-15 (Oct 1978).

BMASF - Basic Module Algebra Specification Language? "Design of a Specification Language by Abstract Syntax Engineering", J.C.M. Baeten et al, in LNCS 490, pp.363-394.

BMDP - BioMeDical Package. UCB, 1961. Statistical language, first implemented in FORTRAN for the IBM 7090.

BMF - Bird-Meertens Formalism. A calculus for derivation of a functional program from a given specification. "A Calculus of Functions for Program Derivation", R.S. Bird, in Res Topics in Fnl Prog, D. Turner ed, A-W 1990. Also known as Squiggol. "The Squiggolist", ed Johan Jeuring, published irregularly by CWI Amsterdam.

BNF - Backus Normal Form, later renamed Backus-Naur Form at the suggestion of Donald Knuth. A formalism to express the productions of context-free grammars. First used in the specification of Algol-58.

BNR Pascal - "Remote Rendezvous", N. Gammage et al, Soft Prac & Exp 17(10):741-755 (Oct 1987.

BNR Prolog - Constraint logic.

Bob - David Betz. A tiny object-oriented language. Dr Dobbs J, Sep 1991, p.26.

BOEING - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959).

Booster - Data parallel language. "The Booster Language", E. Paalvast, TR PL 89-ITI-B-18, Inst voor Toegepaste Informatica TNO, Delft, 1989.

BOPL - Basic Object Programming Language. Minimal object-based language for teaching. "Object-Oriented Sype Systems", J. Palsberg et al, Wiley, 1993.

BOSS - Bridgport Operating System Software. Derivative of the ISO 1054 numerical machine control language for milling, etc.

Boxer - Hal Abelson and Andy diSessa, Berkeley. A visual language, claims to be the successor to Logo. Boxes used to represent scope.


BRIDGE - Component of ICES for civil engineers. Sammet 1969, p.616.

Bridgetalk - A visual language.

Brilliant - One of five pedagogical languages based on Markov algorithms, used in "Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). (cf. Diamond, Nonpareil, Pearl[3], Ruby[2]).

BRUIN - Brown University Interactive Language. Simple interactive language with PL/I-like syntax, for IBM 360. "Meeting the Computational Requirements of the University, Brown University Interactive Language", R.G. Munck, Proc 24th ACM Conf, 1969.

bs - A BASIC-like interactive language, really a sort of super-extended calculator utility, shipped with some early System V Unixes.


1. Variant of IBM's PL/S systems language. Versions: BSL1, BSL2.

2. Backtracking Specification Language. A logic programming language fundamentally different from Prolog. A nondeterministic Algol-like language where variables cannot be assigned more than once except in controlled contexts. Each BSL program corresponds to an assertion in first order logic, and executing the program amounts to proving the assertion. Used to write an expert system CHORAL for harmonization of Bach-style chorales. "Report on the CHORAL Project: An Expert System for Chorale Harmonization", K. Ebcioglu, RC 12628, IBM TJWRC, 1987.

BUGSYS - Pattern recognition and preparing animated movies, for IBM 7094 and IBM 360. "BUGSYS: A Programming System for Picture Processing - Not for Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966).

Burge's Language - Unnamed functional language based on lambda-calculus. Recursive Programming techniques", W.H. Burge, A-W 1975.

Butterfly Common LISP - Parallel version of Common LISP for the BBN Butterfly machine.

Butterfly Scheme - Parallel version of Scheme for the BBN Butterfly.

byacc - See yacc.