Speakeasy was a numerical computing interactive environment also featuring an interpreted programming language.
It was initially developed for internal use at the Physics Division of Argonne National Laboratory by the theoretical physicist Stanley Cohen.
Speakeasy was aimed to make the computational work of the physicists at the Argonne National Laboratory easier.
Speakeasy was also among the first[citation needed] interactive numerical computing environments, having been implemented in such a way on a CDC 3600 system, and later on IBM TSO machines as one was in beta-testing at the Argonne National Laboratory at the time.
[12] They are functions with a generalized interface, which can be written in FORTRAN[13] or in C.[citation needed] The independence of each of the new modules from the others and from the main processor is of great help in improving the system, especially it was in the old days.
This easy way of expanding the functionalities of the main processor was often exploited by the users to develop their own specialized packages.
Among the packages developed by the users, one of the most important is "Modeleasy", originally developed as "FEDeasy"[14] in the early 1970s at the research department of the Federal Reserve Board of Governors in Washington D.C..[15] Modeleasy implements special objects and functions for large econometric models estimation and simulation.
Arguments of functions are usually not required to be surrounded by parenthesis or separated by commas, provided that the context remains clear and unambiguous.
Within reasonable conformity and compatibility constraints, the Speakeasy objects can be operated on using the same algebraic syntax.
From this point of view, and considering the dynamic and structured nature of the data held in the "named storage", it is possible to say that Speakeasy since the beginning implemented a very raw form of operator overloading, and a pragmatic approach to some features of what was later called "Object Oriented Programming", although it did not evolve further in that direction.
Speakeasy provides a bunch of predefined "families" of data objects: scalars, arrays (up to 15 dimensions), matrices, sets, time series.
All the time series operations take care of the presence of missing values, propagating them appropriately in the results.
Depending on a specific setting, missing values can be represented by the above notation, by a question mark symbol, or a blank (useful in tables).
An option is available in order to make the procedures being automatically retrieved and loaded from the external storage as they are needed.
They can be statically linked to the core engine, or dynamically loaded as they are needed, provided they are properly compiled as shared objects (unix) or dll (windows).