[Commit] mint-2004b abstract.tex, 1.1.1.1, 1.2 intro.tex, NONE, 1.1 mint.bib, 1.1.1.1, 1.2 mint.tex, 1.1.1.1, 1.2 nickle.tex, 1.1.1.1, 1.2

Bart Massey commit at keithp.com
Wed Dec 1 00:08:20 PST 2004


Committed by: bart

Update of /local/src/CVS/mint-2004b
In directory home.keithp.com:/tmp/cvs-serv13516

Modified Files:
	abstract.tex mint.bib mint.tex nickle.tex 
Added Files:
	intro.tex 
Log Message:
Looking more like a paper.



Index: abstract.tex
===================================================================
RCS file: /local/src/CVS/mint-2004b/abstract.tex,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- abstract.tex	1 Dec 2004 06:46:59 -0000	1.1.1.1
+++ abstract.tex	1 Dec 2004 08:08:17 -0000	1.2
@@ -1,18 +1,16 @@
 \begin{abstract}
-The Nickle programming language extends C-like syntax and
-semantics to accomodate modern programming techniques and
-styles.  As such, it is a nice language for implementing
-automated language recognizers.  In addition, its syntax
-presents some unique challenges to automatic language
-recognition.  The MINT translator is a tool for producing
-automatic translators from a wide variety of target
-languages to parse trees in the form of abstract syntax
-trees.  These translators have broad application beyond the
-Nickle environment.  To achieve this goal, the MINT
-architecture has been factored in a fashion developed some
-time ago by the authors. This split is used to allow the
-generated translator to operate in a wide range of
-languages.  MINT has already proven to be a useful tool, and
+The MINT translator is a tool for producing
+automatic translators implemented in a wide variety of target
+languages.  MINT translators take their input
+to lightly-abstracted parse trees that are typically
+traversed by programming language compilers or interpreters.
+The decision to move beyond time-tested tools such as LEX
+and YACC and construct MINT was motivated by the specific
+needs and capabilities of the authors' Nickle programming language.
+However, these translators have broad application beyond the
+Nickle environment.
+MINT has already proven to be a useful tool, and
 work is underway to extend it to a production-quality
 application.
 \end{abstract}
+

--- NEW FILE: intro.tex ---
\section{Introduction: Another Parser Generator}

{\em Parser generators are as old as the hills: there's nothing
left to learn.}  At least, this is a common belief in the
programming languages community.  Any popular modern
programming language has at least one, and sometimes more,
lexing and parsing tools available for compiler
construction~\cite{cup,mlyacc}.  The stereotypical tool is written in the
target language, and performs actions written in the target
language during recognition.  Lexing and parsing are
typically functions of separate, loosely coupled tools.
Lex and Yacc~\cite{lexyacc} are both exemplars of and models
for this approach.

In this environment, constructing yet another parser
generator requires powerful motivation and careful
consideration.  The development of the MINT parser
generation tool is motivated by difficulties
presented by the implementation of the Nickle programming
language.  It is also motivated by a variety of perceived
opportunities for improvements (of varying degrees of
importance) in the state-of-the-art.  In particular, MINT is
intended to be a friendly platform for future languages to
incorporate parser generation technology with minimal new
development.  As such, improvements to the state of the art
via MINT can be easily incorporated across a wide range of
language platforms.

The Nickle programming language extends C-like syntax and
semantics to accomodate modern programming techniques and
styles.  As such, its syntax presents some unique challenges
for standard automatic parser generation.  The Nickle
front-end is currently implemented in C, using FLEX~\cite{flex} and
Berkeley YACC.  Parts of the ``natural'' Nickle grammar are
not LALR(1): the grammar has been manually transformed to be
suitable for YACC.  Parts of the grammar are ambiguous.
YACC can be told to ignore some of these ambiguities that
happen to be resolved in the correct fashion.  However, some
produce spurious warnings, and some language syntax has been
defined in awkward ways because the ability to disambiguate
appropriately is not available with YACC.

Fortunately, Nickle is also a nice language for implementing
automated language recognizers.

To achieve this goal, the MINT
architecture has been factored in a fashion developed some
time ago by the authors. This split is used to allow the
generated translator to operate in a wide range of
languages.  

Index: mint.bib
===================================================================
RCS file: /local/src/CVS/mint-2004b/mint.bib,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mint.bib	1 Dec 2004 06:47:02 -0000	1.1.1.1
+++ mint.bib	1 Dec 2004 08:08:17 -0000	1.2
@@ -1,4 +1,4 @@
- at inproceedings{nickle:2001,
+ at inproceedings{nickle,
  title		= "{Nickle: Language Principles and Pragmatics}",
  author		= "Bart Massey and Keith Packard",
  booktitle	= "FREENIX Track, 2001 Usenix Annual Technical Conference",
@@ -8,3 +8,48 @@
  address	= "Boston, MA",
 }
 
+ at manual{cup,
+ title		= "{CUP User's Manual}",
+ author		= "Scott E. Hudson",
+ organization	= "Graphics Visualization and Usability Center",
+ address	= "Georgia Institute of Technology",
+ month		= "July",
+ year		= 1999,
+ url            = "http://www.cs.princeton.edu/~appel/modern/java/CUP/manual.html"
+}
+
+ at manual{mlyacc,
+ title          = "ML-Yacc User's Manual",
+ author         = "David Tarditi and Andrew Appel",
+ organization   = "Microsoft Research",
+ year           = "1994",
+ url            = "http://www.smlnj.org/doc/ML-Yacc/"
+}
+
+ at misc{adagoop,
+  title =        "{An Automatic Object-Oriented Parser Generator for Ada}",
+  author =       "Martin C. Carlisle",
+  year =         "2001",
+  month =        jan,
+  url =          "http://www.usafa.af.mil/dfcs/papers/mcc/adagoop.pdf",
+}
+
+ at book{lexyacc,
+  author = "John Levine and Tony Mason and Doug Brown",
+  title = "{Lex and YACC}",
+  publisher = "O'Reilly",
+  edition = "Second Edition",
+  year = 1992,
+  month = oct
+}
+
+ at article{flex,
+  author =       "Daniel R. Haney and Vern Paxson",
+  title =        "{FLEX}",
+  journal =      "C Users Journal",
+  volume =       "7",
+  number =       "8",
+  month =        aug,
+  year =         "1989",
+}
+

Index: mint.tex
===================================================================
RCS file: /local/src/CVS/mint-2004b/mint.tex,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mint.tex	1 Dec 2004 06:47:02 -0000	1.1.1.1
+++ mint.tex	1 Dec 2004 08:08:17 -0000	1.2
@@ -6,7 +6,6 @@
 \documentclass{entcs}
 \usepackage{prentcsmacro}
 \usepackage{epic,eepic}
-\usepackage{url}
 
 \def\lastname{Kuo, LaMar, Massey, Packard}
 
@@ -33,6 +32,8 @@
       parsers, languages, parser generators, compilation
     \end{keyword}
   \end{frontmatter}
+
+\input{intro}
 \input{tool}
 \input{lola}
 \input{nickle}

Index: nickle.tex
===================================================================
RCS file: /local/src/CVS/mint-2004b/nickle.tex,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- nickle.tex	1 Dec 2004 06:47:02 -0000	1.1.1.1
+++ nickle.tex	1 Dec 2004 08:08:17 -0000	1.2
@@ -1,6 +1,6 @@
 \section{Nickle}
 
-The Nickle Programming Language\cite{nickle:2001} was developed as a C-like
+The Nickle Programming Language\cite{nickle} was developed as a C-like
 procedural imperative language with strong types and several useful notions
 adopted from the functional programming community.  Originally targetted
 twenty years ago as an algorithmic prototyping language, it has become more




More information about the Commit mailing list