We call computer language a formal language not necessarily Turing-complete used when designing, implementing, or operating an information system. The term is however used in some contexts in the more restrictive sense of programming language.
Computer languages and the information system[modifier | modifier le code]
Computer languages intervene at different times in the life cycle of a computer information system (SII), see formal information systems SI (for example: description of a non-computerized business procedure in UML).
Some are used during the specification phases. UML and the graphic formalisms defined in Merise are part of these languages. They make it possible to define data and processing models. Even though these languages are primarily intended for humans and not for machines, they are classified as computer languages because they are part of the system development process. In addition, some software makes it possible to produce source code, expressed in a programming language, from design languages. Formal methods (mathematical languages) and algorithmic languages are also used to design treatments. The implementation phase follows the design phase. During this stage, are mainly used:
In addition to the design and production of IS, many other languages are used by IS and their users.
Thus, programming languages are also used for other tasks besides implementation. For example, scripts allow the maintenance of the IS, or the writing of Web pages with dynamic content. Other programming languages can be used for writing graphical interfaces (like XUL), programming numerical controls or programmable automatons, making statistics (with R for example), and many other purposes.
Like programming languages, query languages are also widely used outside of IS development.
The document definition languages, used to document the IS during its design and development, are also handled by all types of users. Thus, HTML makes it possible to write Web pages; XML allows content structuring; LaTeX, widely used by scientists and academics, is capable of producing many types of documents… It should be noted that these languages are often markup languages.
Some languages are more specialized. For example :
- dedicated languages (or DSL) which are created specifically for a specific domain (as opposed to general purpose programming languages):
- graphics-related languages, such as POV-Ray,
- music notation languages like LilyPond;
- metalanguages which allow the description of other languages, such as the BNF notation.