update highlights; fix cat warning bug

This commit is contained in:
aarne
2004-10-13 11:47:24 +00:00
parent e1bceff497
commit 84c306d18c
2 changed files with 33 additions and 39 deletions

View File

@@ -6,11 +6,11 @@
<h1>Grammatical Framework Version 2</h1> <h1>Grammatical Framework Version 2</h1>
Highlights, version 2.0 Highlights, versions 2.0 and 2.1
<p> <p>
13/10/2003 - 25/11 - 2/4/2004 - 18/6 13/10/2003 - 25/11 - 2/4/2004 - 18/6 - 13/10
<p> <p>
@@ -40,12 +40,13 @@ An accurate <a href="DocGF.pdf">language specification</a> is now available.
<tt>interface</tt>, <tt>instance</tt>, <tt>incomplete</tt>. <tt>interface</tt>, <tt>instance</tt>, <tt>incomplete</tt>.
<li> New experimental module types: <tt>transfer</tt>, <li> New experimental module types: <tt>transfer</tt>,
<tt>union</tt>. <tt>union</tt>.
<li> <b>Version 2.1</b>: multiple inheritance in module extension.
<h4>Canonical format GFC</h4> <h4>Canonical format GFC</h4>
<li> The target of GF compiler; to reuse, just read in <li> The target of GF compiler; to reuse, just read in.
<li> Readable by Haskell/Java/C++/C applications <li> Readable by Haskell/Java/C++/C applications.
<li> <b>Version 2.1</b>: Java interpreter available for GFC (by Björn Bringert).
<h4>New features in expression language</h4> <h4>New features in expression language</h4>
@@ -58,6 +59,8 @@ An accurate <a href="DocGF.pdf">language specification</a> is now available.
braces and <tt>where</tt>. braces and <tt>where</tt>.
<li> Pattern variables can be used on lhs's of <tt>oper</tt> definitions. <li> Pattern variables can be used on lhs's of <tt>oper</tt> definitions.
<li> New Unicode transliterations (by Harad Hammarström). <li> New Unicode transliterations (by Harad Hammarström).
<li> <b>Version 2.1</b>: Initial segments of integers
(<tt>Ints</tt><i>n</i>) available as parameter types.
<h4>New shell commands and command functionalities</h4> <h4>New shell commands and command functionalities</h4>
@@ -103,32 +106,22 @@ An accurate <a href="DocGF.pdf">language specification</a> is now available.
<li> By Peter Ljunglöf, based on MCFG. <li> By Peter Ljunglöf, based on MCFG.
<li> Much more efficient for morphology and discontinuous constituents. <li> Much more efficient for morphology and discontinuous constituents.
<li> Treatment of cyclic rules. <li> Treatment of cyclic rules.
<li> <b>Version 2.1</b>: improved generation of speech recognition
grammars (by Björn Bringert).
<li> <b>Version 2.1</b>: output of Labelled BNF files readable by the
BNF Converter.
<!-- NEW --> <!-- NEW -->
<h2>Status (18/6/2004)</h2> <h2>Missing features of GF 1.2 (13/10/2004)</h2>
Grammar compiler, editor GUIs, and shell work for all platforms Generally, GF1 grammars can be automatically translated to GF2, although the
(with restrictions for Solaris).
<p>
The updated <tt>HelpFile</tt> (accessible through <tt>h</tt> command)
marks unsupported features present in GF 1.2 with <tt>*</tt>.
They will be supported again if interested users appear.
<p>
GF1 grammars can be automatically translated to GF2 (although the
result is not as good result is not as good
as manual, since indentation and comments are destroyed). The results can be as manual, since indentation and comments are destroyed.
The results can be
saved in GF2 files, but this is not necessary. saved in GF2 files, but this is not necessary.
Some rarely used GF1 features are no longer supported (see next section). Some rarely used GF1 features are no longer supported (see next section).
<p>
It is also possible to write a GF2 grammar back to GF1, with the It is also possible to write a GF2 grammar back to GF1, with the
command <tt>pg -printer=old</tt>. command <tt>pg -printer=old</tt>.
@@ -136,14 +129,10 @@ command <tt>pg -printer=old</tt>.
<p> <p>
Resource libraries Resource libraries
and some example grammars and have been and some example grammars have been
converted. Most old example grammars work without any changes. converted. Most old example grammars work without any changes.
There is a new resource API with However, there is a new resource API with
many new constructions. many new constructions, and which is recommended.
<p>
A make facility works, finding out which modules have to be recompiled.
<p> <p>
@@ -313,16 +302,10 @@ Examples of extension:
lin times x y = expSg ("the" ++ "product" ++ "of" ++ x.s ++ "and" ++ y.s) ; lin times x y = expSg ("the" ++ "product" ++ "of" ++ x.s ++ "and" ++ y.s) ;
} }
</pre> </pre>
Another important difference:
<li> extension is single
<li> opening can be multiple: <tt>open Foo, Bar, Baz in {...}</tt>
<p> <p>
Moreover: Opening, but not extension, can be <b>qualified</b>:
<li> opening can be <b>qualified</b>
<p>
Example of qualified opening:
<pre> <pre>
concrete NumberSystems of Systems = open (Bin = Binary), (Dec = Decimal) in { concrete NumberSystems of Systems = open (Bin = Binary), (Dec = Decimal) in {
lin lin
@@ -330,6 +313,17 @@ Example of qualified opening:
DZero = Dec.Zero DZero = Dec.Zero
} }
</pre> </pre>
<p>
<b>Version 2.1</b> introduces <tt>multiple inheritance</tt>: a module
can extend several modules at the same time, for instance,
<pre>
abstract Dialogue = User, System ** { ...}
</pre>
may be used to put together "User's moves" and "System's moves" into
one Dialogue System grammar.
<!-- NEW --> <!-- NEW -->
@@ -346,7 +340,7 @@ first left bracket (<tt>{</tt>). The header gives
<li> the module type: <tt>abstract</tt>, <tt>concrete</tt> (<tt>of</tt> <i>A</i>), <li> the module type: <tt>abstract</tt>, <tt>concrete</tt> (<tt>of</tt> <i>A</i>),
or <tt>resource</tt> or <tt>resource</tt>
<li> the name of the module (next to the module type keyword) <li> the name of the module (next to the module type keyword)
<li> the name of extended module (between <tt>=</tt> and <tt>**</tt>) <li> the names of extended modules (between <tt>=</tt> and <tt>**</tt>)
<li> the names of opened modules <li> the names of opened modules
</ul> </ul>

View File

@@ -250,7 +250,7 @@ execC co@(comm, opts0) sa@((st,(h,_)),a) = checkOptions st co >> case comm of
let c0 = firstAbsCat os gro let c0 = firstAbsCat os gro
c <- GrammarToCanon.redQIdent c0 c <- GrammarToCanon.redQIdent c0
lang <- maybeErr "no concrete" $ languageOfOptState os st lang <- maybeErr "no concrete" $ languageOfOptState os st
t <- Look.lookupLincat cgr $ CMacros.redirectIdent lang c t <- return $ errVal CMacros.defLinType $ Look.lookupLincat cgr $ CMacros.redirectIdent lang c
return $ if CMacros.isDiscontinuousCType t return $ if CMacros.isDiscontinuousCType t
then (putStrLn ("Warning: discontinuous category" +++ prt_ c)) then (putStrLn ("Warning: discontinuous category" +++ prt_ c))
else (return ()) else (return ())