mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
2.4 KiB
48 lines
2.4 KiB
@Article{Bumbulis94, |
|
author = {Peter Bumbulis and Donald D. Cowan}, |
|
title = {RE2C -- A More Versatile Scanner Generator}, |
|
journal = "ACM Letters on Programming Languages and Systems", |
|
volume = 2, |
|
number = "1--4", |
|
year = 1994, |
|
abstract = { |
|
It is usually claimed that lexical analysis routines are still coded by |
|
hand, despite the widespread availability of scanner generators, for |
|
efficiency reasons. While efficiency is a consideration, there exist |
|
freely available scanner generators such as GLA \cite{Gray88} that can |
|
generate scanners that are faster than most hand-coded ones. However, |
|
most generated scanners are tailored for a particular environment, and |
|
retargetting these scanners to other environments, if possible, is |
|
usually complex enough to make a hand-coded scanner more appealing. In |
|
this paper we describe RE2C, a scanner generator that not only generates |
|
scanners which are faster (and usually smaller) than those produced by |
|
any other scanner generator known to the authors, including GLA, but |
|
also adapt easily to any environment. |
|
} |
|
} |
|
@Article{Gray88, |
|
author = {Robert W. Gray}, |
|
title = {{$\gamma$-GLA} - {A} Generator for Lexical Analyzers That |
|
Programmers Can Use}, |
|
journal = {USENIX Conference Proceedings}, |
|
year = {1988}, |
|
month = {June}, |
|
pages = {147-160}, |
|
abstract = {Writing an efficient lexical analyzer for even a simple |
|
language is not a trivial task, and should not be done by hand. We |
|
describe GLA, a tool that generates very efficient scanners. These |
|
scanners do not use the conventional transition matrix, but instead |
|
use a few 128 element vectors. Scanning time is only slightly |
|
greater than the absolute minimum --- the time it takes to look at |
|
each character in a file. The GLA language allows simple, concise |
|
specification of scanners. Augmenting regular expressions with |
|
auxiliary scanners easily handles nasty problems such as C comments |
|
and C literal constants. We formalize the connection between token |
|
scanning and token processing by associating a processor with |
|
appropriate patterns. A library of canned descriptions simplifies the |
|
specification of commonly used language pieces --- such as, |
|
C\_IDENTIFIERS, C\_STRINGS, PASCAL\_COMMENTS, etc. Finally, carefully |
|
tuned lexical analysis support modules are provided for error |
|
handling, input buffering, storing identifiers in hash tables and |
|
manipulating denotations.} |
|
}
|
|
|