Mathematica) numerical package. Speakeasy has a clear Fortran foundation syntax. It first addressed efficient physics computation internally at ANL, was modified for research use (as "Modeleasy") for the Federal Reserve Board in the early 1970s and then was made available commercially; Speakeasy and Modeleasy are still in use currently. Simula, invented in the late 1960s by Nygaard and Dahl as a superset of Algol 60, was the first language designed to support object-oriented programming. FORTH, the earliest concatenative programming language was designed by Charles Moore in 1969 as a personal development system while at the National Radio Astronomy Observatory (NRAO). C, an early systems programming language, was developed by Dennis Ritchie and Ken Thompson at Bell Labs between 1969 and 1973. Smalltalk (mid-1970s) provided a complete ground-up design of an object-oriented language. Prolog, designed in 1972 by Colmerauer, Roussel, and Kowalski, was the first logic programming language. ML built a polymorphic type system (invented by Robin Milner in 1973) on top of Lisp, pioneering statically-typed functional programming languages. Each of these languages spawned an entire family of descendants, and most modern languages count at least one of them in their ancestry. The 1960s and 1970s also saw considerable debate over the merits of "structured programming", which essentially meant programming without the use of "goto". A significant fraction of programmers believed that, even in languages that provide "goto", it is bad programming style to use it except in rare circumstances. This debate was closely related to language design: some languages did not include a "goto" at all, which forced structured programming on the programmer. To provide even faster compile times, some languages were structured for "one-pass compilers" which expect subordinate routines to be defined first, as with Pascal, where the main routine, or driver function, is the final section of the program listing. Some notable languages that were developed in this period include: 1967 – BCPL (forerunner to B) 1968 – Logo 1969 – B (forerunner to C) 1970 – Pascal 1970 – Forth 1972 – C 1972 – Smalltalk 1972 – Prolog 1973 – ML 1975 – Scheme 1978 – SQL (a query language, later extended) 1980s: consolidation, modules, performance The 1980s were years of relative consolidation in imperative languages. Rather than inventing new paradigms, all of these movements elaborated upon the ideas invented in the previous decade. C++ combined object-oriented and systems programming. The United States government standardized Ada,