Natural artificial languages: low level processes
International Journal of Man-Machine Studies
The visual display of quantitative information
The visual display of quantitative information
The C programming language
Design of the S system for data analysis
Communications of the ACM
Communications of the ACM
Literate Programming
TEX and METAFONT: New directions in typesetting
TEX and METAFONT: New directions in typesetting
The case against user interface consistency
Communications of the ACM
Hi-index | 0.02 |
The high cost of software is not due to the difficulty of coding, but in recoding and redocumenting software. This can be better understood when one considers how many expressions of the same ideas must be constructed and coordinated. Program code and comments, user interface and on-line help, and a variety of off-line documents, all must be consistent. A solution to the coordination problem is presented in this paper. Multilingual programming is a method of developing software that uses a database of information to generate multiple target languages like commented program code, user interface languages, and text formatting languages.The method begins with an analysis of a domain to determine key attributes. These are used to describe particular problems in the domain and the description is stored in a database. Attributes in the database are inserted in templates of idioms in a variety of target languages to generate solutions to the original problem. Because each of these solutions is based on the same source database of information, the solutions (documents, programs, etc.) are consistent. If the information changes, the change is made in the database and propagated to all solutions. Conversely, if the form of a solution must change, then only the templates change. In sum, the method saves much effort for updates of documents and programs that must be coordinated by designing for redesign.