TL;DR: In this article, an enhanced compiler for compiling C++ programs without the use of forward declarations normally included in program header files is presented, which extracts definitions for the declarations directly from the bodies of the C++ files.
Abstract: An enhanced compiler for compiling C++ programs without the use of forward declarations normally included in program header files. Through multiple parsing passes, the compiler extracts definitions for the declarations directly from the bodies of the C++ files. By saving the definitions to a persistent program representation, for example a program database, on subsequent sweeps, only definitions for new or changed declarations need be updated. In this way, C++ programs can be incrementally compiled on a declaration by declaration basis.
TL;DR: In this article, a general-purpose programming environment allows users to program a GPU as a generalpurpose computation engine using familiar C/C++ programming constructs using declaration specifiers to identify which portions of a program are to be compiled for a CPU or a GPU.
Abstract: A general-purpose programming environment allows users to program a GPU as a general-purpose computation engine using familiar C/C++ programming constructs Users may use declaration specifiers to identify which portions of a program are to be compiled for a CPU or a GPU Specifically, functions, objects and variables may be specified for GPU binary compilation using declaration specifiers A compiler separates the GPU binary code and the CPU binary code in a source file using the declaration specifiers The location of objects and variables in different memory locations in the system may be identified using the declaration specifiers CTA threading information is also provided for the GPU to support parallel processing
TL;DR: The D programming language as discussed by the authors is a C-to-C++ compiler with support for Unicode, IEEE floating point, 2s complement arithmetic, and flat memory addressing, which is similar to the D language we use.
Abstract: As its name suggests, the initial motivation for the D programming language was to improve on C and C++ while keeping their spirit. The D language was to preserve those languages' efficiency, low-level access, and Algol-style syntax. The areas D set out to improve focused initially on rapid development, convenience, and simplifying the syntax without hampering expressiveness. The genesis of D has its peculiarities, as is the case with many other languages. Walter Bright, D's creator, is a mechanical engineer by education who started out working for Boeing designing gearboxes for the 757. He was programming games on the side, and in trying to make his game Empire run faster, became interested in compilers. Despite having no experience, Bright set out in 1982 to implement a compiler that produced better code than those on the market at the time. This interest materialized into a C compiler, followed by compilers for C++, Java, and JavaScript. Best known of these would be the Zortech C++ compiler, the first (and to date only) C++-to-native compiler developed by a single person. The D programming language began in 1999 as an effort to pull the best features of these languages into a new one. Fittingly, D would use the by that time mature C/C++ back end (optimizer and code generator) that had been under continued development and maintenance since 1982. Between 1999 and 2006, Bright worked alone on the D language definition and its implementation, although a steadily increasing volume of patches from users was incorporated. The new language would be based on the past successes of the languages he'd used and implemented, but would be clearly looking to the future. D started with choices that are obvious today but were less clear winners back in the 1990s: full support for Unicode, IEEE floating point, 2s complement arithmetic, and flat memory addressing (memory is treated as a linear address space with no segmentation). It would do away with certain compromises from past languages imposed by shortages of memory (for example, forward declarations would not be required). It would primarily appeal to C and C++ users, as expertise with those languages would be readily transferrable. The interface with C was designed to be zero cost. The language design was begun in late 1999. An alpha version appeared in 2001 and the initial language was completed, somewhat arbitrarily, at version 1.0 in January 2007. During that time, the language evolved considerably, both in capability and in the accretion of a substantial worldwide community that became increasingly involved with contributing. The front end was open-sourced in April 2002, and the back end was donated by Symantec to the open source community in 2017. Meanwhile, two additional open-source back ends became mature in the 2010s: `gdc` (using the same back end as the GNU C++ compiler) and `ldc` (using the LLVM back end). The increasing use of the D language in the 2010s created an impetus for formalization and development management. To that end, the D Language Foundation was created in September 2015 as a nonprofit corporation overseeing work on D's definition and implementation, publications, conferences, and collaborations with universities.
TL;DR: In this article, a system and method for declaring variables during coding of a software program is presented, which includes, for each variable type, defining a unique string representing a variable declaration instruction and adapting a coding module wherein, generating code for the corresponding variable declaration statement for a new variable having the new variable name and the specified variable type.
Abstract: A system and method for declaring variables during coding of a software program. The method includes, for each variable type, defining a unique string representing a variable declaration instruction and adapting a coding module wherein, generating code for the corresponding variable declaration statement for a new variable having the new variable name and the specified variable type, tracking the variable declaration instructions for each new variable name, and presenting a warning if a programmer attempts to use one of the previously used variable names to declare a new variable name of another data type. The method further includes defining a reserved variable declaration area in the software program and placing any code generated by the coding module for the variable declaration statement into the reserved variable declaration area. Each unique string representing a variable declaration instruction may be, for example, a prefix or suffix.
TL;DR: This paper examines some issues which relate to the definition of scope in Pascal, and pressures which have been brought to bear on the draft international standard for Pascal for duplicate procedure headings for forward‐declared procedures.
Abstract: This paper examines some issues which relate to the definition of scope in Pascal, and pressures which have been brought to bear on the draft international standard for Pascal to duplicate procedure headings for forward-declared procedures The causes for these pressures, and the conceptual integrity of Pascal are discussed The interfacing nature of parameter lists is examined, and the concept of A�¢A��A��detergent constructA�¢A��A�� introduced, leading to A�¢A��A��detergent scope rulesA�¢A��A��