About

Metadata

  • Last updated , by inariksit
  • License LicenseRef-OtherLicense
  • Categories Compilers and Interpreters, Natural Language Processing
  • Maintained by: John J. Camilleri <john@digitalgrammars.com>

  • Lottery factor: 3

Links

Installation

Tested Compilers

  1. 9.6.7
  2. 9.2.4
  3. 9.0.2
  4. 8.10.4
  5. 8.0.2
  6. 7.10.3

Package Flags

Use the -f option with cabal commands to enable flags

    interrupt (on by default)

    Enable Ctrl+Break in the shell

    server (on by default)

    Include --server mode

    network-uri (on by default)

    Get Network.URI from the network-uri package

    c-runtime (off by default)

    Include functionality from the C run-time library (which must be installed already)

Readme

GF Logo

Grammatical Framework (GF)

The Grammatical Framework is a grammar formalism based on type theory. It consists of:

  • a special-purpose programming language
  • a compiler of the language
  • a generic grammar processor

The compiler reads GF grammars from user-provided files, and the generic grammar processor performs various tasks with the grammars:

  • generation
  • parsing
  • translation
  • type checking
  • computation
  • paraphrasing
  • random generation
  • syntax editing

GF particularly addresses four aspects of grammars:

  • multilinguality (parallel grammars for different languages)
  • semantics (semantic conditions of well-formedness, semantic properties of expressions)
  • grammar engineering (modularity, abstractions, libraries)
  • embeddability in programs written in other languages (C, C++, Haskell, Java, JavaScript)

Compilation and installation

The simplest way of installing GF from source is with the command:

cabal install

or:

stack install

Note that if you are unlucky to have Cabal 3.0 or later, then it uses the so-called Nix style commands. Using those for GF development is a pain. Every time when you change something in the source code, Cabal will generate a new folder for GF to look for the GF libraries and the GF cloud. Either reinstall everything with every change in the compiler, or be sane and stop using cabal-install. Instead you can do:

runghc Setup.hs configure
runghc Setup.hs build
sudo runghc Setup.hs install

The script will install the GF dependencies globally. The only solution to the Nix madness that I found is radical:

"No person, no problem" (Нет человека – нет проблемы).

For more information, including links to precompiled binaries, see the download page.

About this repository

On 2018-07-25, the monolithic GF repository was split in two:

  1. gf-core — the GF compiler, shell and runtimes
  2. gf-rgl — the resource grammar library

The former repository is now archived and no longer updated. The split was performed using this script and the output of that script is here.