OXCC v1.432 Interpreting C compiler with
language extensions. Generates output in
Architecture Neutral Format (ANF). Sample
back end and byte code interpreter source
code supplied. Callable from command line
or as a reentrant subroutine. Can regenerate
source after interpreting input.
OXCC C Compiler
July 29, 1995
Copyright (c) 1994, 1995 by Norman D. Culver
All Rights Reserved.
Send bug reports and suggestions to:
1323 S.E. 17th Street #662
Ft. Lauderdale, FL 33316
(305) 527-1663 Phone
(305) 760-7584 Fax [email protected]
This software package is distributed as a preliminary version for
TESTING PURPOSES ONLY, WITHOUT ANY WARRANTY;
without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This product includes software developed by the
University of California, Berkeley and its contributors.
INSTALLATION FOR DOS BASED MACHINES
unzip -d oxcc1432// or pkunzip
make// runs the batch file make.bat
At this point you will have a number of .exe files in the oxbow
directory. You can add oxbow to the PATH variable in autoexec.bat
or you can move the .exe files to a preferred directory.
If you don't like the directory name `oxbow' you can pick another
name but you will have to enter an environment variable `OXPATH'
in the autoexec.bat file. e.g. SET OXPATH=mydir
WARNING!! The programs are currently compiled with DJCC version 1.10 which
uses the v1.10 DOS extender, go32.exe. You may not be able to run oxcc
in a DOS box under OS2 or Windows unless you have a lot of memory. It's
not that oxcc uses that much real memory, but it is built on top of a
framework which has a permanent memory object storage facility which saves
and restores objects to their exact original memory addresses. In doing
this it asks for memory ADDRESSES which are rather large. When running
under DPMI the dos extender is forced to commit memory even though
it will not be used. I will fix this problem at a later date.
WHAT IS OXCC AND WHY SHOULD YOU BE INTERESTED
OXCC is a multipass, interpreting C compiler with several language
extensions. It generates an Architecture Neutral Format (ANF) output
and comes with a couple of example back ends. Programmers are expected
to write additional back ends for their specific needs.
Language extensions have been inspired by GCC, MSC and Watcom C.
OXCC is designed to produce 16 bit, 32 bit, 64 bit, segmented and
flat model code for any target architecture and operating system.
OXCC can interpret its' input, it can also regenerate source code
after interpretation. Source regeneration properly handles `malloced'
data containing pointers. Slow mode interpretation keeps track of all
pointers, references and initializations, including hidden pointers.
OXCC is also callable as a subroutine or class from within the framework.
It can even be called by a program which is being compiled (see toxcc.c).
When called as a subroutine, the user can access all of the interesting
internal structures such as the Abstract Syntax Tree and the symbol table
at various stages of the multipass compilation.
CONTENTS OF THIS DISTRIBUTION
oxbow.a a.out archive -- djcc v1.10 compiled
oxlib.cff cff filesystem and archive (see cff.doc)
cfin.cff small archive for the program `cfin' (see cfin.doc)
cfar.cff small archive for the program `cfar' (see cfar.doc)
cfdel.cff small archive for the program `cfdel' (see cfdel.doc)
cfls.cff small archive for the program `cfls' (see cfls.doc)
aout4lb.exe symbol table whapper utility (see aout4lb.doc)
cfrun.exe skeleton framework and dynamic linker (see skel.doc)
oxcc.exe the compiler (see oxcc.doc)
oxccb.exe ANF to byte code back end (see oxccb.doc)
bterp.exe byte code interpreter (see bterp.doc)
oxccl.exe ANF linker (see oxccl.doc)
oxccai.exe ANF to Intel assembler code back end (incomplete)
cfar.exe archiver for .cff filesystems
cfin.exe file inputter for .cff filesystems
cfls.exe lister for .cff and DOS filesystems (derived from GNU)
cfdel.exe deleter for .cff filesytems
make.bat batch file to make some .exe files
test.bat batch file to test the compiler and byte code interpreter
changes notes about what changed between versions
doc/anf.doc documentation for ANF
doc/bterp.doc documentation for bterp
doc/oxcc.doc documentation for oxcc
doc/oxccb.doc documentation for oxccb
doc/oxccl.doc documentation for oxccl
doc/cfar.doc documentation for cfar
doc/cfin.doc documentation for cfin
doc/cfdel.doc documentation for cfdel
doc/cfls.doc documentation for cfls
doc/skel.doc documentation for cfrun
doc/aout4lb.doc documentation for aout4lb
doc/lrg.doc documentation for the parser table generator
doc/c.grm C grammar for oxcc
After running `make.bat' you can run `test.bat' which exercises the
compiler `oxcc', the byte code backend `oxccb' and the byte code