The CTL language possesses two very distinctive commands; a compiler (ctlcomp) which compiles source code to pseudo-code, and a command (ctl) that executes this pseudo-code thus guaranteeing that the source code is totally portable from one platform to another without the need for any modification whatsoever.
On the other hand, CTL possesses its own process control, so that in the case of program nesting, no call to the operating system is made, but it is the very language that takes charge of whatever CTL process the user has started.
This feature reduces considerably the load on the operating system: for each user executing an application there will be only one process in memory.
In comparison with other languages, the applications developed with CTL do not require any operating system context switching, which, in the case of UNIX, is a very costly task in terms of execution times.
All this provides surprising application execution speeds. Also, the load times of the different application programs are imperceptible; for the operator they are instantaneous.
One of the fundamental features of CTL is its advanced CLIENT structure. For example, the CTL can not only act as a CLIENT to MultiBase's Database Manager, but also to any other SERVER the programmer needs to solve his specific application problems.
Because of the nature of its structure, any CTL program can be broken down into as many modules as the programmer wishes. Each one will be loaded in memory at run time (that is, at the moment that any of the module's functions are called), and will remain loaded until CTL disappears from memory.
In this way, the libraries used by the different programs will only be loaded once, at the moment of the first function call, and will be shared by all the programs that use them.
CTL is today's most advanced language. Its features make it a uniquely productive and secure tool:
1. Non Procedural Language.
Complete 3GL Set.
One of the principal features of a fourth generation language should be
its high non procedural content. However, this feature alone does not guarantee
that it can be used to design an entire application.
Any real application possesses elements that can only be designed using
procedural methods. CTL resolves this problem by including not only a rich
set of non-procedural structures and instructions but also a complete set
of procedural instructions and functions equivalent to the most advanced
third generation languages.
2. Structured and Recursive.
Apart from recursive, CTL also possesses all the features necessary to
program in a structured manner.
These two features used together allow the user to employ the most advanced
programming techniques, resulting in easy to read and highly effective
programs.
3. Object Programming.
The CTL language has a series of defined objects (variables, arrays, parameters,
cursors, frames and forms, amongst others) with the associated handling
instructions. This technique provides the programmer with a set of tools
to develop powerful programs with an extremely reduced number of lines
of code.
4. Embedded SQL.
CTL incorporates a "super-set" of embedded SQL that includes
all the SQL syntax. Thus, all functions executed on the database from CTL
will always be done using SQL.
The programs designed with CTL are 100% portable between UNIX, MS-DOS and
Windows, thus guaranteeing its implementation on any hardware platform.
In other 4GL's, this embedding generates impedance mismatch problems caused
by the syntax differences, redundant instructions, data type inconsistencies,
etc.
CTL is designed to match perfectly with SQL which completely eliminates
these problems. The data types in CTL and SQL are identical, and specific
structures and objects exist for their communication. The programmer can
not appreciate any difference between the two languages: it is as if they
were one.
5. The interface with the
Operating System.
CTL is capable of efficiently communicating with the operating system via
a set of specific instructions and functions, and also possesses the tools
necessary to communicate with other processes, to read and write operating
system files (be they ASCII or binary) and to read and write to or from
any other device.
With CTL, the programmer can design programs that were previously impossible
for fourth generation languages.
CTL possesses a powerful program debugging tool that allows any error to be precisely located in minimal time. It includes all the necessary options yet its use is extremely simple.
Apart from the typical objects used by other languages (parameters, variables and arrays), CTL has a series of advanced objects that provide the ability to program rapidly and efficiently.
Just as there are operations and associated functions (addition, multiplication, character extraction etc.) implicitly defined in the language for numeric or alphanumeric variables, predefined operations and instructions used with CTL's advanced objects also exist.
ADD, REMOVE, QUERY, INPUT, DISPLAY, etc. are the functions that allow these types of objects to be handled, thus giving the tool enormous power.
These advanced objects are:
1. FORMS and FRAMES.
These are specialized objects for data entry. Via FORM type objects, data
entry may be directly performed on one or several database tables. With
FRAME type objects, the programmer can utilize data in a very flexible
manner.
2. STREAMS.
These are communication channels between an application developed with
CTL and the operating system. This communication can be either input
or output.
3. CURSORS.
Cursors are objects that allow results from the database SERVER (CTSQL)
to be handled from CTL.
4. MENUS.
The objects that allow the definition of three menu types; LOTUS, PULLDOWN
and POP-UP are MENUS.
CTL enjoys more than 70 predefined functions and magnificent execution speed. These functions are classified in the following groups:
CTL has a set of more than 100 instructions which are classified in the following groups:
The objects handled by the CTL, together with the instruction set it contains, provide the programmer with a highly advanced user interface.
Efficient and, for the user, highly spectacular applications are obtained in exchange for a minimum programming cost.
The programs designed with CTL are 100% portable between UNIX, MS-DOS and Windows.
CTL is the only 4th Generation Language that guarantees the generation of unique source code that may be ported to any hardware platform.