From today on, I will take a course named Introduction to EDA. I t will be over half year later.My teacher is Pro. Guoyong Shi, who ever taught EDA in University of Washington.
After some introduction about the EDA, he just give us a course overview. What to learnn in This Course?
- Design Automation Basics
- How to build a Graphical User Interface
- Get familiar with cygwin and GTK
- Learn Yacc and Bison (compiler tools)
- Implement a command line parser
- Priciples of Symbolic circit analysis
- Implement a small symbolic simultor.
- Term presentation
As a Linux user, I prefer native Linux or real Linux to cygwin. But still not know what are the Yacc and Bison. I got something about them from google.
All about Yacc: Yet Another Compiler-Compiler
Computer program input generally has some structure; in fact, every computer program that does input can be thought of as defining an "input language'' which it accepts. An input language may be as complex as a programming language, or as simple as a sequence of numbers. Unfortunately, usual input facilities are limited, difficult to use, and often are lax about checking their inputs for validity.
Yacc provides a general tool for describing the input to a computer program. The Yacc user specifies the structures of his input, together with code to be invoked as each such structure is recognized. Yacc turns such a specification into a subroutine that handles the input process; frequently, it is convenient and appropriate to have most of the flow of control in the user's application handled by this subroutine.
The input subroutine produced by Yacc calls a user-supplied routine to return the next basic input item. Thus, the user can specify his input in terms of individual input characters, or in terms of higher level constructs such as names and numbers. The user-supplied routine may also handle idiomatic features such as comment and continuation conventions, which typically defy easy grammatical specification.
Yacc is written in portable C. The class of specifications accepted is a very general one: LALR(1) grammars with disambiguating rules.
In addition to compilers for C, APL, Pascal, RATFOR, etc., Yacc has also been used for less conventional languages, including a phototypesetter language, several desk calculator languages, a document retrieval system, and a Fortran debugging system.
All about Bison :
Bison is a general-purpose parser generator that converts a grammar description for an LALR(1) context-free grammar into a C program to parse that grammar. Once you are proficient with Bison, you may use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages.
Bison is upward compatible with Yacc: all properly-written Yacc grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with little trouble. You need to be fluent in C programming in order to use Bison or to understand this manual.
We begin with tutorial chapters that explain the basic concepts of using Bison and show three explained examples, each building on the last. If you don't know Bison or Yacc, start by reading these chapters. Reference chapters follow which describe specific aspects of Bison in detail.Bison was written primarily by Robert Corbett; Richard Stallman made it Yacc-compatible.