| 1 | ABC: A C Front-end
|
|---|
| 2 | http://vsl.cis.udel.edu/abc
|
|---|
| 3 |
|
|---|
| 4 | ABC is a Java-based C front-end. It provides a pre-processor and
|
|---|
| 5 | parser for C programs. These produce an Abstract Syntax Tree
|
|---|
| 6 | representation of the program. The AST includes information such as
|
|---|
| 7 | the type of every expression, the "symbol table" (i.e., the mapping
|
|---|
| 8 | which yields the entity corresponding to each identifier in the
|
|---|
| 9 | program), and a precise description of the origin of each AST element
|
|---|
| 10 | in the original source files. There is also support for transforming
|
|---|
| 11 | ASTs.
|
|---|
| 12 |
|
|---|
| 13 | The ABC interface is intended to be thoroughly documented and easy to
|
|---|
| 14 | use. The code is 100% Java.
|
|---|
| 15 |
|
|---|
| 16 | No one is sure what ABC stands for. It may stand for "ANTLR-Based C
|
|---|
| 17 | front-end" because it uses the ANTLR parser generator at several
|
|---|
| 18 | steps. However, ABC goes significantly beyond the services provided
|
|---|
| 19 | by these ANTLR parsers. ABC may stand for "A Better C front-end" or
|
|---|
| 20 | using it may be as easy as the "ABCs".
|
|---|
| 21 |
|
|---|
| 22 | ABC is developed by Stephen F. Siegel and Timothy K. Zirkel at the
|
|---|
| 23 | Verified Software Laboratory, University of Delaware. It is
|
|---|
| 24 | distributed under the terms of the GNU Lessor General Public
|
|---|
| 25 | License (LGPL).
|
|---|
| 26 |
|
|---|
| 27 | ------------------------- Binary Installation -------------------------
|
|---|
| 28 |
|
|---|
| 29 | For most users, this will be the easiest way to install and use CIVL.
|
|---|
| 30 |
|
|---|
| 31 | 1. Install a Java 8 SDK if you have not already. Go to
|
|---|
| 32 | http://www.oracle.com/technetwork/java/javase/downloads/ for the
|
|---|
| 33 | latest from Oracle. On linux, you can optionally sudo apt-get install
|
|---|
| 34 | openjdk-8-jdk.
|
|---|
| 35 |
|
|---|
| 36 | 2. If you already have the VSL dependencies library, you may
|
|---|
| 37 | skip this step. Otherwise, download the archive of VSL
|
|---|
| 38 | dependencies from http://vsl.cis.udel.edu/lib/tools/vsl_depend,
|
|---|
| 39 | choosing the version for your OS type (32-bit linux,
|
|---|
| 40 | 64-bit linux, or 64-bit OS X). Unzip and untar the
|
|---|
| 41 | downloaded .tgz file and you will have a folder named "vsl".
|
|---|
| 42 | If you do not already have a directory /opt, create one with
|
|---|
| 43 | "mkdir /opt". Move vsl into /opt. Use sudo as needed.
|
|---|
| 44 |
|
|---|
| 45 | 3. Download the ABC distribution from http://vsl.cis.udel.edu/abc.
|
|---|
| 46 |
|
|---|
| 47 | 4. Unzip and untar the downloaded file if this does not happen
|
|---|
| 48 | automatically. This should result in a folder named
|
|---|
| 49 | ABC-TAG, where TAG is some version id string. This folder
|
|---|
| 50 | contains the following:
|
|---|
| 51 |
|
|---|
| 52 | - README : this file
|
|---|
| 53 | - bin : containing one executable sh script called "civl"
|
|---|
| 54 | - lib : containing civl-TAG.jar
|
|---|
| 55 | - licenses : licenses for CIVL and included libraries
|
|---|
| 56 | - examples : some example CIVL programs
|
|---|
| 57 |
|
|---|
| 58 | 5. Move ABC-TAG into /opt.
|
|---|
| 59 |
|
|---|
| 60 | 6. Put the abc script in your path however you like to put things
|
|---|
| 61 | in your path. Either move it to a directory in your path,
|
|---|
| 62 | or create a symlink to it, or edit your .profile or equivalent
|
|---|
| 63 | to put it in your path.
|
|---|