L

 


 

 

Introduction

Writing swizzy programs is just too darn hard. The L language was designed from the ground up to make your life as a programmer easier. OK, so that's a lie... In truth, the L programming language was designed to make our lives as programmers easier. But we're fairly sure that the features in L that make our lives easier will probably also apply to you.

To this end, the L programming language was designed with the following principles in mind:

    1. Easy things should be easy to do, hard things should be possible. (I think this is a Larry Wall quote.)

    2. If it's tedious, obvious, or easily forgotten, it should be automatic.

    3. Provide a reasonable default when preferred behavior is not explicitly defined.

    4. Favor programming efficiency over execution speed (since processors are getting faster at executing code than programmers are at writing it!)

    5. Data representation should be flexible and dynamic.

    6. The language should integrate easily and well with C++ so that L code can be quickly added to existing C++ projects if desired, and C++ code can be added to existing L projects in areas where maximum performance is needed.

We think that L lives up to these principles, and we hope that you will find it to be a useful tool as well.

 

Release Caveats

The first release of the L language by no means implements the entire language specification. But we feel enough of the language is functional to already make it a useful tool. Future releases of the language will continue to add features until the full language specification has been implemented.

It is our practice to initially implement L language features using simple algorithms to help verify correct operation of the compiler and associated run-time components. After it has been determined that language features are operating correctly, their implementations will be optimized to improve execution speed and/or memory usage. Some degree of optimization has been applied to this first release, but almost surely the L language is currently slower and less compact than it could be.

As with the language, the documentation found in these web pages is far from perfect or complete. As new releases of the compiler and tools are made public, the web pages will be updated to fill in the gaps.

Finally, the only way L can improve over time is if you play with it and send us your impressions, your suggestions, your bug reports, and (if you like) your fixes and/or improvements to the code base itself.

 

Overview of L Pages

This section provides a brief summary of each of the L related pages reached through the links found at the left hand edge of this page.

 

Background

This page gives a brief history of the motivation behind the creation of the L language. Fun, but non-essential reading.

 

FAQ

Covers some obvious questions often asked about the L language. Besides, any site worth its salt has a FAQ page.

 

Getting Started

As its name suggests, this is the place to start your exploration of the L language.

 

Downloads

This page provides links to the download packages for the L source code and binaries for each of the currently supported platforms.

 

Tutorial

This page provides a basic introduction to L programming and debugging.

 

Language

A reference page that summarizes the currently supported and future L Language syntax, and provides simple examples of their use.

 

Compiler

A reference page that explains the various command-line options for the L Compiler.

 

Roadmap

A roadmap for the current and future development of L. The first part consists of a short check-list of the planned releases, followed by a .status section (our version of a Carmack like .plan file) replete with pontifications about the future of computer languages and compiler theory, which we really don't know anything about.

 

Contact

This page provides various E-Mail links at the outside chance you encounter problems with either the L compiler or the L run-time.