Version 1 of UPL: The Bootstrap File

Updated 2005-01-08 04:59:57

Peter Newman: 8 January 2005

The "Bootstrap File" is a plain ASCII text file that allows the script-level programmer to select the data types and command/functions they want, in their own personal or application specific programming toolkit.

It looks like (for example):-

 module d:/UPL/lib/interpreters/Tcl.dll           (.so on Linux)
 # module d:/UPL/lib/interpreters/C.dll            (.so on Linux)
 # module d:/UPL/lib/interpreters/Perl.dll         (.so on Linux)
 # module d:/UPL/lib/interpreters/Python.dll       (.so on Linux)
 module d:/UPL/lib/interpreters/Lisp.dll          (.so on Linux)
 # module d:/UPL/lib/interpreters/Scheme.dll       (.so on Linux)

 module d:/UPL/lib/dataTypes/integers.dll         (.so on Linux)
 module d:/UPL/lib/dataTypes/strings.dll          (.so on Linux)
 module d:/UPL/lib/dataTypes/lists/basic.dll      (.so on Linux)
 # module d:/UPL/lib/dataTypes/arrays.dll          (.so on Linux)

 module d:/UPL/lib/io/files.dll                   (.so on Linux)
 module d:/UPL/lib/io/std.dll                     (.so on Linux)

 etc etc

Where module functions pretty much like Tcl's load - and 'loads' the dll/so whoose path follows on the command line.

One-eyed Tcl'ers will note the sacrilege at the top of the list. What are Perl and Python interpreters doing there?

Simple; this is the "Unified Programming Language". It's for idiots like me who think that there's no such thing as the perfect programming language (although every programmer probably has his or here preference(s)).

But UPL is built on the assumption that every programming language ahs it's advantages and disadvantages. And we want the script level programmer to be free to:-

  1. Take data types - commands/functions - and even syntax and quoting rules etc - from other languages, as they see fit, and:-
  2. To be able to script a single application in whatever combination of languages/syntaxes they want, and;
  3. For programmers to be able to invent new quoting rules and syntaxes - and ways of expressing the solution to programming problems, etc - as they see fit.