Programming Languages - F

Sample Program

FAC - Functional Array Calculator. APL-like but purely functional and lazy, allowing infinite arrays. "FAC: A Functional APL Language", H.-C. Tu and A.J. Perlis, IEEE Trans Soft Eng 3(1):36-45 (Jan 1986).

Facile - SUNY Stony Brook, late 80's. Since 1991 at ECRC, Munich. Extends SML with a model of higher-order concurrent processes based on CCS. Suitable for loosely connected systems with distributed memory. "Facile: A Symmetric Integration of Concurrent and Functional Programming", A. Giacalone <> et al, Intl J Parallel Prog 18(2):121-160 (Apr 1989).

FACT - Fully Automated Compiling Technique. ca. 1959. Pre-COBOL English-like business DP language for Honeywell 800. (Aka Honeywell-800 Business Compiler.) Sammet 1969, p.327.

FAD - "FAD, A Simple and Powerful Database Language", F. Bancilon et al, Proc 13th Intl Conf on VLDB, Brighton England, Sept 1987.

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

FALSE - W. van Oortmerssen. A small compiled extensible language with lambda abstractions. Stack-based, like FORTH, and not very readable -- FALSE code has been said to "resemble TECO". for Amiga

FAP - Assembly language for Sperry-Rand 1103 and 1103A. Listed in CACM 2(5):16 (May 1959).

FAS - General purpose language sponsored by the Finnish government in the 70's and 80's.

FASBOL - "FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC Berkeley 1971. (See SNOBOL, SPITBOL).

FASE - Fundamentally Analyzable Simplified English. L.E. McMahon, Bell Labs. Sammet 1969, p.720.

FAST - FORTRAN Automatic Symbol Translator. Assembly language on IBM 650 by MITRE Corp. Listed in CACM 2(5):16 (May 1959). Sammet 1969, p.526.

FC - Functional language. "FC Manual", L. Augustsson, Memo 13, Programming Methodology Group, Chalmers U, Sweden 1982.

F-code - Code for the FPM abstract machine, an optimized SECD machine. "FP/M Abstract Syntax Description", R. Bailey, Dept Computing, Imperial College, U London, 1985.

FCP - Flat Concurrent Prolog. "Design and Implementation of Flat Concurrent Prolog", C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984.

Feel - Free and Eventually EuLisp. An initial implementation of EuLisp.

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.

FFP - Formal FP. Similar to FP, but with regular sugarless syntax, for machine execution. "Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978). (See FP, FL).

FGHC - Flat GHC. A variant of GHC in which guard calls can be only to primitives. (See KL1).


1. Flow Graph Lisp. A distributed dataflow language for AMPS (Applicative Multi-Processing System). "A Loosely-Coupled Applicative Multi-Processing System", R. Keller et al, NCC, AFIPS June 1979, pp.613- 622.

2. Function Graph Language. Related to FEL.

FGL+LV - "Functional Programming and the Logical Variable", G. Lindstrom, POPL 1985, pp.266-280.

FGRAAL - FORTRAN extended GRAph Algorithmic Language. A FORTRAN extension for handling sets and graphs. "On a Programming Language for Graph Algorithms", W.C. Rheinboldt et al, BIT 12(2) 1972.

FIDIL - Based on "maps", generalized arrays whose index sets ("domains") are arbitrary d-dimensional sets. Domains are first-class objects and may be constructed by union, intersection, etc. "Fidil: A Language for Scientific Programming", P.N. Hilfinger et al, TR UCRL-98057, LLNL Jan 1988.

FIDO - FInite DOmains. A constraint language implemented on top of Prolog.*

Fifth - An enhanced version of FORTH. M.S. Dissertation, Cliff Click <>, Texas A&M, 1985. Available from the Software Construction Co, (409)696-5432.

File Composition - Typesetting language. "File Composition System Reference Manual", No. 90388, Information Intl.

F+L - Equational clauses within function definitions to solve for logical variable bindings. "Functions plus Logic in Theory and Practice", R.B. Kieburtz, Feb 1987, unpublished.

FL - Function Level. John Backus, ca. 1985. Successor to FP. Dynamically typed. Adds higher-order functions, exceptions, user-defined types, and other features. "FL Language Manual, Parts 1 & 2", J. Backus et al, IBM Research Report RJ 7100 (1989). FL compiler: IBM Almaden, 1992. (See FP, FFP). info: John Williams <>

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

FLAP - Symbolic math, for IBM 360. "FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971) U.S. Naval Weapons Lab. Sammet 1969, p.506.

Flavors - D. Weinreb & D.A. Moon <> 1980. LISP with object-oriented features. "Object-Oriented Programming with Flavors", D.A. Moon, SIGPLAN Notices 21(11):1-8 (OOPSLA '86) (Nov 1986).

Fleng - Parallel logic language. "Massively Parallel Implementation of Flat GHC on the Connection Machine", M. Nilsson, Proc Intl Conf on 5th Gen Comp Sys, 1988, pp.1031-1040.


1. Faster LEX. A reimplementation of Lex. "The FLEX Scanner Generator", Vern Paxson <>, Systems Engineering, LBL, CA. (See Lex). // with Ada output // flex++-3.0.tar.gz with C++ output

2. Real-time language for dynamic environments. "FLEX: Towards Flexible Real-Time Programs", K. Lin et al, Computer Langs 16(1):65-79 (Jan 1991).

3. Alan Kay, ca 1967. Early object-oriented language for the FLEX machine. A simplification of Simula, and a predecessor of Smalltalk.

Flex 2 - ca. 1980. A preprocessor designed to make FORTRAN look more like Pascal. DECUS?

FLIC - Functional Language Intermediate Code. Intermediate language used in the Chalmers LML compiler. "FLIC - A Functional Language Intermediate Code", S. Peyton Jones <> et al, RR 148, U Warwick, Sep 1989.


1. Early assembly language on G-15. Listed in CACM 2(5):16 (May 1959).

2. "FLIP User's Manual", G. Kahn, TR 5, INRIA 1981.

3. Formal LIst Processor. Early language for pattern-matching on LISP structures. Similar to CONVERT. "FLIP, A Format List Processor", W. Teitelman, Memo MAC-M-263, MIT 1966.

4. J. B. Hext, U Sydney. A simple functional list processor, a simplified version of Lisp "M expressions", no functional arguments, no free variables. Implemented in KDF9 assembly language.

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

F-Logic - "F-Logic: A Higher-Order Language for Reasoning about Objects, Inheritance and Scheme", ACM SIGMOD May 1989, pp.134-146.

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

FlooP - Douglas Hofstadter, 1979. Imperative language, designed for pedagogical purposes. Mechanizes 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 BlooP).*

FLOW-MATIC or FLOWMATIC - (originally B-0). Remington Rand, 1958. Possibly the first English-like DP language. For UNIVAC I. Sammet 1969, pp.316-324.

FLPL - FORTRAN List Processing Language. Rochester, Gelernter, and Gerberich, ca 1960. Package of FORTRAN subroutines for handling lists. Weizenbaum's program Eliza was first implemented in FLPL. Sammet 1969, p.388.

FLUB - First Level Under Bootstrap. Language for an abstract machine, designed for the implementation of a system-independent macro processor. Its output is in SIMCMP. Used to implement STAGE2. Implementing Software for Non-numeric Applications, W. M. Waite, P-H 1973.

FMPL - Frobozz Magic Programming Language. Experimental Computing Facility, UC Berkeley. A prototype-based object-oriented language with functional features. Event-driven. list:


1. FOrmula CALculator. Rick Merrill, DEC, 1969. Interactive, for PDP-5/PDP-8's, a descendant of AID/JOSS. Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for PDP-11 under RT-11). Interpreter

2. Forty-One CAlculator Language. Programming language of the HP-41 calculator line.

FOCL - Expert system shell, a backward chaining rule interpreter for Mac. info:

FOCUS - Hierarchical database language. Information Builders Inc.

FOIL - File Oriented Interpretive Language. CAI language. "FOIL - A File Oriented Interpretive Language", J.C. Hesselbart, Proc ACM 23rd National Conf (1968).

foogol - Per Lindberg. A tiny ALGOL-like language based on the VALGOL I compiler, G.A. Edgar, DDJ May 1985. ftp:/comp.sources.unix/V8 Per Lindberg's original, generates VAX MACRO // by John Cowan, generates C //

FOOL - Fool's Lisp. A small Scheme interpreter.

FOOP - OBJ2 plus object-orientation. "Extensions and Foundations for Object-Oriented Programming", J. Goguen et al, in Research Directions in Object-Oriented Programming, B. Shriver et al eds, MIT Press 1987.

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

Force - dBASE dialect for MS-DOS.

The Force - Data parallel language, providing extensions to Fortran for shared memory multiprocessors. Parallel 'case' statements and critical sections. "The Force", H. Jordan in The Characteristics of Parallel Algorithms, L. Jamieson et al eds, MIT Press 1987, pp.395-436. info: Harry Jordan <>

ForceOne - Andrew K. Wright. "Polymorphism in the Compiled Language ForceOne", G.V. Cormack et al, Proc 20th Annual Hawaii Intl Conf on System Sciences, 1987, pp.284-292. "Design of the Programming Language ForceOne", A.K. Wright, MS Thesis, U Waterloo 1987.

ForceTwo - Andrew K. Wright. An unofficial successor to ForceOne.

FORM - Jos Vermaseren <> 1989. Designed for speedy handling of very large-scale symbolic math calculations. A descendant of Schoonschip. Available for many PC's and workstations., // info:

FORMAC - FORmula MAnipulation Compiler. J. Sammet & Tobey, IBM Boston APD, 1962. Extension of FORTRAN for symbolic math. "Introduction to FORMAC", J.E. Sammet et al, IEEE Trans Elec Comp (Aug 1964). Versions: PL/I-FORMAC and FORMAC73. Sammet 1969, pp.474-491.


1. FORmula MAnipulation Language. An early FORTRAN extension for symbolic math. "FORMAL, A Formula Manipulation Language", C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971).

2. IBM LASC. Data manipulation language for nonprogrammers. "FORMAL: A Forms-Oriented and Visual-Directed Application System", N.C. Shu, IEEE Computer 18(8):38-49 (1985).

FORMAT-FORTRAN - FORTRAN Matrix Abstraction Technique FORTRAN. Manipulation, printing and plotting of large matrices. "FORMAT-FORTRAN Matrix Abstraction Technique (Vol. V)" AFFDL-TR-66-207, Douglas Aircraft Co (Oct 1968).

Formes - Object-oriented language for music composition and synthesis, written in VLISP. "Formes: Composition and Scheduling of Processes", X. Rodet & P. Cointe, Computer Music J 8(3):32-50 (Fall 1984).

FORML - Formal Object Role Modeling Language. CASE language?

Formula -

1. FORTH Music Language. An extension of FORTH with concurrent note- playing processes. "Formula: A Programming Language for Expressive Computer Music", D.P. Anderson et al Computer 24(7):12 (Jul 1991). For Mac and Atari ST, with MIDI output.

2. Preprocessor language for the Acorn Archimedes, allowing inline high- level statements to be entered in an assembly program. Written in nawk.

Formula ALGOL - ALGOL extension for symbolic math, strings and lists. Carnegie, CDC G-20, 1962. A.J. Perlis & R. Iturriaga. Sammet 1969, p.583. "An Extension of ALGOL for Manipulating Formulae", A.J. Perlis et al, CACM 7(2):127-130 (Feb 1964).

Fornax - "Fornax: A General Purpose Programming Language", J. Storrs Hall, Rutgers U, USENIX Symp on Very High Level Langauges, Oct 1994.

Forsythe - An ALGOL-like language. "Preliminary Design of the Programming Language Forsythe", J.C. Reynolds, CMU-CS-88-159, 1988.

FORTH - Fourth. Charles H. Moore, 1960's. An interactive extensible language using postfix syntax and a data stack. A program is a set of functions ("words") which are compiled by an outer interpreter into bytecodes. FORTH is small and efficient, but programs can be difficult to read. Used first to guide the telescope at NRAO, Kitt Peak. Versions include FORTH 79 and FORTH 83. FORTH Interest Group, Box 1105, San Carlos CA 94070. ANSI standard soon to be adopted.

FORTRAN - FORmula TRANslator. The first and still the most widely used language for numerical calculations. Nonrecursive, efficient.

FORTRAN I - John Backus, IBM for the IBM 704. Design begun 1954, compiler released April 1957.

FORTRAN II - 1958. Added subroutines.

FORTRAN III - This was only distributed to ca. 20 sites. See Wexelblat.

FORTRAN IV - IBM 1962. For the IBM 7090/94. Many implementations went well beyond the original definition.

FORTRAN V - Preliminary work on adding character handling facilities by IBM ca. 1962. This name never really used.

FORTRAN VI - Internal IBM name for early PL/I work ca. 1963. Sammet 1969, p.540.

FORTRAN 66 - FORTRAN IV standardized. ASA X3.9-1966.

FORTRAN 77 - Block IF, PARAMETER, SAVE statements added, still no WHILE. Fixed-length character strings, format-free I/O, arrays with lower bounds. ANSI X3.9-1978. // for Amiga

Fortran 90 - Previously Fortran 8x and Fortran Extended. An extensive enlargement of FORTRAN 77. Derived types, assumed shape arrays, array sections, functions returning arrays, case statement, module subprograms and internal subprograms, optional and keyword subprogram arguments, recursion, and dynamic allocation. ISO 1539:1991, soon to be adopted by ANSI. "Fortran 90 Explained", M. Metcalf et al, Oxford University Press 1990.

Fortran D - Ken Kennedy, Rice U. A data-parallel Fortran. "Fortran D Language Specification", G. Fox et al, TR 90079, Rice U, March 1991. info: Theresa Chapman <>

Fortran-Linda - Scientific Computer Assocs <>.

Fortran M - Parallel extensions to Fortran with processes and channels. "Fortran M: A Language for Modular Parallel Programming", I. Foster et al, MCS-P327-0992, ANL, 1992. info: Ian Foster <>

FORTRAN-Plus - FORTRAN for the DAP parallel machine, implements many Fortran 90 features.

FORTRANSIT - FORTRAN Internal Translator. Subset of FORTRAN translated into IT on the IBM 650. Sammet 1969, p.141.

FORTRUNCIBLE - A cross between FORTRAN and RUNCIBLE for the IBM 650. Listed in CACM 2(5):16 (May 1959).

FOSIL - Fredette's Operating System Interface Language. A portable job control language, for IBM OS360, UNIVAC EXEC 8 and Honeywell GCOS. "Fredette's Operating System Interface Language (FOSIL)", G.N. Baird in Command Languages, C. Unger ed, N-H 1973.

FoxBASE+ - dBASE III+-like product from Fox Software, Perrysburg, OH.

FoxPRO - dBASE IV-like product from Fox Software, Perrysburg, OH.

FP - Functional Programming. Backus. Combinator based. "Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978). (See FFP, FL, IFP). Berkeley FP - distributed with 4.2BSD ftp: comp.sources.unix/Volume20: fpc translates FP programs to C. comp.sources.unix/volume13: FP by Andy Valencia

FP2 - Functional Parallel Programming. Term rewrite rules used to specify algebraic data types and parallel processes. "Term Rewriting as a Basis for the Design of a Functional and Parallel Programming Language. A Case Study: The Language FP2", Ph. Jorrand in Fundamentals of Artificial Intelligence, LNCS 258, Springer 1986, pp.221-276.

FP/M - An intermediate language for functional languages, used to implement Hope. "The Compilation of FP/M Programs into Conventional Machine Code", A.J. Field, Imperial College, London, 1985. "Functional Programming", A.J. Field & M.C. Harrison, A-W 1988.

FQL - Functional database language. "An Implementation Technique for Database Query Languages", O.P. Buneman et al, ACM Trans Database Sys 7(2):164-186 (June 1982).

FrameKit - Frame language. "The FrameKit User's Guide", E. Nyberg, TR CMU- CMT-88-MEMO, CMU 1988.

FRANK - "Using BINS for Interprocess Communication", P.C.J. Graham, SIGPLAN Notices 20(2):32-41 (Feb 1985).

Franz Lisp - (named for the Hungarian composer Franz Liszt (1811-1886)) R. Fateman et al, UC Berkeley ca 1980. A MacLisp-like dialect of LISP, developed primarily for work in symbolic algebra. Written in C. "The FRANZ LISP Manual", J.K. Foderaro et al. UC Berkeley 1980. Version: Opus 38.22. Liszt (the compiler) Version 8.08.

FRED - Robert Carr. Language used by Framework, Ashton-Tate.

Fresco - Object-oriented specification language. "Refinement in Fresco", in Object Oriented Specification Case Studies, K. Lano et al eds, P-H 1993.

Fresh - "Fresh: A Higher-Order Language Based on Unification", G. Smolka, in Logic Programming: Functions, Relations and Equations", D. DeGroot et al, P-H 1986, pp.469-524.

FRINGE - C. Katz, GE, 1961. Subcomponent of GE-255 GECOM system. Sorting and merging of data, reports and file maintenance.

FRL - Frame Representation Language. MIT. "The FRL Manual", R. Roberts et al, AI Memo 409, MIT AI Lab, 1977.

FRMT-FTRN - Scientific language, listed [?] 1976.

FSL - Formal Semantics Language. Language for compiler writing. "A Formal Semantics for Computer Languages and its Application in a Compiler- Compiler", J.A. Feldman, CACM 9(1) (Jan 1966). Sammet 1969, p.641.

FSMDL - Finite State Machine Description Language. [?]

Fugue - Music language, implemented in Xlisp. "Fugue: A Functional Language for Sound Synthesis", R.B. Dannenberg et al, Computer 24(7):36-41 (Jul 1991).

Fun - A typed lambda-calculus, similar to SOL[2]. "On Understanding Types, Data Abstractions and Polymorphism", L. Cardelli et al, ACM Comp Surveys 17(4) (Dec 1985).

FUNLOG - Functional programming plus unification. "Lazy" in the sense that expressions are reduced only if they are not unifiable. "FUNLOG: A Computational Model Integrating Logic Programming and Functional Programming", P.A. Subrahmanyam et al, in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986.

FX-87 - Effects. A polymorphic language based on Scheme, allowing side effects and first-class functions. Attempts to integrate functional and imperative programming. Expressions have types, side effects (e.g. reading, writing or allocating) and regions (stating where the effects may occur). "The FX-87 Reference Manual", D.K. Gifford <> et al, MIT/LCS/TR-407, Oct 1987. Version: FX-89.

FX-90 - Partial type and effect reconstruction and first-class modules.