The hardware that supports a language has a great impact on language design. Languages, as a mean to solve a problem, are part of the overall technology that is employed. The external environment supporting the execution of a program is termed its operating or target environment.
In computing, an operating environment is an environment in which users run application software, whether by a command-line interface or a graphical user interface. An operating environment is usually not a full operating system but is a form of middle ware that rests between the OS and the application.
ii. Host Environment:
The environment in which a program is designed, coded, tested and debugged is called host environment. Host Environment may be different from the operating environment in which the program ultimately used.
A quiet host environment is important because it protects enclosures used as narration environments from outside noise. It is also the work site for monitors and frequently the work site for reviewers. The task of monitoring and reviewing requires continuous, concentrated attention to acoustical details, and noise in the host environment affects how well that task can be accomplished. The host environment should be free from airborne noise and structure-borne noise.
iii. Batch Environment:
The earliest and simplest operating environment consists of external files of data. A program that takes a set of data files as input processes the data and produces a set of output data files. This operating environment is termed as batch-processing. In batch processing, the input data are collected in batches on files and are processed in batches by the program.
Languages such as FORTRAN, COBOL, and Pascal were initially designed for batch-processing environments, although they may be used now in interactive or in an embedded-system environment. The 80-column punch card which is developed by Herman Hollerith is used in the 1890 U.S census, was the ubiquitous sign of computing in the 1960's.
In a batch processing environment, an error that terminates execution of the program is acceptable but costly because often the entire run must be repeated after the error is corrected. In this environment, no external help from the user is immediately handling or correcting the error is possible. Thus, the error and exception handling facilities of the language emphasize error/exception handling with in the program so that the program may recover from most errors and continue processing without terminating.
Batch processing environment is the lack of timing constraints on a program. The language usually provides no facilities for monitoring or directly affecting the speed at which the program executes.
iv. Interactive Environment:
In an Interactive Environment, a program interacts directly with a user at a display console during its execution, by alternately sending output to the display and receiving input from the keyboard or mouse. Word processing systems, spreadsheets, video games, database management systems are examples which is used in Interactive Environment.
The characteristics of interactive I/O are sufficiently different form ordinary file operations that most languages designed for a batch processing environment experience so difficulty in adapting to an interactive environment.
Error handling in an interactive environment is given different treatment. If bad input data are entered from a keyboard, the program may display an error message and ask for a correction from the user. Language features for handling the error within the program are of lesser importance. Unlike batch processing, termination of the program in response to an error is usually not acceptable.
Interactive programs must often utilize some notion of timing constraints. An interactive program that operates so slowly that it cannot respond to an input command in a reasonable period is often considered unusable.
v. Embedded-system Environment:
A computer system that is used to control part of a larger system such as an industrial plant, an aircraft, a machine tool, an automobile, or even your toaster is termed an Embedded Computer System.
Programs written for embedded systems often operate without an underlying operating system and without the usual environment of files and I/O device. Instead, the program must interact directly with nonstandard I/O devices through special procedures that take account of the peculiarities of each device. Access to special devices is often provided through language features that give access to particular hardware registers, memory locations, interrupt handlers, or subprograms written in assembly or other low-level languages.
Error handling in embedded systems is of particular importance. Ordinarily, each program must be prepared to handle errors internally, taking appropriate actions to recover and continue.
Embedded systems almost always operate in real time. i.e. the operation of larger system within which the computer system is embedded requires that the computer system be able to respond to inputs and produce outputs within tightly constrained time intervals.
Finally, an embedded computer system is often a distributed system composed of more than one computer. The program running on such a distributed system is usually composed of set of tasks that operate concurrently, each controlling or monitoring one part of the system.