Numiton

NOTE: To use the advanced features of this site you need javascript turned on.

Home Knowledge Base Runtime Support Runtime Structure Overview

Runtime Structure Overview

The binary form of a computer program is generated from source code written in one or more programming languages. The source code relies on the services of a standard program library and possibly on some other program libraries.

The structure of the executable part of a computer program is depicted below:

 

 

The source code written by the developers is the actual application. It contains the business, presentation and data access logic. The application can be written using several programming languages, however this is not a recommended programming practice because it complicates the development environment, testing and maintenance.

In order to interact with the underlying platform and to externalize some well-defined, repetitive behavior, the source code makes use of program libraries that form the application runtime.

Each programming language has a standard runtime library. This library usually provides two types of services:

  • elementary operations, written in the same programming language;

  • system level services (memory operations, file handling, graphics, system GUI widgets etc.), written in one or more programming languages, usually lower-level ones.

The support for elementary operations consists in routines that work on the standard data types (operations on strings, data conversion constructions etc.), definitions of and operations on various data structures (e.g. lists, trees, hash tables) and so on.

In order to access the services of the operating environment, the standard program library has to make use of other programming languages – first-class citizens of the operating system. These are generally lower-level languages (assembly, procedural).

Apart from the standard library, software applications may use other program libraries, either developed in-house or by third-parties. Software development teams and companies tend to develop their own libraries, focused on the business rules of the domain. For each programming language, there is also a set of widely-used program libraries that come from third-parties. Libraries for logging, messaging, graphic widgets are such examples. Most legacy applications tend to use commercial third-party libraries, simply because concepts such as open-source or public domain software are relatively new.