HOME





Syntax Diagram
Syntax diagrams (or railroad diagrams) are a way to represent a context-free grammar. They represent a graphical alternative to Backus–Naur form, EBNF, Augmented Backus–Naur form, and other text-based grammars as metalanguages. Early books using syntax diagrams include the "Pascal User Manual" written by Niklaus Wirth (diagrams start at page 47) and the Burroughs CANDE Manual. In the compilation field, textual representations like BNF or its variants are usually preferred. BNF is text-based, and used by compiler writers and parser generators. Railroad diagrams are visual, and may be more readily understood by laypeople, sometimes incorporated into graphic design. The canonical source defining the JSON data interchange format provides yet another example of a popular modern usage of these diagrams. Principle The representation of a grammar is a set of syntax diagrams. Each diagram defines a "nonterminal" stage in a process. There is a main diagram which defines the langu ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Context-free Grammar
In formal language theory, a context-free grammar (CFG) is a formal grammar whose production rules can be applied to a nonterminal symbol regardless of its context. In particular, in a context-free grammar, each production rule is of the form : A\ \to\ \alpha with A a ''single'' nonterminal symbol, and \alpha a string of terminals and/or nonterminals (\alpha can be empty). Regardless of which symbols surround it, the single nonterminal A on the left hand side can always be replaced by \alpha on the right hand side. This distinguishes it from a context-sensitive grammar, which can have production rules in the form \alpha A \beta \rightarrow \alpha \gamma \beta with A a nonterminal symbol and \alpha, \beta, and \gamma strings of terminal and/or nonterminal symbols. A formal grammar is essentially a set of production rules that describe all possible strings in a given formal language. Production rules are simple replacements. For example, the first rule in the picture, : \lan ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Backus–Naur Form
In computer science, Backus–Naur form (BNF, pronounced ), also known as Backus normal form, is a notation system for defining the Syntax (programming languages), syntax of Programming language, programming languages and other Formal language, formal languages, developed by John Backus and Peter Naur. It is a metasyntax for Context-free grammar, context-free grammars, providing a precise way to outline the rules of a language's structure. It has been widely used in official specifications, manuals, and textbooks on programming language theory, as well as to describe Document format, document formats, Instruction set, instruction sets, and Communication protocol, communication protocols. Over time, variations such as extended Backus–Naur form (EBNF) and augmented Backus–Naur form (ABNF) have emerged, building on the original framework with added features. Structure BNF specifications outline how symbols are combined to form syntactically valid sequences. Each BNF consists of t ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Augmented Backus–Naur Form
In computer science, augmented Backus–Naur form (ABNF) is a metalanguage based on Backus–Naur form (BNF) but consisting of its own syntax and derivation rules. The motive principle for ABNF is to describe a formal system of a language to be used as a bidirectional communications protocol. It is defined b''Internet Standard 68''("STD 68", type case sic), which was , and it often serves as the definition language for IETF communication protocols. supersedes . updates it, adding a syntax for specifying case-sensitive string literals. Overview An ABNF specification is a set of derivation rules, written as where rule is a case sensitivity, case-insensitive nonterminal, the definition consists of sequences of symbols that define the rule, a comment for documentation, and ending with a carriage return and line feed. Rule names are case-insensitive: , , , and all refer to the same rule. Rule names consist of a letter followed by letters, numbers, and hyphens. Angle brack ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Metalanguages
In logic and linguistics, a metalanguage is a language used to describe another language, often called the ''object language''. Expressions in a metalanguage are often distinguished from those in the object language by the use of italics, quotation marks, or writing on a separate line. The structure of sentences and phrases in a metalanguage can be described by a metasyntax. For example, to say that the word "noun" can be used as a noun in a sentence, one could write ''"noun" is a ''. Types of metalanguage There are a variety of recognized types of metalanguage, including ''embedded'', ''ordered'', and ''nested'' (or ''hierarchical'') metalanguages. Embedded An ''embedded metalanguage'' is a language formally, naturally and firmly fixed in an object language. This idea is found in Douglas Hofstadter's book, ''Gödel, Escher, Bach'', in a discussion of the relationship between formal languages and number theory: "... it is in the nature of any formalization of number theor ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Niklaus Wirth
Niklaus Emil Wirth ( IPA: ) (15 February 1934 – 1 January 2024) was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages". Early life and education Niklaus Emil Wirth was born in Winterthur, Switzerland, on 15 February 1934. He was the son of Hedwig (née Keller) and Walter Wirth, a high school teacher. Wirth studied electronic engineering at the Federal Institute of Technology, Zürich (ETH Zürich) from 1954 to 1958, graduating with a Bachelor of Science (B.S.) degree. In 1960, he earned a Master of Science (M.Sc.) from Université Laval in Quebec. Then in 1963, he was awarded a PhD in electrical engineering and computer science (EECS) from the University of California, Berkeley, supervised by computer design pione ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


CANDE
CANDE (Command AND Edit) is a command line shell and text editor on the MCP (Master Control Program) operating system which runs on the Unisys Clearpath series of mainframes. Originally implemented on Burroughs large systems, it has a range of features for interacting with the operating system execution environment, focused on executing, editing and compiling programs, and creating, copying, moving, renaming, and deleting files in general. Its full name is CANDE MCS. MCS, or Message Control Subsystem is the general form of a systems program in the Burroughs architecture (other than MCP, the Master Control Program or core OS). As an MCS, CANDE is more than just an editor as it provides overall control for a network of users. The editing capabilities of CANDE are anachronistic for casual (as opposed to scripted) editing as they predate full screen and graphical editors. CANDE was also used on the Burroughs CMS (mini computer) range, with very similar syntax. In contemporary ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

JSON
JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consisting of name–value pairs and array data type, arrays (or other serialization, serializable values). It is a commonly used data format with diverse uses in electronic data interchange, including that of web applications with server (computing), servers. JSON is a Language-independent specification, language-independent data format. It was derived from JavaScript, but many modern programming languages include code to generate and parse JSON-format data. JSON filenames use the extension .json. Douglas Crockford originally specified the JSON format in the early 2000s. Transcript: He and Chip Morningstar sent the first JSON message in April 2001. Naming and pronunciation The 2017 international standard (ECMA-404 and ISO/IEC 21778:2017) ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Data Exchange
Data exchange is the process of taking data structured under a ''source'' schema and transforming it into a ''target'' schema, so that the target data is an accurate representation of the source data. Data exchange allows data to be shared between different computer programs. It is similar to the related concept of data integration except that data is actually restructured (with possible loss of content) in data exchange. There may be no way to transform an instance given all of the constraints. Conversely, there may be numerous ways to transform the instance (possibly infinitely many), in which case a "best" choice of solutions has to be identified and justified. Single-domain In some domains, a few dozen different source and target schema (proprietary data formats) may exist. An "exchange" or "interchange format" is often developed for a single domain, and then necessary routines (mappings) are written to (indirectly) transform/translate each and every source schema to each an ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Red (programming Language)
Red is a programming language designed to overcome the limitations of the programming language Rebol. Red was introduced in 2011 by Nenad Rakočević, and is both an imperative programming, imperative and functional programming language. Its syntax and general usage overlaps that of the interpreted Rebol language. The implementation choices of Red intend to create a Solution stack, full stack programming language: Red can be used for extremely high-level programming (Domain-specific language, DSLs and Graphical user interface, GUIs) as well as low-level programming (operating systems and device drivers). Key to the approach is that the language has two parts: ''Red/System'' and ''Red''. * ''Red/System'' is similar to C, but packaged into a Rebol lexical structure for example, one would write instead of . * ''Red'' is a homoiconicity, homoiconic language, which is capable of meta-programming with Rebol-like semantics. Red's runtime library is written in Red/System, and uses a hyb ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Metalanguage
In logic and linguistics, a metalanguage is a language used to describe another language, often called the ''object language''. Expressions in a metalanguage are often distinguished from those in the object language by the use of italics, quotation marks, or writing on a separate line. The structure of sentences and phrases in a metalanguage can be described by a metasyntax. For example, to say that the word "noun" can be used as a noun in a sentence, one could write ''"noun" is a ''. Types of metalanguage There are a variety of recognized types of metalanguage, including ''embedded'', ''ordered'', and ''nested'' (or ''hierarchical'') metalanguages. Embedded An ''embedded metalanguage'' is a language formally, naturally and firmly fixed in an object language. This idea is found in Douglas Hofstadter's book, ''Gödel, Escher, Bach'', in a discussion of the relationship between formal languages and number theory: "... it is in the nature of any formalization of number theor ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]