Information about Yacc
The computer program yacc is a parser generator developed by Stephen C. Johnson at AT&T for the Unix operating system. The name is an acronym for "Yet Another Compiler Compiler." It generates a parser (the part of a compiler that tries to make syntactic sense of the source code) based on an analytic grammar written in a notation similar to BNF. Yacc generates the code for the parser in the C programming language.
Yacc used to be available as the default parser generator on most Unix systems. It has since been supplanted as the default by more recent, largely compatible, programs such as Berkeley Yacc, GNU bison, MKS yacc and Abraxas pcyacc. An updated version of the original AT&T version is included as part of Sun's OpenSolaris project. Each offers slight improvements and additional features over the original Yacc, but the concept has remained the same. Yacc has also been rewritten for other languages, including Ratfor, EFL, ML, Ada, Java, and Limbo.
The parser generated by Yacc requires a lexical analyzer. Lexical analyzer generators, such as Lex or Flex are widely available. The IEEE POSIX P1003.2 standard defines the functionality and requirements to both Lex and Yacc.
Some versions of AT&T Yacc have become open source. For example, source code (for different implementations) is available with the standard distributions of Plan 9 and OpenSolaris.
Yacc used to be available as the default parser generator on most Unix systems. It has since been supplanted as the default by more recent, largely compatible, programs such as Berkeley Yacc, GNU bison, MKS yacc and Abraxas pcyacc. An updated version of the original AT&T version is included as part of Sun's OpenSolaris project. Each offers slight improvements and additional features over the original Yacc, but the concept has remained the same. Yacc has also been rewritten for other languages, including Ratfor, EFL, ML, Ada, Java, and Limbo.
The parser generated by Yacc requires a lexical analyzer. Lexical analyzer generators, such as Lex or Flex are widely available. The IEEE POSIX P1003.2 standard defines the functionality and requirements to both Lex and Yacc.
Some versions of AT&T Yacc have become open source. For example, source code (for different implementations) is available with the standard distributions of Plan 9 and OpenSolaris.
See also
- LALR parser: The underlying parsing algorithm in Yacc.
- Bison: The GNU version of Yacc.
- Lex (and Flex lexical analyser), the token parser commonly used in conjunction with yacc (and Bison).
- BNF, is a metasyntax used to express context-free grammars: that is, a formal way to describe formal languages.
References
- Stephen C. Johnson. YACC: Yet another compiler-compiler. Unix Programmer's Manual Vol 2b, 1979.
External links
- Yaxx yacc variant written to avoid dependencies on any particular programming language.
- Berkeley Yacc: yacc variant written to avoid dependencies on any particular C compiler.
- Essence, an LR(1) parser generator for Scheme
- ML-Yacc a yacc version for the Standard ML language.
- CL-Yacc, a LALR(1)parser generator for Common Lisp.
- Yecc a yacc version for Erlang.
- Happy a yacc-like parser generator for Haskell.
- PLY a SLR and LALR(1) parser generator for Python
- Eyapp an extension of yacc for Perl
- A Compact Guide To lex & yacc
- TPYACC, a Turbo Pascal or Delphi version of YACC
A computer program is one or more instructions that are intended for execution by a computer. Specifically, it is a symbol or combination of symbols forming an algorithm that may or may not terminate, and that algorithm is written in a programming language.
..... Click the link for more information.
..... Click the link for more information.
A compiler-compiler or compiler generator is a program that generates the source code of a parser, interpreter, or compiler from a programming language description. In the most general case, it takes a full machine-independent syntactic and semantic description of a
..... Click the link for more information.
..... Click the link for more information.
Stephen Curtis Johnson spent nearly 20 years at Bell Labs and AT&T, where he wrote Yacc, Lint, and the Portable C Compiler.
Steve earned his Ph.D. in Mathematics, but has spent his entire career in computing.
..... Click the link for more information.
Steve earned his Ph.D. in Mathematics, but has spent his entire career in computing.
..... Click the link for more information.
AT&T Inc.
Public (NYSE: T )
Founded 1983[1]
Headquarters San Antonio, Texas, USA
Key people Randall L. Stephenson, Chairman/CEO; Richard Lindner, CFO
Industry Telecommunications
Products Wireless, Telephone, Internet, Television
..... Click the link for more information.
Public (NYSE: T )
Founded 1983[1]
Headquarters San Antonio, Texas, USA
Key people Randall L. Stephenson, Chairman/CEO; Richard Lindner, CFO
Industry Telecommunications
Products Wireless, Telephone, Internet, Television
..... Click the link for more information.
Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy.
..... Click the link for more information.
..... Click the link for more information.
In hacker jargon, the use of yet another as a way of padding out an acronym is fairly common. Examples include:
..... Click the link for more information.
- YAAP: Yet Another Ascension Post (an announcement of a win at NetHack)
..... Click the link for more information.
A compiler-compiler or compiler generator is a program that generates the source code of a parser, interpreter, or compiler from a programming language description. In the most general case, it takes a full machine-independent syntactic and semantic description of a
..... Click the link for more information.
..... Click the link for more information.
parsing (more formally syntactic analysis) is the process of analyzing a sequence of tokens to determine its grammatical structure with respect to a given formal grammar. A parser is the component of a compiler that carries out this task.
..... Click the link for more information.
..... Click the link for more information.
compiler is a computer program (or set of programs) that translates text written in a computer language (the source language) into another computer language (the target language).
..... Click the link for more information.
..... Click the link for more information.
source code (commonly just source or code) is any sequence of statements and/or declarations written in some human-readable computer programming language.
..... Click the link for more information.
..... Click the link for more information.
In computer science and linguistics, a formal grammar, or sometimes simply grammar, is a precise description of a formal language — that is, of a set of strings over some alphabet.
..... Click the link for more information.
..... Click the link for more information.
In communications, a code is a rule for converting a piece of information (for example, a letter, word, or phrase) into another form or representation, not necessarily of the same type.
..... Click the link for more information.
..... Click the link for more information.
parsing (more formally syntactic analysis) is the process of analyzing a sequence of tokens to determine its grammatical structure with respect to a given formal grammar. A parser is the component of a compiler that carries out this task.
..... Click the link for more information.
..... Click the link for more information.
C
The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language.
..... Click the link for more information.
The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language.
..... Click the link for more information.
Berkeley Yacc is a reimplementation of the Unix parser generator Yacc, originally written by Robert Corbett in 1990. It has the advantages of being written in ANSI C and being public domain software.
..... Click the link for more information.
..... Click the link for more information.
GNU bison is a free parser generator computer program written for the GNU project, and available for virtually all common operating systems. It is mostly compatible with Yacc, and offers several improvements over the earlier program.
..... Click the link for more information.
..... Click the link for more information.
MKS Inc.
Public (TSX: MKX )
Founded 1984
Headquarters Waterloo, Ontario
Industry Computer software
Products MKS Integrity, Implementer, MKS Toolkit, MKS Lex & Yacc, MKS X/Server
Employees 300 est. (2006)
Website www.mks.com
MKS Inc.
..... Click the link for more information.
Public (TSX: MKX )
Founded 1984
Headquarters Waterloo, Ontario
Industry Computer software
Products MKS Integrity, Implementer, MKS Toolkit, MKS Lex & Yacc, MKS X/Server
Employees 300 est. (2006)
Website www.mks.com
MKS Inc.
..... Click the link for more information.
OpenSolaris is an open source project created by Sun Microsystems to build a developer community around Solaris Operating System technology. It is aimed at developers, system administrators and users who want to develop and improve operating systems.
..... Click the link for more information.
..... Click the link for more information.
Ratfor (short for RATional FORtran) is a programming language implemented as a preprocessor for Fortran 66. It provided modern control structures, unavailable in Fortran 66, to replace GOTOs and statement numbers.
..... Click the link for more information.
..... Click the link for more information.
ML
Paradigm: multi-paradigm: imperative, functional
Appeared in: 1973
Designed by: Robin Milner & others at the University of Edinburgh
Typing discipline: static, strong, inferred
Dialects: Standard ML, OCaml, F#
Influenced by: ISWIM
..... Click the link for more information.
Paradigm: multi-paradigm: imperative, functional
Appeared in: 1973
Designed by: Robin Milner & others at the University of Edinburgh
Typing discipline: static, strong, inferred
Dialects: Standard ML, OCaml, F#
Influenced by: ISWIM
..... Click the link for more information.
Ada
Paradigm: multi-paradigm: concurrent, distributed, generic-programming, imperative, object-oriented
Appeared in: 1983, last revised 2005
Designed by: Jean Ichbiah, extended
by S.
..... Click the link for more information.
Paradigm: multi-paradigm: concurrent, distributed, generic-programming, imperative, object-oriented
Appeared in: 1983, last revised 2005
Designed by: Jean Ichbiah, extended
by S.
..... Click the link for more information.
Java
Paradigm: Object-oriented, structured, imperative
Appeared in: 1995
Designed by: Sun Microsystems
Typing discipline: Static, strong, safe, nominative
Major implementations: Numerous
Influenced by: Objective-C, C++, Smalltalk, Eiffel,[1]
..... Click the link for more information.
Paradigm: Object-oriented, structured, imperative
Appeared in: 1995
Designed by: Sun Microsystems
Typing discipline: Static, strong, safe, nominative
Major implementations: Numerous
Influenced by: Objective-C, C++, Smalltalk, Eiffel,[1]
..... Click the link for more information.
Limbo
Paradigm: Concurrent
Appeared in: 1995
Designed by: Sean Dorward, Phil Winterbottom, and Rob Pike
Developer: Bell Labs/Vita Nuova
Typing discipline: Strong
Major implementations: Dis
Influenced by: C, CSP, Alef
..... Click the link for more information.
Paradigm: Concurrent
Appeared in: 1995
Designed by: Sean Dorward, Phil Winterbottom, and Rob Pike
Developer: Bell Labs/Vita Nuova
Typing discipline: Strong
Major implementations: Dis
Influenced by: C, CSP, Alef
..... Click the link for more information.
In computer science, lexical analysis is the process of converting a sequence of characters into a sequence of tokens. Programs performing lexical analysis are called lexical analyzers or lexers. A lexer consists of a scanner and a tokenizer.
..... Click the link for more information.
..... Click the link for more information.
In computer science, lex is a program that generates lexical analyzers ("scanners" or "lexers"). Lex is commonly used with the yacc parser generator. Lex, originally written by Eric Schmidt and Mike Lesk, is the standard lexical analyzer generator on many Unix systems, and a tool
..... Click the link for more information.
..... Click the link for more information.
flex (fast lexical analyzer generator) is a free software alternative to Lex. It is frequently used with the free Bison parser generator. Flex was originally written in C by Vern Paxson around 1987.
..... Click the link for more information.
..... Click the link for more information.
Institute of Electrical and Electronics Engineers
Type Professional Organization
Founded January 1, 1963
Origins Merger of the American Institute of Electrical Engineers and the Institute of Radio Engineers
Key people Leah H.
..... Click the link for more information.
Type Professional Organization
Founded January 1, 1963
Origins Merger of the American Institute of Electrical Engineers and the Institute of Radio Engineers
Key people Leah H.
..... Click the link for more information.
POSIX (IPA: /ˈpɒsɪks/) or "Portable Operating System Interface" [1] is the collective name of a family of related standards specified by the IEEE to define the application programming interface (API) for
..... Click the link for more information.
..... Click the link for more information.
Business Requirements describe in business terms what must be delivered or accomplished to provide value. Product Requirements describe the system or product which is one of several possible ways to accomplish the business requirements.
..... Click the link for more information.
..... Click the link for more information.
Open source is a set of principles and practices that promote access to the design and production of goods and knowledge. The term is most commonly applied to the source code of software that is available to the general public with relaxed or non-existent intellectual property
..... Click the link for more information.
..... Click the link for more information.
This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus