OOSL
An object-oriented scripting language recorded as appearing in 1992 that has left no trace of its own, and the two later languages that share its name: a Brazilian stack language and an Italian Delphi scripting engine
Created by Not publicly documented - no paper, manual, product announcement or archive entry naming the author or vendor of a 1992 OOSL has been located
OOSL is catalogued as an object-oriented scripting language that first appeared around 1992 and is now historical, with commercial use said to have ended around 2005. That is nearly everything that can be said about it with confidence. No specification, implementation, manual, paper, vendor announcement or named author for a 1992 OOSL turned up in the web searches, encyclopedia lookups and repository searches done for this article.
The name itself is part of the problem. “OOSL” reads naturally as “Object-Oriented Scripting Language” or “Object-Oriented Specification Language”, so it works as a generic label as much as a proper name. Some university courses on object-oriented scripting languages reportedly use the abbreviation, and at least two unrelated languages have adopted it since 2006. Both are documented below because they are what anyone searching for OOSL today will find. Neither has any known connection to the 1992 entry.
What the record says
The catalog entry that preserves the language records six facts:
| Field | Recorded value |
|---|---|
| Name | OOSL |
| Year | 1992 |
| Status | Historical |
| Last commercial use | 2005 |
| Paradigm | Object-oriented |
| Category | Scripting |
The accompanying note expands the name as “Object Oriented Scripting Language” and describes it as a scripting language with OOP features, limited commercial adoption and historical interest only. None of these values could be checked against a primary source. The years in particular should be read as approximate, because catalog compilers of obscure languages often take a date from a single citation, and a citation year is not necessarily a release year.
What the classification suggests
The points below are inferences from the record, not established facts.
1992 was a crowded year for object-oriented scripting. In the early 1990s many products shipped an embedded scripting language with objects attached. Asymetrix ToolBook’s OpenScript (1990), Apple’s AppleScript (1993) and Python (first released in 1991) all belong to this period. A commercial “object-oriented scripting language” of 1992 with limited adoption fits this pattern: most likely the macro or automation language of a single application or vendor toolkit, and most likely documented only in that product’s manuals.
A last-commercial year implies a product. The catalog gives a year in which commercial use ended, which suggests OOSL was sold or bundled rather than released as a research artifact. Languages tied to one commercial product usually disappear with it. Their documentation was printed, their binaries were licensed, and nothing was uploaded to a public archive.
The name may not have been a brand. “OOSL” may be a contemporary description of the language rather than its trade name, perhaps one used in a review or survey. If so, the language may survive in the record under a different name. No candidate for that identification has been found.
Not to be confused with
Two languages that really are called OOSL are well documented. Both are later and unrelated.
| Name | What it is | Why it is not this language |
|---|---|---|
| OOSL: Object Oriented Stack Language | A general-purpose RPN (postfix) language from the Brazilian company 3W Comunicacao, whose SourceForge developers are listed as Henrique Leme, Cleber Goncalves and a third account, andre_leme. It was published on SourceForge in December 2006 under the MIT License. | Its expansion is “Stack”, not “Scripting”. Its earliest dated trace is a 1999 copyright notice, and it was never described as a 1992 product |
| VRCalc++ OOSL: Object Oriented Scripting Language | The scripting engine behind VRCalc++, a set of Delphi (Object Pascal) applications by the apparently Italian developer Vincent Radio (Adrix.NT), published on GitHub in 2017 under the GPL. | It matches the catalog’s expansion exactly, but its source dates from 2006 onwards and it was a one-person project, not a commercial product of the early 1990s |
The Object Oriented Stack Language
The stack-based OOSL is the better documented of the two. Its SourceForge project describes it as a “cross platform object oriented stack programming language” that runs scripts in a terminal, builds graphical applications, runs as a CGI program under web servers, or embeds in other applications. Its repository contains prebuilt binaries for 32- and 64-bit Intel Linux, Mac OS X and Windows (terminal and GUI), along with a MySQL-enabled Linux build. Its reference manual, titled “OOSL Language Reference, Version 2.0”, defines five basic object types: strings, real numbers (which the manual says are held in a double structure accepting 80-bit values), two-dimensional string arrays (“arrays”), flags and labels. It also defines a set of stack operators close to those of Forth and PostScript (dup, pop, exch, roll, pick, ndup).
Labels begin with a backslash. Methods are defined with method ... endmethod, and control flow uses postfix if ... else ... endif, for ... endfor and do ... enddo. These lines from the project’s demo RPN calculator, gi.calculator.sl, show the style:
\pushnum method \pilha getref exch vwrite pop endmethod
\addnum method getnum popnum getnum popnum add makenum endmethod
\subnum method getnum popnum getnum popnum exch sub makenum endmethod
The object-oriented features are listed in the project’s Portuguese command reference: class creates a class, extend declares that one class extends another, relate declares a relationship between classes, method ... in <class> out <class> ... endmethod declares a method together with its expected input and output classes, and instance creates an instance. Scripts could also be embedded in HTML pages between <?oosl> tags, much as PHP is. The project’s own default.sl demo uses this to dump CGI parameters and environment variables.
The Subversion history begins on 11 December 2006 with a test commit. The next day comes “Original version 1.45.2”, an import of an existing code base. The project reached 295 revisions. The last two came on 21 September 2010, fourteen months after the one before them.
VRCalc++ Object Oriented Scripting Language
The second namesake grew out of VRCalc, a Delphi calculator whose form source files are dated 2006 in the published archive. By 2009 its author’s dated implementation notes discuss adding objects, properties, methods, strings, arrays and a dot operator to the calculator’s expression engine, which became a general scripting language run by a “VRCalc++ SX (script executor)” and a console application. The repository’s README calls it “VRCalc++ Object Oriented Scripting Language” and lists build packages for Embarcadero Delphi. Script modules use a .vrcm extension and an @-prefixed keyword syntax:
@function Initialize()
{
@selfvar.theRandSeed = 0,
@this
},
@to GetRandSeed() { @return @selfvar.theRandSeed },
@to SetRandSeed (aValue) { @selfvar.theRandSeed = aValue },
@property RandSeed get (@thisclass.GetRandSeed) set (@thisclass.SetRandSeed),
(from AxRandomClass.vrcm, part of the project’s script-defined library modules)
Most of the repository’s archives, including the one holding the script modules quoted above (files dated 2015 to 2017), were committed when it was created in February 2017. The fuller source archive, ax-dev-hot-delphi.zip, holds files dated from 2009 to 2023 and was updated repeatedly from August 2022 until its latest commit in June 2023.
Why it matters
Most entries in this encyclopedia rebuild a language from what survives of it. OOSL shows a different kind of loss. A commercial scripting language from the early 1990s, sold with one product and documented only in printed manuals, can vanish so completely that its name now belongs to other projects. The two later OOSLs are themselves fragile: one lives only on SourceForge, the other in a single GitHub repository. If anyone has a manual, disk or magazine review of a 1992 product describing its “OOSL”, that one artifact would settle questions no amount of searching has answered.
Sources and what was not found
- Catalog record: the year, status, last-commercial year, paradigm and category come from the encyclopedia’s master list and are unverified.
- Object Oriented Stack Language: SourceForge project metadata (registration date, developers, license), the Subversion repository (commit history,
doc/LICENSE.txt,doc/command_ref_portuguese.txt,doc/oosl_command_reference.rtf,demo/*.sl) and the project home page at oosl.sourceforge.net. - VRCalc++ OOSL: the GitHub repository
adrixnt/Adrix.NT-Delphi-VRCalc-OOSL-and-more(README, GPLv3 license, archived source and script modules). - Searched without finding a 1992 OOSL: general web search under several phrasings, FOLDOC, PLDB’s data repository, the Esolang wiki, Wikipedia’s lists of programming languages, the Hello World Collection and GitHub repository search. HOPL did not respond, the Internet Archive was offline during research and Google Books was over its query quota, so none of the three could be checked. Both remain the most promising leads.