FACTOID # 150: The average person in the United Kingdom drinks as much tea as 23 Italians.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Yacc" also viewed:
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Yacc

yacc is a computer program that serves as the standard parser generator on Unix systems. The name is an acronym for "Yet Another Compiler Compiler." It generates a parser (the part of a compiler that tries to make sense of the input) based on an analytic grammar written in a notation similar to BNF. Yacc generates the code for the parser in the C programming language. A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ... A compiler-compiler or parser generator is a utility for generating the source code of a parser, interpreter or compiler from an annotated language description in the form of a grammar (usually in BNF) plus code that is associated with each of the rules of the grammar that should be... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... In hacker jargon, the use of Yet Another as a way of padding out an acronym is fairly common. ... 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. ... This article or section is in need of attention from an expert on the subject. ... This article is about the computing term. ... Semantics (Greek semantikos, giving signs, significant, symptomatic, from sema, sign) refers to the aspects of meaning that are expressed in a language, code, or other form of representation. ... The term input has a variety of uses in different fields. ... 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. ... The Backus-Naur form (BNF) (also known as Backus normal form) is a metasyntax used to express context-free grammars: that is, a formal way to describe formal languages. ... 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. ... A parser is a computer program or a component of a program that analyses the grammatical structure of an input, with respect to a given formal grammar, a process known as parsing. ... C is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ...


Yacc was developed by Stephen C. Johnson at AT&T for the Unix operating system. Later compatible programs were written, such as Berkeley Yacc, GNU bison, MKS yacc and Abraxas yacc. An updated version of the original AT&T version is also open source as part of Sun's OpenSolaris project. Each offer 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. Stephen Curtis Johnson spent nearly 20 years at Bell Labs and AT&T, where he wrote Yacc, Lint, and the Portable C Compiler. ... AT&T (NYSE: T) is the largest provider of both local and long distance telephone services, wireless service under the brand Cingular Wireless, and DSL Internet access in the United States. ... Berkeley Yacc is a reimplementation of the Unix parser generator Yacc, originally written by Robert Corbett in 1990. ... GNU bison is a free parser generator computer program written for the GNU project, and available for virtually all common operating systems. ... MKS Inc. ... OpenSolaris is an open source project created by Sun Microsystems to build a developer community around the Solaris Operating System technology. ... Ratfor (short for RATional FORtran) is a programming language implemented as a preprocessor for Fortran. ... ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of... Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977–1983. ... Java is an object-oriented programming language developed by Sun Microsystems in the early 1990s. ... Limbo is a programming language for writing distributed systems and is the language used to write applications for the Inferno operating system. ...


Since the parser generated by Yacc requires a lexical analyzer, it is often used in combination with a lexical analyzer generator, in most cases either Lex or the free software alternative Flex. The IEEE POSIX P1003.2 standard defines the functionality and requirements to both Lex and Yacc. Lexical analysis is the process of taking an input string of characters (such as the source code of a computer program) and producing a sequence of symbols called lexical tokens, or just tokens, which may be handled more easily by a parser. ... lex is a program that generates lexical analyzers (scanners or lexers). Lex is commonly used with the yacc parser generator. ... This article is about free software as defined by the sociopolitical free software movement; for information on software distributed without charge, see freeware. ... flex (fast lexical analyzer generator) is a free software alternative to Lex. ... The Institute of Electrical and Electronics Engineers or IEEE (pronounced as eye-triple-ee) is an international non-profit, professional organization incorporated in the State of New York, United States. ... POSIX 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 software compatible with variants of the Unix operating system. ... This article is about engineering. ...


Versions of AT&T Yacc have become open source; the source code is available with the standard distributions of Plan 9 and OpenSolaris. Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... OpenSolaris is an open source project created by Sun Microsystems to build a developer community around the Solaris Operating System technology. ...


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.

Look-Ahead LR parsers or LALR parsers are a specialized form of LR parsers that can deal with more context-free grammars than Simple LR parsers but less than LR(1) parsers can. ... GNU bison is a free parser generator computer program written for the GNU project, and available for virtually all common operating systems. ... lex is a program that generates lexical analyzers (scanners or lexers). Lex is commonly used with the yacc parser generator. ... flex (fast lexical analyzer generator) is a free software alternative to Lex. ... The Backus-Naur form (BNF) (also known as Backus normal form) is a metasyntax used to express context-free grammars: that is, a formal way to describe formal languages. ...

Reference

  • Stephen C. Johnson. YACC: Yet another compiler-compiler. Unix Programmer's Manual Vol 2b, 1979.

External links


  Results from FactBites:
 
BtYacc: BackTracking Yacc (3112 words)
BTYACC -- backtracking yacc =========================== BTYACC was created by Chris Dodd using ideas from many places and lots of code from the Berkeley Yacc distribution, which is a public domain yacc clone put together by the good folks at Berkeley.
In yacc grammars for C, a standard hack, know as the "lexer feedback hack" is used to find typedef names.
Anyone who has ever looked at Jim Roskind public domain C++ yacc grammar, or the yacc-based grammar used in g++ knows how difficult this is. BTYACC is very useful for parsing any ambiguous grammar, particularly ones that come from trying to merge two (or more) complete grammars.
yacc (5502 words)
The yacc utility reads a description of a context-free grammar in file and writes C source code, conforming to the ISO C standard, to a code file, and optionally header information into a header file, in the current directory.
The yacc command accepts a language that is used to define a grammar for a target language to be parsed by the tables and code generated by yacc.
Default versions of main() and yyerror() are supplied in the yacc library and can be linked in by using the -l y operand to cc or c89.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.