Abbreviation | DDC |
---|---|
Successor | DDC International A/S, DDC-I |
Formation | September 1979 |
Dissolved | 1989 |
Type | Research and development centre |
Location | |
Services | Computer science |
Managing director | Leif Rystrøm |
Scientific leader | Dines Bjørner |
Manager, Ada projects | Ole N. Oest |
Budget (1984) | DKK 13 million |
Staff (1984) | 40 |
Dansk Datamatik Center (DDC) was a Danish software research and development centre that existed from 1979 to 1989. Its main purpose was to demonstrate the value of using modern techniques, especially those involving formal methods, in software design and development.
Three major projects dominated much of the centre's existence. The first concerned the formal specification and compilation of the CHILL programming language for use in telecommunication switches. The second involved the formal specification and compilation of the Ada programming language. Both the Ada and CHILL efforts made use of formal methods. [1] In particular, DDC worked with Meta-IV, an early version of the specification language of the Vienna Development Method (VDM) formal method for the development of computer-based systems. As founded by Dines Bjørner, this represented the "Danish School" of VDM. [2] This use of VDM led in 1984 to the DDC Ada compiler becoming the first European Ada compiler to be validated by the United States Department of Defense. [3] The third major project was dedicated towards creation of a new formal method, RAISE.
The success of the Ada compiler system would lead to creation of the commercial company DDC International A/S (DDC-I, Inc. in the US) in 1985, which would develop, productise, and market it both directly to customers and to other companies which would use it as the basis for their own Ada compiler products.
In spring 1979, Christian Gram, a computer scientist at the Technical University of Denmark (DTU)—located in Kongens Lyngby, north of Copenhagen—suggested to his colleague Dines Bjørner the idea of building an advanced software institute. [4] Looking at the software crisis of the time, they felt that computer science had created foundational and theoretical approaches that if applied could make software development a more professional process and permit the development of large software systems on schedule and with quality. [5]
They approached the Akademiet for de Tekniske Videnskaber (ATV, the Danish Academy for Technical Sciences) with this idea, and in September 1979, Dansk Datamatik Center was formed as an ATV institute for advanced software development. [6] (It was also referred to as the Danish Datamatics Centre in some early documents. [7] ) Ten large producers or users of information technology in Denmark became paying members of the new entity: Christian Rovsing , Crone & Koch, the Danish Defence Research Establishment, Datacentralen af 1959 , Jydsk Telefon , Kommunedata, Regnecentralen af 1979, Sparekassernes Datacenter, Teleteknisk Forskningslaboratorium (TFL), and ØK Data, with each member paying DKK 100,000 per year. [6]
Bjørner became the scientific leader of the centre. [8] The managing director of DDC was Leif Rystrøm. [9] [10] When it reached its greatest size around 1984, [11] some 30–35 professional employees worked at DDC, [12] with about 40 employees in total. [13] By 1984, DDC had a budget of DKK 13 million, a substantial increase from its initial budget of DKK 1 million. [11] Many of the engineers hired came from DTU and Copenhagen University. [9] In the beginning the centre was housed in a building on the DTU campus, [7] but then it became located in a converted textile mill along the Mølleåen, close to Lyngby centre. [14]
The cube-inspired red logo of DDC was designed by Ole Friis, who in 1984 won the IG Prize from the Danish Design Centre for it. [15]
During 1978, Bjørner became interested in creating a formal definition, using denotational semantics, of the CHILL programming language then under development. [16] Work on the formal definition of CHILL began that year based upon the request of Teleteknisk Forskningslaboratorium, assigned to a group under the Comité Consultatif International Téléphonique et Télégraphique (CCITT) and conducted at DTU, [17] with some eighteen students working on the effort. [18] Once DDC was established, the formal definition was completed there in 1980 and 1981. [17] [19] Opinions on the value of the effort differ: Bjørner has stated it discovered a definitional issue that led to the simplification of the language, while Remi Bourgonjon of Philips, the convener of the Implementors' Forum organized by the CCITT, thought the formal definition was too complicated and came too late to benefit CHILL compiler designers. [20]
At the same time, a CHILL compiler was developed, again starting before DDC but completed by it and TFL. [17] It was developed using formal methods. The two organisations made the compiler publicly available and it would have an important role in education concerning the CHILL language. [17] It was also adapted by British firm Imperial Software Technology with a new code generator and found use by GEC and others during the 1980s. [21]
A joint project that GEC and DDC carried out in the early 1980s was to investigate the incorporation of CHILL into an Ada Programming Support Environment (APSE), to support projects that used both languages . [22] DDC's part of the project used an examination of the denotational semantics of both languages and concluded that such an integration was technically feasible. [23]
DDC continued to be involved in publishing papers at CHILL conferences during the first half of the 1980s, but not after that. [24]
The advent of the U.S. Defense Department sponsorship of the Ada programming language during the 1979–80 period led to European interest in the new language as well, and the Commission of the European Communities (CEC) decided to allocate funding for a European Ada compiler and runtime system. [25] A consortium of Olivetti from Italy and DDC and Christian Rovsing from Denmark submitted a bid that in early 1981 won out over a previously favored bid from a French–German consortium; half of the funding would come from the CEC and half from Danish sources. [25] Ole N. Oest was transferred from the Danish Defence Research Establishment to DDC to manage the Ada work. [9]
DDC was responsible for developing a Portable Ada Programming System. [26] Requirements included hosting the Ada compiler on small, 16-bit minicomputers such as the Christian Rovsing CR80D and Olivetti M40, among other platforms, and being able to fit within 80 kilobytes code and 110 kilobytes data. [26] [27] As a result, the compiler was constructed of many passes, in this case six for the front end alone, with linearized trees stored in files as the representation between passes. [28]
The compiler creation process went through four steps: development of a formal specification of Ada, development of a formal specification of the compiler components; development of more detailed formal specifications of particular compiler passes; implementation of these specifications in Ada itself. [29] Among formal approaches, using the Vienna Development Method (VDM) was advantageous in this project because it was tailored for use with computer languages and compilers and because it allowed stepwise refinement of operations as well as of data representations. [30] The central goal of the process was to prove that the implementation was equivalent to the specification. [31] In cases where the static abstract syntax representation needed to have additional constraints incorporated, well-formedness criteria—another aspect of VDM—were defined. [32] The first step in the process, a formal specification for Ada, had already been started by five students at DTU in 1980 as part of their master's theses. [33]
Ada was a difficult language to implement and early attempts to build a compiler for it often resulted in disappointment or outright failure. [34] The DDC compiler was validated on a VAX/VMS system in September 1984, being the first European Ada compiler to pass, and proved a success. [35] [36] At that point about 44 person-years of development work had gone into it. [37] The defect rate and maintenance costs would prove to be significantly lower for the compiler than for the software industry average. [37]
Attention regarding DDC's use of VDM in compiler design led to interest from other computer manufacturers and sales were made of what became known as the DDC OEM Compiler Kit [38] (the name being a reference to the original equipment manufacturer business model). The compiler system offered two points for retargeting, a high-level tree-structured intermediate language and a sequence of instructions for an abstract stack machine; the latter meant shorter project times but usually not the most optimized generated code. [39] (The abstract stack-based virtual machine was also worked on by Christian Rovsing; there was also some idea of possibly implementing it in hardware or firmware. [40] ) The first such OEM sale was to Nokia, [38] for rehosting on the Nokia MPS 10. [41] The second, with a contract made in February 1984, was with Honeywell Information Systems in Boston. [36] [38] The compiler was thus rehosted and retargeted to the Honeywell DPS6 and validated in November 1984. [41]
In addition, cross compilers began to be developed, with DDC doing one from VAX/VMS to the Intel 8086, [41] beginning what would become a successful line of products. In December 1984, DDC signed a contract with Advanced Computer Techniques in New York, [10] based on a license royalty arrangement. [42] They began using the DDC front end to develop a cross-compiler for the MIL-STD-1750A architecture, [41] which would become a reasonably successful product with a number of customers. [43]
Success of the Ada project led to a separate company being formed in 1985, called DDC International A/S, with the purpose of commercializing the Ada compiler system; [6] Oest was named the managing director of the company. [44] A year later a US-based subsidiary of that company, DDC-I, Inc., was formed in the state of Arizona. [45]
Concurrent with the compiler work, there was a push on various fronts to provide a formal definition of Ada, with several different approaches and metalanguages tried. [46] Some Europeans argued that such a task was critical and that it was the only basis upon which an ISO standard for the language should be published. [46] The CEC sponsored this work and the contract was won by DDC in partnership with two Italian research institutes, the Istituto di Elaborazione dell’Informazione (IEI) in Pisa and the Consorzio per la Ricerca e le Applicazioni di Informatica (CRAI) in Genoa, with work beginning in 1984. [38] Additional consulting on the project was provided by staff at the University of Genoa, the University of Pisa, and at DTU. [47] The work built up the previous formal definitions that had been done at DTU and by DDC at the beginning of its Ada compiler project, but further work was needed the define the entire language and Meta-IV had to be extended in places or alternate approaches taken. [48] This effort culminated in the 1987 publication of the full formal definition of Ada, encompassing three separate publications and eight volumes in total. [49] While this effort did lead to a better understanding of the language and a number of clarifications to it being made, in the end the ultimate definition of the language remained the natural language one in the Ada Language Reference Manual. [46]
The use of VDM in the CHILL and Ada projects revealed the need for improvements in formal specification techniques, and in 1983 DDC conducted a Formal Methods Appraisal study, producing a number of requirements that a formal specification language should embody. [50]
Following that DDC was awarded a CEC contract to develop a successor to VDM, which was called RAISE (Rigorous Approach to Industrial Software Engineering). [50] This was done in consortium with STC Technology of Great Britain, which helped in the creation of the new technology, and with Nordisk Brown Boveri of Denmark and International Computers Limited of Britain, which exercised it in industrial settings. [51] [52] The project involved some 120 person-years of effort and sought to create a wide-spectrum language intended to handle every level from the initial, high-level abstract one down to one level above programming. [52] It sought to remedy VDM's weaknesses with respect to modularity, concurrency, and lack of tools, [53] and it also sought to unify approaches taken in the likes of Z notation, CSP, Larch, and OBJ. [50]
Besides the RAISE Specification language, the project also produced a description of best practices for the RAISE Method, [54] and a RAISE toolset. [54]
In 1981 DDC, in conjunction with some of its members, conducted a study of the many office automation initiatives and products then available and published a taxonomy and terminology guide that analysed the domain. They then specified a generic office automation system using both VDM and informal language. [55]
Later during 1983–1987, DDC worked as a subcontractor to member ØK Data on the Functional Analysis of Office Requirements (FAOR) project under ESPRIT. [55]
DDC also gave courses and seminars in various software development topics, and starting in 1987, initiated a Danish-language quarterly publication Cubus which discussed various technical and scientific topics in an effort to engage in technology transfer. [56]
During the centre's existence, some of the constituent members lost interest in its work, with no need for the CHILL or Ada compilers and the RAISE work too ambitious for their use. [13] General acceptance of Ada as a language underperformed expectations and Ada product sales by DDC-I did not provide sufficient profits to allow money to flow to DDC. [13] With sustained funding becoming a problem, in 1989 Dansk Datamatik Center was closed down. [6]
Work on the Ada products was carried on by DDC-I, where it was used in many high-visibility aerospace and similar projects. [38] The best-known of these was the Airplane Information Management System flight software for the Boeing 777 airliner. [57] Subsequent developers of the DDC-I Ada compiler were often not as well versed in formal methods as the original developers. [37] The Ada products would still be generating revenue for DDC-I into the 2010s. [38]
DDC's work and staff on RAISE were transferred to Computer Resources International (CRI) in 1988. [52] They used it as the basis for the European ESPRIT II LaCoS project in the 1990s. [6] The RAISE effort was subsequently sold to Terma A/S, who use it as part of work for the European Space Agency and various defense industry projects. [13]
DDC had relatively little involvement with the Nordic software world, because it relied on European Union-based partners and funding and Denmark was the only Nordic country in the EU at the time. [6] Nor did the Danish financial sector ever show an interest in DDC's work. [6] In looking back, the founders of the centre have stated that, "Where DDC failed was to [convince] major Danish companies of the benefits of using reliable software development based on formal methods. (But, DDC did not try very much.)" [13] DDC researchers believed that their work was still beneficial in making Danish technology firms aware of modern software development approaches and in populating those firms with as many as a hundred software designers and developers who had worked at DDC, and that in any case, "DDC completed a large number of projects with better performance and higher product quality than was common in the 1980s." [13] In a 2014 survey of forty years of formal methods efforts, Bjørner and Klaus Havelund lamented that adoption of formal methods has not become widespread in the software industry and referred to the DDC Ada compiler as an unsung success story of the value of such use. [37]
Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has built-in language support for design by contract (DbC), extremely strong typing, explicit concurrency, tasks, synchronous message passing, protected objects, and non-determinism. Ada improves code safety and maintainability by using the compiler to find errors in favor of runtime errors. Ada is an international technical standard, jointly defined by the International Organization for Standardization (ISO), and the International Electrotechnical Commission (IEC). As of May 2023, the standard, called Ada 2022 informally, is ISO/IEC 8652:2023.
In computing, a compiler is a computer program that translates computer code written in one programming language into another language. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language to create an executable program.
The Z notation is a formal specification language used for describing and modelling computing systems. It is targeted at the clear specification of computer programs and computer-based systems in general.
Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software.
The Vienna Development Method (VDM) is one of the longest-established formal methods for the development of computer-based systems. Originating in work done at the IBM Laboratory Vienna in the 1970s, it has grown to include a group of techniques and tools based on a formal specification language—the VDM Specification Language (VDM-SL). It has an extended form, VDM++, which supports the modeling of object-oriented and concurrent systems. Support for VDM includes commercial and academic tools for analyzing models, including support for testing and proving properties of models and generating program code from validated VDM models. There is a history of industrial usage of VDM and its tools and a growing body of research in the formalism has led to notable contributions to the engineering of critical systems, compilers, concurrent systems and in logic for computer science.
In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design.
DDC may stand for:
JOVIAL is a high-level programming language based on ALGOL 58, specialized for developing embedded systems. It was a major system programming language through the 1960s and 1970s.
The B method is a method of software development based on B, a tool-supported formal method based on an abstract machine notation, used in the development of computer software.
In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools. These specifications are formal in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information.
Clifford "Cliff" B. Jones is a British computer scientist, specializing in research into formal methods. He undertook a late DPhil at the Oxford University Computing Laboratory under Tony Hoare, awarded in 1981. Jones' thesis proposed an extension to Hoare logic for handling concurrent programs, rely/guarantee.
Professor Dines Bjørner is a Danish computer scientist.
The Meta-IV was an early version of the specification language of the Vienna Development Method formal method for the development of computer-based systems.
Professor Martin C. Henson FBCS FRSA is an English computer scientist based at the University of Essex. He is dean for international affairs and is affiliated to the School of Computer Science & Electronic Engineering. Henson was head of the department of computer science from 2000 to 2006.
DDC-I, Inc. is a privately held company providing software development of real-time operating systems, software development tools, and software services for safety-critical embedded applications, headquartered in Phoenix, Arizona. It was first created in 1985 as the Danish firm DDC International A/S, a commercial outgrowth of Dansk Datamatik Center, a Danish software research and development organization of the 1980s. The American subsidiary was created in 1986. For many years, the firm specialized in language compilers for the programming language Ada.
Advanced Computer Techniques (ACT) was a computer software company most active from the early 1960s through the early 1990s that made software products, especially language compilers and related tools. It also engaged in information technology consulting, hosted service bureaus, and provided applications and services for behavioral health providers. ACT had two subsidiaries of note, InterACT and Creative Socio-Medics.
Tartan Laboratories, Inc., later renamed Tartan, Inc., was an American software company founded in 1981 and based in Pittsburgh, Pennsylvania, that specialized in programming language compilers, especially for the language Ada. It was based on work initially done at Carnegie Mellon University and gradually shifted from a focus on research and contract work to being more product-oriented. It was sold to Texas Instruments in 1996. Part of it was later acquired by DDC-I in 1998.
IBM Laboratory Vienna was an IBM research laboratory based in Vienna, Austria.
Peter Lucas was an Austrian computer scientist and university professor.