DDC-I

From Infogalactic: the planetary knowledge core
(Redirected from Deos)
Jump to: navigation, search
DDC-I, Inc.
Privately held
Industry safety-critical embedded software
Founded 1985; 39 years ago (1985) in Kongens Lyngby, Denmark
Headquarters Phoenix, Arizona
Key people
Bob Morris, President/CEO
Dr. Ole N.Oest, founder/CTO
Products Real-time operating systems: Deos, HeartOS
Compiler systems: Ada
Slogan Safety Critical Software Solutions for Mission Critical Systems
Website www.ddci.com

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 (also known as DDC-I 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. In 2003, the Danish office was closed and all operations moved to the Phoenix location.

Origins

The origins of DDC International A/S lay in Dansk Datamatik Center, a Danish software research and development organization that was formed in 1979 to demonstrate the value of using modern techniques, especially those involving formal methods, in software design and development. Among its several projects was the creation of a compiler system for the programming language Ada. Ada was a difficult language to implement and early compiler projects for it often proved disappointments.[1] But the DDC compiler design was sound and it first passed the United States Department of Defense-sponsored Ada Compiler Validation Capability (ACVC) tests on a VAX/VMS system in September 1984.[2] As such, it was the first European Ada compiler to meet this standard.[3][4]

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 product.[5] Like its originator, it was based in Lyngby, Denmark. Ole N. Oest was named the managing director of DDC International.[6] In 1986, DDC-I, Inc. was founded as the American subsidiary company.[7] Located in Phoenix, Arizona, it focused on sales, customer support, and engineering consulting activities in the United States.[8]

Ada compiler

DDC International A/S was housed in a converted textile mill in Lyngby, Denmark, here seen in 1990.

DDC-I established a business in selling the Ada compiler system product, named DACS, directly to firms, both as software to develop projects in Ada with, and as source code to computer makers and others, who would rehost or retarget it to other processors and operating systems.

The first business sold both native compilers and cross compilers, with the latter more common since Ada was primarily used in the embedded systems realm. One of the first cross compilers that DDC-I developed was from VAX/VMS to the Intel 8086 and Intel 80286; the effort was already underway by early 1985.[9] It began as a joint venture with the Italian defense electronics company Selenia that would target both their MARA-860 and MARA-286 multi-microprocessor computers, based on the 8086 and 80286 architectures, and generic embedded and OS-hosting 8086 and 80286 systems.[10] This work was the start of what would become the largest-selling product line for the firm. DDC-I developed a reputation for quality Ada cross compilers and runtime systems for Intel 80x86 processors.[8]

The second business made use of what became termed the DDC OEM Compiler Kit,[11] who could be using the Ada front end for compilers to other hosts or targets or for other tools such as VLSI. In a September 1985 meeting in Lund, Sweden, several of the OEM Kit customers formed the DDC Ada Compiler Retargeter's Group.[12] It held at least three meetings over the course of 1985 and 1986. The early OEM customers included the University of Lund, Defence Materiel Administration, and Ericsson Radio Systems in Sweden; Softplan and Nokia Information Systems in Finland; Selenia and Olivetti in Italy; ICL Defence Systems and STL Ltd in the United Kingdom; Aitech Software Engineering in Israel; and Advanced Computer Techniques, Rockwell Collins, Control Data Corporation, and General Systems Group in the United States.[13]

Several Ada compiler developers at DDC International in Lyngby in 1990.

Later developers were often less well versed in formal methods and did not use them in their work on the compiler.[14] This was even more so in the case of companies retargeting the compiler, many of which were unfamiliar with the Ada language.[15][16]

DDC-I was in the same market as several other Ada compiler firms, including Alsys, TeleSoft, Verdix, Tartan Laboratories, and TLD Systems.[4] (DDC-I would go on to stay in business longer than any of these others.[14]) As with other Ada compiler vendors, much of the time of DDC-I engineers was spent in conforming to the large, difficult Ada Compiler Validation Capability (ACVC) standardized language and runtime test suite.[17][18]

Starting in 1988 and continuing for several years, DDC-I consultants collaborated with Honeywell Air Transport Systems to retarget and optimize the DDC-I Ada compiler to the AMD 29050 processor.[19][20] This DDC-I-based cross compiler system was used to develop the primary flight software for the Boeing 777 airliner.[8][20] This software, named the Airplane Information Management System, would become arguably the best-known of any Ada-in-use project, civilian or military.[21] Some 550 developers at Honeywell worked on the flight system and it was publicized as a major Ada success story.[20]

DDC-I's development office in New York was on the 31st floor of this building.

In October 1991, it was announced that DDC-I had acquired the Ada and JOVIAL language embedded systems business of InterACT, which had become a venture of Advanced Computer Techniques.[22] This wholly owned New York-based entity was briefly named DDC-Inter[22] before being subsumed into DDC-I proper. This brought Ada cross compilers for the MIL-STD-1750A and MIPS R3000 processors, and JOVIAL language cross compilers for the MIL-STD-1750A and Zilog Z8002 into the product line. The MIPS product was one which DDC-I emphasised, with engineering efforts that included automatic recognition of certain tasking optimizations,[23] and work in the U.S. Air Force-sponsored Common Ada Runtime System (CARTS) project towards providing standard interfaces into Ada runtime environments.[24][25]

At the end of 1993, the New York office was closed, and its work transferred to the Phoenix office.

By the early 1990s, DDC-I offered Ada native compilers for VAX/VMS, Sun-3 and SPARC under SunOS, and Intel 80386 under UNIX System V and OS/2, and offered cross compilers for the Motorola 680x0 and Intel i860 in addition to the abovementioned targets.[26][27]

Ada 95 and explorations of other product lines

The DDC International office in Lyngby showed Danish design elements, here seen in 1992.

In the early 1990s, DDC-I worked on redesigning the compiler system for the wide-ranging Ada 95 revision of the language standard. They used a new object-oriented programming design in some places but still used formal methods in others, this time using for support of those methods the RAISE toolset that had come out of work Dansk Datamatik Center had done.[28] The work was done under sponsorship of the European Community-based Open Microprocessor Initiative's Global Language and Uniform Environment -project (OMI/GLUE), where DDC-I's role was to create a compiler targeting the Architecture Neutral Distribution Format (ANDF) intermediate form, with the intention of bringing Ada 95 to more platforms quickly.[28][29] As part of this work, DDC-I collaborated with the Defence Evaluation and Research Agency in expanding some of ANDF's abilities to express semantics of Ada and the fast-growing programming language C++.[30] Work in Ada-specific areas, such as bounds-checking elimination, was done to get optimal run-time performance.[31]

The Ada software environment was originally thought to be a promising market.[32] But the Ada compiler business proved to be a difficult one to be in.[33] During this time, 1987–97, a U.S. government mandate for Ada use was in effect, albeit with some waivers granted.[34] Many of the advantages of the language for general-purpose programming were not seen as such by the general software engineering community or by educators.[35] The sales situation was challenging, with periodic small layoffs. Despite consolidation among other Ada tool providers, DDC-I remained an independent company.[36]

In any case, DDC-I was an enthusiastic advocate of the Ada language, for use in the company[37] and externally. A paper one of its engineers published in 1993 assessed Ada 95's object-oriented features favorably to those of C++ and attracted some attention.[38]

A view of palm trees from the DDC-I office in Phoenix, 1993.

At the same time, the firm attempted to expand and augment its product line. The RAISE toolset was available, as was Cedar, a design tool for real-time systems. Also offered was Beologic, a tool to develop and run state/event parts of applications, that had been licensed from Bang & Olufsen and integrated with the Ada compiler system.[39] The biggest effort was in the direction of C++. DDC-I began offering 1st Object Exec, a C++-based real-time operating system intended for direct, object-level support of embedded applications.[40] Despite considerable efforts during 1993–94, 1st Object Exec failed to gain traction in the marketplace.

The one area where Ada did gain a solid foothold was in real-time, high-reliability, high-integrity, safety-critical applications such as aerospace.[41][42][43] Based on its experience with Honeywell and other customers, DDC-I acquired expertise in the mapping of Ada language and runtime features to the requirements of safety-critical certifications, in particular those for the DO-178B (Software Considerations in Airborne Systems and Equipment Certification) standard, and provided tools for that process.[44] Such applications continued even after the Ada mandate was dropped in 1997.[34] For instance, in 1997 the firm was awarded a joint contract with Sikorsky Aircraft and Boeing Defense & Space Group's Helicopters Division to develop software to be used in the Boeing/Sikorsky RAH-66 Comanche.[45]

In March 1998, DDC-I acquired from Texas Instruments the development and sales and marketing rights to the Tartan Ada compilers for the Intel i960, Motorola 680x0, and MIL-STD-1750A targets.[46]

Support for mixed language development was added in 2000 with the addition of the programming language C as part of DDC-I's mixed-language integrated development environment for SCORE (for Safety-Critical, Object-oriented, Real-time Embedded).[47] Leveraging the ANDF format, the DWARF standardized debugging format, and the OMI protocol for communicating with target board debug monitors, SCORE was able to provide a common building and debugging environment for real-time application developers.[47] Support for Embedded C++ was added to SCORE in 2003, by which time it could integrate with a variety of target board scenarios on Intel x86 and Power PC processors.[48] The C and Embedded C++ compilers for ANDF came from a licensing arrangement for the TenDRA Compiler (later DDC-I became the maintainer of those compilers). Subsequently Ada 95 support for the older 1750A and TMS320C4x processors was added to SCORE.[49]

U.S. headquarters and real-time operating systems

By April 2003 the industry move away from Ada and the declining position of the aircraft industry had taken its toll and DDC-I suffered significant financial losses. DDC-I decided to close its Denmark office in Lyngby and move all operations to Phoenix.[50]

In September 2005, the company named Bob Morris, formerly of LynuxWorks, as its President and Chief Executive Officer.[51] Oest became Chief Technology Officer.[52] In April 2006, DDC-I moved to new offices in northern Phoenix, stating that it was expanding and that it expected revenue to grow 40–50 percent over the previous year.[53]

Since 2006, the company has been contributing to the Java Expert Group for Safety Critical Java.[54] This work, which uses the Real-time specification for Java as a base and then specifies language and library subsets and coding rules for use to provide sufficient determinism, is seen by the firm's representatives as making Java possibly equal or superior to either Ada or C++ as a language for safety-critical applications.[55] The company has viewed the safety-critical Java profile as one that can help the defense industry deal with the issue of aging software and hardware applications.[56] By 2008, DDC-I was referring to Ada as a legacy language and offering semi-automated tools and professional services to help customers migrate to newer solutions.[52]

In November 2008, the company entered the embedded real-time operating system (RTOS) market with two products, Deos and HeartOS.[57][58][59] Both were based on underlying software technology originated at Honeywell International and already deployed on many commercial and military aircraft.[57] As part of the action, DDC-I hired some of the key Honeywell engineering staff who had designed Deos.[57] Other firms in the same RTOS market segment as DDC-I include LynuxWorks, Wind River Systems, SYSGO, and Express Logic.[60]

Products

  • Deos is a time and space partitioned real-time operating system (RTOS) that was first certified to DO-178B level A in 1998. Deos contains several patented architectural features including enhancements for processor utilization, binary software reuse and safe scheduling for multi-core processors. Deos users have the ability to add on optional ARINC 653 personality modules designed to fit different application needs. Deos supports the processors ARM, MIPS, PowerPC, and x86.[61][62] It was listed as one of the Hot 100 Electronic Products of 2009 by EDNmagazine.[63]
  • HeartOS is a POSIX-based hard real-time operating system, designed for small to medium embedded applications including safety-critical types. It supports ARM, PowerPC, x86[64] and other 16-bit and 32-bit processors. It is configurable without the POSIX interface layer for memory-constrained systems.
  • OpenArbor is an Eclipse-based integrated development environment for C, Embedded C++, and Ada application development. It was announced in 2007.[65]
  • SCORE is a mixed-language set of integrated tools for safety-critical, object-oriented, real-time embedded software applications, supporting Ada, C, and Embedded C++ applications for a variety of embedded architectures.[66]
  • Legacy Ada 83 and JOVIAL compiler system products also continue to be supported.[67]

Bibliography

  • Lua error in package.lua at line 80: module 'strict' not found. A slightly expanded version of this chapter is available online at http://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?
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.WorldCat entry
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

References

  1. Whitaker, "Ada—The Project", pp. 217–218.
  2. Bundgaard, "The development of an Ada front end for small computers", p. 322.
  3. Clemmensen, "Retargeting and rehosting the DDC Ada compiler system", p. 22.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", p. 351.
  6. Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", expanded version, p. 11.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 8.2 Rehmer, "The HADS Team", p. 300.
  9. Bundgaard, "The development of an Ada front end for small computers", p. 328.
  10. DDC Ada Compiler Retargeter's Group, Newsletter No 2, pp. 35–36.
  11. Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", pp. 354.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. DDC Ada Compiler Retargeter's Group, Newsletter No 1, pp. 7–8; No 2, pp. 5–7; No 3, pp. 13–15a.
  14. 14.0 14.1 Bjørner and Havelund, "40 Years of Formal Methods", p. 48.
  15. Rehmer, "The HADS Team", p. 306.
  16. Schilling, "Use of Ada in a Commercial, Small Company Environment", pp. 89–91.
  17. Rehmer, "The HADS Team", pp. 305, 306, 307.
  18. Rosen, "The Ada paradox(es)", p. 29.
  19. Rehmer, "The HADS Team", pp. 299, 302.
  20. 20.0 20.1 20.2 Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found. Also at http://delivery.acm.org/10.1145/1040000/1035608/p28-wolfe.pdf
  22. 22.0 22.1 Lua error in package.lua at line 80: module 'strict' not found.
  23. Schilling and Nielsen, "Automatic compiler recognition of monitor tasks", pp. 91, 100–102.
  24. Mancusi et al., "Real and Virtual Interrupt Support: The Mapping of a CARTS Feature to Two Different Architectures".
  25. Fergany et al., "The implementation of asynchronous entry calls on two different architectures".
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. 28.0 28.1 Lua error in package.lua at line 80: module 'strict' not found.
  29. Bundgaard, "An ANDF based Ada 95 compiler system", p. 436.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Møller, "Run-time check elimination for Ada 9X", pp. 122, 126–128.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Rosen, "The Ada paradox(es)", p. 34.
  34. 34.0 34.1 Sward, "The rise, fall and persistence of Ada", p. 71.
  35. Rosen, "The Ada paradox(es)", pp. 32–33.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Schilling, "Use of Ada in a Commercial, Small Company Environment", pp. 89, 93.
  38. Jorgensen, "A Comparison of the Object Oriented Features of Ada 9X and C++", pp. 140–141.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Rosen, "The Ada paradox(es)", pp. 33–34.
  42. Sward, "The rise, fall and persistence of Ada", p. 71.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Frost, "An Ada95 Solution for Certification of Embedded Safety Critical Applications", pp. 52–53
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. 47.0 47.1 Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Bjørner, Gram, Oest, and Rystrøm, "Dansk Datamatik Center", expanded version, p. 2.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. 52.0 52.1 Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. 57.0 57.1 57.2 Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.

External links