Liana
<language> A C-like, interpretive, object-oriented programming language,
class library, and integrated development environment designed specifically for
development of application programs for Microsoft Windows and Windows NT.
Designed by Jack Krupansky <Jack@BaseTechnology.com> of Base
Technology, Liana was first released as a commercial product in August 1991. The
language is designed to be as easy to use as BASIC, as concise as C, and as
flexible as Smalltalk.
The OOP syntax of C++ was chosen over the less familiar syntax of Smalltalk and
Objective-C to appeal to C programmers and in recognition of C++ being the
leading OOP language. The syntax is a simplified subset of C/C++. The semantics
are also a simplified subset of C/C++, but extended to achieve the flexibility
of Smalltalk.
Liana is a typeless language (like Lisp, Snobol and Smalltalk), which means that
the datatypes of variables, function parameters, and function return values are
not needed since values carry the type information. Hence, variables are simply
containers for values and function parameters are simply pipes through which any
type of value can flow. Single inheritance, but not multiple inheritance, is
supported. Memory management is automatic using reference counting.
The library includes over 150 classes, for dynamic arrays, associative lookup
tables, windows, menus, dialogs, controls, bitmaps, cursors, icons, mouse
movement, keyboard input, fonts, text and graphics display, DDE, and MDI.
Liana provides flexible OOP support for Windows programming. For example, a list
box automatically fills itself from an associated object. That object is not
some sort of special object, but is merely any object that "behaves like" an
array (i.e., has a "size" member function that returns the number of elements, a
"get" function that returns the ith element, and the text for each element is
returned by calling the "text" member function for the element).
A related product, C-odeScript, is an embeddable application scripting language.
It is an implementation of Liana which can be called from C/C++ applications to
dynamically evaluate expressions and statement sequences. This can be used to
offer the end-user a macro/scripting capability or to allow the C/C++
application to be customized without changing the C/C++ source code.
Here's a complete Liana program which illustrates the flexibility of the
language semantics and the power of the class library:
main
{
// Prompt user for a string.
// No declaration needed for "x" (becomes a global variable.)
x = ask ("Enter a String");
// Use "+" operator to concatenate strings. Memory
// management for string temporaries is automatic. The
// "message" function displays a Windows message box.
message ("You entered: " + x);
// Now x will take on a different type. The "ask_number"
// function will return a "real" if the user's input
// contains a decimal point or an "int" if no decimal
// point.
x = ask_number ("Enter a Number");
// The "+" operator with a string operand will
// automatically convert the other operand to a string.
message ("You entered: " + x);
// Prompt user for a Liana expression. Store it in a
// local variable (the type, string, is merely for
// documentation.)
string expr = ask ("Enter an Expression");
// Evaluate the expression. The return value of "eval"
// could be any type. The "source_format" member function
// converts any value to its source format (e.g., add
// quotes for a string.) The "class_name" member function
// return the name of the class of an object/value.
// Empty parens can be left off for member function calls.
x = eval (expr);
message ("The value of " + expr + " is " + x.source_format +
" its type is " + x.class_name);
}
The author explained that the "Li" of Liana stands for "Language
interpreter" and liana are vines that grow up trees
in tropical forests, which seemed quite appropriate
for a tool to deal with the complexity of MS
Windows! It is also a woman's name.
["Liana for Windows", Aitken, P., PC TECHNIQUES, Dec/Jan 1993].
["Liana: A Language For Writing Windows Programs", Burk, R., Tech Specialist
(R&D Publications), Sep 1991].
["Liana v. 1.0." Hildebrand, J.D., Computer Language, Dec 1992].
["Liana: A Windows Programming Language Based on C and C++", Krupansky, J., The
C Users Journal, Jul 1992].
["Writing a Multimedia App in Liana", Krupansky, J., Dr. Dobb's Journal, Winter
Multimedia Sourcebook 1994].
["The Liana Programming Language", R. Valdes, Dr Dobbs J Oct 1993, pp.50-52].
(1999-06-29)
Nearby terms:
LHARC « lhs « li « Liana » Liar » liar
paradox » libg++
|