Edison Design Group

Last updated
Edison Design Group
Company typePrivate
IndustrySoftware
Founded1988 [1]
Headquarters Scotch Plains, New Jersey
Key people
J. Stephen Adamczyk
John Spicer
Daveed Vandevoorde
ProductsCompiler front ends
Number of employees
6
Website www.edg.com

The Edison Design Group (EDG) is a company that makes compiler front ends (preprocessing and parsing) for C++ and formerly Java and Fortran. [2] [3] Their front ends are widely used in commercially available compilers and code analysis tools. Users include the Intel C++ compiler, [4] Microsoft Visual C++ (IntelliSense), NVIDIA CUDA Compiler, SGI MIPSpro, The Portland Group, and Comeau C++. [5] They are widely known for having the first, and likely only, front end to implement the unused until C++20 [6] export keyword of C++. [7] [8] [9] [10]

Contents

EDG was founded in 1988 in New Jersey by J. Stephen "Steve" Adamczyk, a 1974 B.S. graduate of the Massachusetts Institute of Technology, a 1977 M.S. graduate of the Indiana University Bloomington, and an experienced compiler engineer who had worked for Advanced Computer Techniques in New York City. [1] [11]

Other employees include John Spicer and Daveed Vandevoorde.

See also

Related Research Articles

C is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of the targeted CPUs. It has found lasting use in operating systems code, device drivers, and protocol stacks, but its use in application software has been decreasing. C is commonly used on computer architectures that range from the largest supercomputers to the smallest microcontrollers and embedded systems.

Templates are a feature of the C++ programming language that allows functions and classes to operate with generic types. This allows a function or class declaration to reference via a generic variable another different class without creating full declaration for each of these different classes.

<span class="mw-page-title-main">C++</span> General-purpose programming language

C++ is a high-level, general-purpose programming language created by Danish computer scientist Bjarne Stroustrup. First released in 1985 as an extension of the C programming language, it has since expanded significantly over time; as of 1997, C++ has object-oriented, generic, and functional features, in addition to facilities for low-level memory manipulation for systems like microcomputers or to make operating systems like Linux or Windows. It is usually implemented as a compiled language, and many vendors provide C++ compilers, including the Free Software Foundation, LLVM, Microsoft, Intel, Embarcadero, Oracle, and IBM.

IA-64 is the instruction set architecture (ISA) of the discontinued Itanium family of 64-bit Intel microprocessors. The basic ISA specification originated at Hewlett-Packard (HP), and was subsequently implemented by Intel in collaboration with HP. The first Itanium processor, codenamed Merced, was released in 2001.

Generic programming is a style of computer programming in which algorithms are written in terms of data types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by the ML programming language in 1973, permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplicate code.

The Standard Template Library (STL) is a software library originally designed by Alexander Stepanov for the C++ programming language that influenced many parts of the C++ Standard Library. It provides four components called algorithms, containers, functions, and iterators.

<span class="mw-page-title-main">Modula-3</span>

Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles it has not been adopted widely in industry. It was designed by Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow and Greg Nelson at the Digital Equipment Corporation (DEC) Systems Research Center (SRC) and the Olivetti Research Center (ORC) in the late 1980s.

Cilk, Cilk++, Cilk Plus and OpenCilk are general-purpose programming languages designed for multithreaded parallel computing. They are based on the C and C++ programming languages, which they extend with constructs to express parallel loops and the fork–join idiom.

In computer programming, thread-local storage (TLS) is a memory management method that uses static or global memory local to a thread. The concept allows storage of data that appears to be global in a system with separate threads.

In computer programming and computer science, "maximal munch" or "longest match" is the principle that when creating some construct, as much of the available input as possible should be consumed.

C++11 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++11 replaced the prior version of the C++ standard, called C++03, and was later replaced by C++14. The name follows the tradition of naming language versions by the publication year of the specification, though it was formerly named C++0x because it was expected to be published before 2010.

In computing, compile-time function execution is the ability of a compiler, that would normally compile a function to machine code and execute it at run time, to execute the function at compile time. This is possible if the arguments to the function are known at compile time, and the function does not make any reference to or attempt to modify any global state.

Comeau C/C++ is a compiler for C and C++ produced by Comeau Computing. Comeau C/C++ was once described as the most standards-conformant C++ compiler. In 2006-2008 it was described as the only mainstream C++ compiler to fully support the export keyword for exported templates.

<span class="mw-page-title-main">OpenCL</span> Open standard for programming heterogenous computing systems, such as CPUs or GPUs

OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.

The ROSE compiler framework, developed at Lawrence Livermore National Laboratory (LLNL), is an open-source software compiler infrastructure to generate source-to-source analyzers and translators for multiple source languages including C, C++, Fortran, OpenMP, Java, Python, and PHP.

In the C++ programming language, decltype is a keyword used to query the type of an expression. Introduced in C++11, its primary intended use is in generic programming, where it is often difficult, or even impossible, to express types that depend on template parameters.

The following outline is provided as an overview of and topical guide to C++:

C++14 is a version of the ISO/IEC 14882 standard for the C++ programming language. It is intended to be a small extension over C++11, featuring mainly bug fixes and small improvements, and was replaced by C++17. Its approval was announced on August 18, 2014. C++14 was published as ISO/IEC 14882:2014 in December 2014.

C++20 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++20 replaced the prior version of the C++ standard, called C++17, and was later replaced by C++23. The standard was technically finalized by WG21 at the meeting in Prague in February 2020, had its final draft version announced in March 2020, was approved on 4 September 2020, and published in December 2020.

References

  1. 1 2 "Company Background". Edison Design Group. Archived from the original on 2017-09-06. Retrieved 2018-03-11.
  2. D. Ryan Stephens (2005). C++ cookbook. O'Reilly Media, Inc. p. 7. ISBN   978-0-596-00761-4 . Retrieved 21 December 2010.
  3. Briand, Marc (1 December 2007). "Editor's Forum". Dr. Dobb's Journal . Retrieved 21 December 2010.
  4. "General compatibility of the Intel C++ Compiler for Windows". Software.intel.com. Archived from the original on 2012-02-07. Retrieved 2012-05-04.
  5. "Frequently Asked Questions: Who are your customers?". Edison Design Group. Archived from the original on 2017-08-27. Retrieved 2018-03-11.
  6. "Using export keyword with templates" . Retrieved 2018-03-11.
  7. "Why We Can't Afford Export" (PDF). (266 KB)
  8. David Vandevoorde; Nicolai M. Josuttis (2003). C++ templates: the complete guide. Addison-Wesley. p. 70. ISBN   978-0-201-73484-3 . Retrieved 21 December 2010.
  9. Daveed Vandevoorde (10 January 2002). "Implementability of export" comp.std.c++.
  10. Daveed Vandevoorde (28 February 2002). "The export keyword". comp.lang.c++.moderated.
  11. Paula Span (27 February 1994). "The On-line Mystique". The Washington Post . p. w.11. Archived from the original on November 4, 2012. Retrieved 21 December 2010.

Further reading