Dansk Datamatik Center

Summary

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.

Dansk Datamatik Center
AbbreviationDDC
SuccessorDDC International A/S, DDC-I
FormationSeptember 1979 (1979-09)
Dissolved1989 (1989)
TypeResearch and development centre
Location
ServicesComputer 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

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.

Origins edit

 
DDC's origins were in the Technical University of Denmark.

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 [da], Crone & Koch, the Danish Defence Research Establishment, Datacentralen af 1959 [da], Jydsk Telefon [da], Kommunedata, Regnecentralen af 1979, Sparekassernes Datacenter, Teleteknisk Forskningslaboratorium [da] (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 [da] from the Danish Design Centre for it.[15]

CHILL projects edit

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]

Ada projects edit

 
DDC subsequently located itself in the Dansk Gardin & Textil Fabrik [da] converted textile mill along the Mølleåen in Lyngby.[14]

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]

RAISE projects edit

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]

Other projects edit

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]

Conclusion and legacy edit

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]

Bibliography edit

  • Bjørner, Dines; Oest, Ole N., eds. (1980). Lecture Notes in Computer Science 98: Towards a Formal Description of Ada. Springer-Verlag.
  • Bjørner, Dines; Gram, Christian; Oest, Ole N.; Rystrøm, Leif (2011). "Dansk Datamatik Center". In Impagliazzo, John; Lundin, Per; Wangler, Benkt (eds.). History of Nordic Computing 3: IFIP Advances in Information and Communication Technology. Springer. pp. 350–359. A slightly expanded version of this chapter is available online at https://www.researchgate.net/publication/221271386_Dansk_Datamatik_Center. A further expanded version is part of Bjørner's online memoir at http://www.imm.dtu.dk/~dibj/trivia/node5.html. A slides presentation by Gram based on the paper is available online as Why Dansk Datamatik Center?
  • Bjørner, Dines; Havelund, Klaus. "40 Years of Formal Methods: Some Obstacles and Some Possibilities?". FM 2014: Formal Methods: 19th International Symposium, Singapore, May 12–16, 2014. Proceedings. Springer. pp. 42–61.
  • Bundgaard, Jørgen (May 1985). "The development of an Ada front end for small computers". SIGAda '85: Proceedings of the 1985 annual ACM SIGAda international conference on Ada. Association for Computing Machinery. pp. 321–328.
  • Clemmensen, Geert B.; Oest, Ole N. (March 1984). "Formal specification and development of an Ada compiler – a VDM case study". ICSE '84 Proceedings of the 7th international conference on Software engineering. IEEE Press. pp. 430–440.
  • Clemmensen, Geert B. (January 1986). "Retargeting and rehosting the DDC Ada compiler system: A case study – the Honeywell DPS 6". ACM SIGAda Ada Letters. 6 (1): 22–28. doi:10.1145/382256.382794. S2CID 16337448.
  • Fitzgerald, John S.; Larsen, Peter Gorm; Verhoef, Marcel (2009). "Vienna Development Method". In Wah, Benjamin W. (ed.). Wiley Encyclopedia of Computer Science and Engineering. Wiley. pp. 2971–2982.
  • George, Chris. "The RAISE Specification Language: A Tutorial". VDM '91: Formal Software Development Methods: 4th International Symposium of VDM Europe, Noordwijkerhout, The Netherlands, October 1991, Proceedings. Vol. 2. Springer-Verlag. pp. 238–319.
  • Ibsen, Leif (January 1984). "A portable virtual machine for Ada". Software: Practice and Experience. 14 (1): 17–29. doi:10.1002/spe.4380140104. S2CID 206508565.
  • Meiling, Erik; Palm, Steen U. (January–February 1984). "A comparative study of CHILL and Ada on the basis of denotational descriptions". ACM SIGAda Ada Letters. 3 (4): 78–91. doi:10.1145/989954.989959. S2CID 17168261.
  • O'Regan, Gerard (2006). Mathematical Approaches to Software Quality. London: Springer.
  • Paulsen, Gard (2011). Betwixt and between: Software in telecommunications and the programming language Chill, 1974–1999 (Ph.D.). Oslo: BI Norwegian Business School.
  • Pedersen, Jan Storbank. "VDM in Three Generations of Ada Formal Descriptions". VDM '87: VDM-A Formal Method at Work: VDM-Europe Symposium 1987, Brussels, Belgium, March 1987, Proceedings. Springer-Verlag. pp. 33–48.
  • Prehn, Søren. "From VDM to RAISE". VDM '87: VDM-A Formal Method at Work: VDM-Europe Symposium 1987, Brussels, Belgium, March 1987, Proceedings. Springer-Verlag. pp. 141–150.
  • "An Interview with Oscar Schachter" (Interview). Interviewed by Thomas Haigh. Charles Babbage Institute, University of Minnesota. 7 May 2004.WorldCat entry
  • Whitaker, William A. (1996). "Ada—The Project: The DoD High Order Language Working Group". In Bergin, Thomas J.; Gibson, Richard G. (eds.). History of Programming Languages—II. Addison-Wesley Professional. pp. 173–232.

References edit

  1. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 351–352.
  2. ^ O'Regan, Mathematical Approaches to Software Quality, pp. 92–93.
  3. ^ Fitzgerald, Larsen, and Verhoef, "Vienna Development Method".
  4. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", p. 350.
  5. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 350–351.
  6. ^ a b c d e f g Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", p. 351.
  7. ^ a b Bjørner and Oest, Towards a Formal Description of Ada, p. xiii–xiv.
  8. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", expanded version, p. 2.
  9. ^ a b c Bjørner et al., "Dansk Datamatik Center", further expanded version.
  10. ^ a b Ada TM Marketing and Distribution Agreement. Dansk Datamatik Center, Advanced Computer Techniques. 20 December 1984.
  11. ^ a b Gram et al., "Why Dansk Datamatik Center?", presentation version, slide 3.
  12. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", expanded version, p. 3.
  13. ^ a b c d e f Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 357–358.
  14. ^ a b Clemmensen, "Retargeting and rehosting the DDC Ada compiler system", author affiliation gives address of Dansk Datamatik Center as Lundtoftevej 1C, DK-2800 Lyngby; for history and location of that structure, see "Julekort 2017" (in Danish). Emcon. Retrieved January 19, 2021.
  15. ^ "Æresbevisninger" (in Danish). friisgrafik.dk. Archived from the original on 29 October 2015. Retrieved 5 June 2015.
  16. ^ Paulsen, Betwixt and between, pp. 137–138.
  17. ^ a b c d Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", p. 352.
  18. ^ Bjørner and Oest, Towards a Formal Description of Ada, p. vii.
  19. ^ Paulsen, Betwixt and between, p. 139.
  20. ^ Paulsen, Betwixt and between, pp. 139–140.
  21. ^ Paulsen, Betwixt and between, pp. 216–217.
  22. ^ Paulsen, Betwixt and between, pp. 180, 216.
  23. ^ Meiling and Palm, "A comparative study of CHILL and Ada on the basis of denotational descriptions", pp. 78, 88.
  24. ^ Paulsen, Betwixt and between, p. 199.
  25. ^ a b Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", p. 353.
  26. ^ a b Clemmensen and Oest, "Formal specification and development of an Ada compiler", p. 431.
  27. ^ Bundgaard, "The development of an Ada front end for small computers", p. 321.
  28. ^ Bundgaard, "The development of an Ada front end for small computers", pp. 322, 325.
  29. ^ Clemmensen and Oest, "Formal specification and development of an Ada compiler", p. 432.
  30. ^ Clemmensen and Oest, "Formal specification and development of an Ada compiler", p. 430.
  31. ^ Clemmensen and Oest, "Formal specification and development of an Ada compiler", pp. 430–431.
  32. ^ Clemmensen and Oest, "Formal specification and development of an Ada compiler", pp. 432, 440n.
  33. ^ Bjørner and Oest, Towards a Formal Description of Ada, p. vi.
  34. ^ Whitaker, "Ada—The Project", pp. 217–218.
  35. ^ Bundgaard, "The development of an Ada front end for small computers", p. 322.
  36. ^ a b Clemmensen, "Retargeting and rehosting the DDC Ada compiler system", p. 22.
  37. ^ a b c d Bjørner and Havelund, "40 Years of Formal Methods", pp. 48–49.
  38. ^ a b c d e f Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", p. 354.
  39. ^ Clemmensen, "Retargeting and rehosting the DDC Ada compiler system", pp. 24–25.
  40. ^ Ibsen, "A portable virtual machine for Ada", pp. 17, 27.
  41. ^ a b c d Bundgaard, "The development of an Ada front end for small computers", p. 328.
  42. ^ Haigh, An Interview with Oscar Schachter, p. 22.
  43. ^ Haigh, An Interview with Oscar Schachter, pp. 17, 22.
  44. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", expanded version, p. 11.
  45. ^ "DDC-I, Inc". OpenCorporates. Retrieved 20 September 2015.
  46. ^ a b c Whitaker, "Ada—The Project", pp. 215–216.
  47. ^ Pedersen, "VDM in Three Generations of Ada Formal Descriptions", p. 34.
  48. ^ Pedersen, "VDM in Three Generations of Ada Formal Descriptions", pp. 44–46.
  49. ^ Whitaker, "Ada—The Project", pp. 226–228.
  50. ^ a b c Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 355.
  51. ^ Prehn, "From VDM to RAISE", pp. 144–145.
  52. ^ a b c George, "The RAISE Specification Language", p. 238.
  53. ^ Prehn, "From VDM to RAISE", p. 141.
  54. ^ a b George, "The RAISE Specification Language", p. 239.
  55. ^ a b Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 355–356.
  56. ^ Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 356–357.
  57. ^ Wolfe, Alexander (October 2004). "There's Still Some Life Left in Ada". ACM Queue. Also at http://delivery.acm.org/10.1145/1040000/1035608/p28-wolfe.pdf[permanent dead link]