Add entry for Fountain to Languages article.
Chris Pressey
1 year, 11 months ago
3051 | 3051 | * reference: true |
3052 | 3052 | * license: Unknown License |
3053 | 3053 | * host-language: [Python][] |
3054 | ||
3055 | ### Fountain | |
3056 | ||
3057 | * type: Meta-language | |
3058 | * inception-date: 2023 | |
3059 | * genre: Experimental language | |
3060 | * development-stage: unfinished | |
3061 | * paradigms: Metalanguage | |
3062 | * reference-distribution: [Fountain distribution](https://catseye.tc/distribution/Fountain_distribution) | |
3063 | ||
3064 | Sample program: | |
3065 | ||
3066 | Goal ::= | |
3067 | <. a = 0 .> { "a" <. a += 1 .> } <. a = n .> | |
3068 | <. b = 0 .> { "b" <. b += 1 .> } <. b = n .> | |
3069 | <. c = 0 .> { "c" <. c += 1 .> } <. c = n .> | |
3070 | ; | |
3071 | ||
3072 | Fountain is a grammar formalism capable of expressing context-sensitive languages (CSLs), | |
3073 | and supporting both efficient parsing *and* efficient generation of strings | |
3074 | in to those languages. | |
3075 | ||
3076 | The example grammar above both parses and generates strings of | |
3077 | the classic CSL `a`^_n_ `b`^_n_ `c`^_n_. In both directions it | |
3078 | operates deterministically, and thus efficiently, guided by the | |
3079 | interspersed semantic constraints. | |
3080 | ||
3081 | #### Reference Implementation: fountain | |
3082 | ||
3083 | * license: Unknown license | |
3084 | * host-language: [Haskell][] | |
3085 | * implementation-type: parser, generator | |
3054 | 3086 | |
3055 | 3087 | - - - - |
3056 | 3088 |