What are the attributes of programming languages in compiler design?

There are various attributes of programming language in compiler design which are as follows −

  • Simplicity and Clarity − Few languages such as Basic, Algol, and Pascal in the past were purposely created to simplify clarify of expression. Basic, for example, had a very small instruction set. Algol 60 had a publication language that supports a standard structure for typesetting programs that occurred in published journal articles. Pascal was specially created as a teaching language, with features that simplified the teaching and learning of structured programming principles.

  • Readability − An essential principle for determining a programming language is the ease with which the programs can be read and learn. Therefore, a good programming language must consider readability in the context of the problem domain.

  • Writability − Writability is a part of how easily a language can be used to generate a program for the chosen issue domain. Some language features that influence readability also influence writability.

  • Portability − A language is portable if its programs can be compiled and run on multiple machines without the source program have to be re-written. This concept of portability or transportability is one of the most essential elements for some programming projects. Ada, FORTRAN, C, and Pascal all have standardized definitions enabling portable applications to be executed.

  • Binding − A language component is bound to a property at the time that property is represented for it. For example, a variable is bound to its type at the time it is declared, as in the declaration

int x;

  • Orthogonality − Orthogonality defines the attribute of being able to combine several characteristics of a language in all possible combinations. For example, consider a language supports for an expression that can create a value, and it also supports a conditional statement that computes an expression to receive a true or false value.

  • Cost of use − Cost is exactly a major component in the computation of any programming language, but the cost defines some different things such as cost of program execution, cost of program translation, cost of program creation, testing, use, and cost of program maintenance.

  • Reliability of programs − Languages that confine aliasing and memory disclose, provide strong typing have clear syntax and semantics, and offer program verification and validation have the reliability edge.

  • Abstraction − Abstraction is an important element of the program design process. Programmers give multiple time-building abstractions, both data abstractions, and procedural abstractions, to apply the reuse of code and prevent recreating it. A good programming language provides data and procedural abstraction so that it is a preferred design tool in the programming phase.

  • Programming environment − The technical architecture of a programming language is only one method of moving its service. The presence of a suitable programming environment can create a technically unsteady language simpler to work with than a powerful language that has little external support.