Page 1
The GF Grammar Development Tools
Thomas Hallgren & Aarne Ranta
Göteborg, March 2011
Page 2
GF Grammar Development Environment
Past - Present - Future
Page 3
GF Grammar Development Environment
Traditional
- Generic text editor
- GF documentation
- GF command shell
Page 4
GF Grammar Development Environment
→ Traditional
Generic text editor
- Little, if any, GF support
- Maybe syntax high-lighting
Page 5
GF Grammar Development Environment
→ Traditional
GF documentation
Page 6
GF Grammar Development Environment
→ Traditional
GF command shell
- Grammar compilation
- Error detection
- Testing
- Visualization
Page 7
Towards a GF IDE
Different types of users
- Experts - productivity
- Can use traditional environment, but
- MOLTO promises an order of magnitude improvement in productivity
- Beginners - teaching tools
- Minimal effort to get started
- Guidance
Page 8
GF IDE for beginners
The GF
online editor for simple multilingual grammars
Prototype
- Subset of GF
- Web-based
- Quick access, no software to download and install
- Portability, works on multiple plaforms
- Linux, Mac, Windows
- Touch-based Android and iOS devices
- HTML5 + JavaScript
Page 9
GF IDE for beginners
→ The GF
online editor for simple multilingual grammars
→ Prototype
User guidance
- Error avoidance
- Agreement between abstract and concrete syntax
- Some error detection integrated in editor
Page 10
GF IDE for beginners
→ The GF
online editor for simple multilingual grammars
→ Prototype
Integrated testing and visualization
- Minibar
- Translation Quiz
- Traditional GF shell
Page 11
GF IDE for beginners
→ The GF
online editor for simple multilingual grammars
Future work
- Cloud-based grammar storage and sharing
- Export and import grammars
- More efficient editing
- Keyboard access to all editing operations
- Use GF compiler API to add more functionality
- ...
Page 12
GF IDE for experts
What IDE platform to build on?
- Eclipse, Xcode?
- Emacs, Vi, Geany?
- Google Docs? Collaboration.
- Our own web-based solution?
- In JavaScript, GWT or Haskell?
- Suport offline editing?
- Support touch-based devices?
- Who will do the work?
Page 13
GF Compiler API
- IDE should interface to existing GF compiler
- Good API
- Clear separation
- Keep compiler internals internal!
- Simple data structures
- Support client-server architecture
- What API support was used in our prototype?
Page 14