mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
832f25fc2ac19c58476f55ebdc7001945104f023
Profiling showed that when loading a large .gfo file, shareString was responsible for 15-18% of the CPU time, and a lot of the allocation. Since we already use ByteStrings for reading the source files, shareString mostly has the effect of creating lots of small ByteStrings instead of one large one. Since the plain size of the .gfo is seldom a problem (unlike when it was read as a String), it is ok to keep the whole file as one ByteString in RAM, and have all tokens point into that. Profiling after the change showed 15-20% reduction in CPU time and in total allocation.
DESCRIPTION
The Grammatical Framework (=GF) 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)
INSTALLATION of binary distribution: see INSTALL
INSTALLATION of source distribution:
See src/INSTALL for installation instructions.
Description
Languages
Haskell
45%
C
32.9%
JavaScript
10.1%
HTML
3.3%
Grammatical Framework
2.8%
Other
5.8%