CDL2
   HOME
*





CDL2
Compiler Description Language (CDL) is a programming language based on affix grammars. It is very similar to Backus–Naur form (BNF) notation. It was designed for the development of compilers. It is very limited in its capabilities and control flow, and intentionally so. The benefits of these limitations are twofold. On the one hand, they make possible the sophisticated data and control flow analysis used by the CDL2 optimizers resulting in extremely efficient code. The other benefit is that they foster a highly verbose naming convention. This, in turn, leads to programs that are, to a great extent, self-documenting. The language looks a bit like Prolog (this is not surprising since both languages arose at about the same time out of work on affix grammars). However, as opposed to Prolog, control flow in CDL is deterministically based on success/failure, i.e., no other alternatives are tried when the current one succeeds. This idea is also used in parsing expression grammars. ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Affix Grammar
An affix grammar is a kind of formal grammar; it is used to describe the Syntax (programming languages), syntax of languages, mainly computer languages, using an approach based on how natural language is typically described.Koster, Cornelis HA.Affix grammars for natural languages" Attribute Grammars, Applications and Systems. Springer, Berlin, Heidelberg, 1991. The grammatical rules of an affix grammar are those of a context-free grammar, except that certain parts in the nonterminals (the affixes) are used as arguments. If the same affix occurs multiple times in a rule, its value must agreement (linguistics), agree, i.e. it must be the same everywhere. In some types of affix grammar, more complex relationships between affix values are possible. Example We can describe an extremely simple fragment of English in the following manner: : ''Sentence'' → ''Subject'' ''Predicate'' : ''Subject'' → ''Noun'' : ''Predicate'' → ''Verb'' ''Object'' : ''Object'' → ''Noun'' : : ''N ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Programming Language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning), which are usually defined by a formal language. Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. Some languages have both, with the basic language defined by a standard and extensions taken from the dominant implementation being common. Programming language theory is the subfield of computer science that studies the design, implementation, analysis, characterization, and classification of programming languages. Definitions There are many considerations when defini ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Backus–Naur Form
In computer science, Backus–Naur form () or Backus normal form (BNF) is a metasyntax notation for context-free grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocols. It is applied wherever exact descriptions of languages are needed: for instance, in official language specifications, in manuals, and in textbooks on programming language theory. Many extensions and variants of the original Backus–Naur notation are used; some are exactly defined, including extended Backus–Naur form (EBNF) and augmented Backus–Naur form (ABNF). Overview A BNF specification is a set of derivation rules, written as ::= __expression__ where: * is a ''nonterminal'' (variable) and the __expression__ consists of one or more sequences of either terminal or nonterminal symbols; * means that the symbol on the left must be replaced with the expression on the right. * mor ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' 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 (e.g. assembly language, object code, or machine code) to create an executable program. Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman - Second Edition, 2007 There are many different types of compilers which produce output in different useful forms. A ''cross-compiler'' produces code for a different CPU or operating system than the one on which the cross-compiler itself runs. A ''bootstrap compiler'' is often a temporary compiler, used for compiling a more permanent or better optimised compiler for a language. Related software include, a program that translates from a low-level language to a h ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Self-documenting
In computer programming, self-documenting (or self-describing) source code and user interfaces follow naming conventions and structured programming conventions that enable use of the system without prior specific knowledge. In web development, self-documenting refers to a website that exposes the entire process of its creation through public documentation, and whose public documentation is part of the development process. Objectives Commonly stated objectives for self-documenting systems include: * Make source code easier to read and understand * Minimize the effort required to maintain or extend legacy systems * Reduce the need for users and developers of a system to consult secondary documentation sources such as code comments or software manuals * Facilitate automation through self-contained knowledge representation Conventions Self-documenting code is ostensibly written using human-readable names, typically consisting of a phrase in a human language which reflects the symb ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily as a declarative programming language: the program logic is expressed in terms of relations, represented as facts and rules. A computation is initiated by running a ''query'' over these relations. The language was developed and implemented in Marseille, France, in 1972 by Alain Colmerauer with Philippe Roussel, based on Robert Kowalski's procedural interpretation of Horn clauses at University of Edinburgh. Prolog was one of the first logic programming languages and remains the most popular such language today, with several free and commercial implementations available. The language has been used for theorem proving, expert systems, term rewriting, type systems, and automated planning, as well as its original intended field of use, nat ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Parsing Expression Grammar
In computer science, a parsing expression grammar (PEG) is a type of analytic formal grammar, i.e. it describes a formal language in terms of a set of rules for recognizing strings in the language. The formalism was introduced by Bryan Ford in 2004 and is closely related to the family of top-down parsing languages introduced in the early 1970s. Syntactically, PEGs also look similar to context-free grammars (CFGs), but they have a different interpretation: the choice operator selects the first match in PEG, while it is ambiguous in CFG. This is closer to how string recognition tends to be done in practice, e.g. by a recursive descent parser. Unlike CFGs, PEGs cannot be ambiguous; a string has exactly one valid parse tree or none. It is conjectured that there exist context-free languages that cannot be recognized by a PEG, but this is not yet proven. PEGs are well-suited to parsing computer languages (and artificial human languages such as Lojban), but not natural languages where th ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Cornelis H
Cornelis is a Dutch form of the male given name Cornelius. Some common shortened versions of Cornelis in Dutch are Cees, Cor, Corné, Corneel, Crelis, Kees, Neel and Nelis. Cornelis (Kees) and Johannes (Jan) used to be the most common given names in the Low Countries, and the origin of the term Yankees is commonly thought to derive from the term Jan-Kees for the Dutch settlers in New Netherland. Among the notable persons named Cornelis are: * Cornelis Engebrechtsz (c. 1462–1527), painter from Leiden * Cornelis Massijs (c. 1508–1556), painter from Flanders, Belgium * Cornelis Floris de Vriendt (1513/14-1575), architect and sculptor * Cornelis Cort (c. 1533–1578), engraver and draughtsman * Cornelis Corneliszoon (c. 1550–1607), inventor of the wind powered sawmill * Cor Dillen (c. 1920–2009), director of Philips and their CEO in South America * Cornelis van Haarlem (1562–1638), leading Northern Mannerist painter * Cornelis de Houtman (1565–1599), explorer who start ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

University Of Nijmegen
Radboud University (abbreviated as RU, nl, Radboud Universiteit , formerly ''Katholieke Universiteit Nijmegen'') is a public research university located in Nijmegen, the Netherlands. The university bears the name of Saint Radboud, a 9th century Dutch bishop who was known for his intellect and support of the underprivileged. Established in 1923, Radboud University has consistently been included in the top 150 of universities in the world by four major university ranking tables. As of 2020, it ranks 105th in the Shanghai Academic Ranking of World Universities. Internationally, RU is known for its strong research output. In 2020, 391 PhD degrees were awarded, and 8.396 scientific articles were published. To bolster the international exchange of academic knowledge, Radboud University joined the Guild of European Research-Intensive Universities in 2016. Among its alumni Radboud University counts 12 Spinoza Prize laureates and 1 Nobel Prize laureate, Sir Konstantin Novoselov, the dis ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Abstraction
Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or "concrete") signifiers, first principles, or other methods. "An abstraction" is the outcome of this process—a concept that acts as a common noun for all subordinate concepts and connects any related concepts as a ''group'', ''field'', or ''category''. Suzanne K. Langer (1953), ''Feeling and Form: a theory of art developed from Philosophy in a New Key'' p. 90: " Sculptural form is a powerful abstraction from actual objects and the three-dimensional space which we construe ... through touch and sight." Conceptual abstractions may be formed by filtering the information content of a concept or an observable phenomenon, selecting only those aspects which are relevant for a particular purpose. For example, abstracting a leather soccer ball to the more general idea of a ball selects only the information on gen ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Abstract Object
In metaphysics, the distinction between abstract and concrete refers to a divide between two types of entities. Many philosophers hold that this difference has fundamental metaphysical significance. Examples of concrete objects include plants, human beings and planets while things like numbers, sets and propositions are abstract objects. There is no general consensus as to what the characteristic marks of concreteness and abstractness are. Popular suggestions include defining the distinction in terms of the difference between (1) existence inside or outside space-time, (2) having causes and effects or not, (3) having contingent or necessary existence, (4) being particular or universal and (5) belonging to either the physical or the mental realm or to neither. Despite this diversity of views, there is broad agreement concerning most objects as to whether they are abstract or concrete. So under most interpretations, all these views would agree that, for example, plants are concrete ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Mephisto (chess Computer)
Mephisto was a line of chess computers sold by Hegener & Glaser (H+G). In addition to integrated travel and sensory computers, they also sold a line of modular electronic autosensory boards (Modular, Exclusive, München, and Bavaria) which could accept different program, processor, and display modules. Its strongest software was written by Richard Lang, who later ported it to personal computers as ''Psion'' and ChessGenius. Lang's Mephisto programs won six World Computer Chess Championships (WCCC) from 1984 to 1990. H&G also sold engines licensed from Johan de Koning, Ed Schröder, and Frans Morsch. Different models used different 8-bit, 16-bit and 32-bit processors, including MOS Technology 6502, Motorola 68HC05, Motorola 68000 and others. Hegener & Glaser and its Mephisto brand were bought in 1994 by Saitek. Their computers currently sold under the Mephisto brand use programs written by Frans Morsch. Hegener & Glaser (Mephisto) * 1969 established in Munich by M ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]