About

I am (re-)searching new ways to develop software, aiming to establish a sustainable business.

People

At the moment, I am just a single person who already worked hundreds of hours in free time. The research is temporarily suspended for 2025 or at least on low pace.

Jörg Brüggmann, happy, and (not) missing his suit 😉

Jörg Brüggmann, studied Computer Engineering (Technische Informatik) at TFH Berlin (today: Beuth Hochsule für Technik Berlin). He was awarded the degree of Dipl.-Ing. (FH) by TFH Berlin. More about Jörg Brüggmann at LinkedIn.

Effort and success

Since 2020, increased effort has been taken with the result that a core software, tools and a business model has been developed that could make a vision come true.

genc³’s core software as Haskell code in Microsoft Visual Studio Code

Vision

The vision is that any given input in one form can be transformed into another form, and its translation is controlled by a meta source code that describes the transformation.

E.g. the code of a domain specific language (DSL) can be transformed into a full featured web application.

The products shall be as follows:

  • The compiler-compiler and/or meta-compiler (genc³) just needs one code file of a meta DSL (genc3l-file) that defines the transformation.
  • Low-threshold to apply
    • Comes with complete development stacks (“Batteries included”)
      • Language workbench (genc³ workbench)
      • Compiler-compiler (genc³)
      • Haskell compiler GHC
      • Mingw/Msys, on windows
  • Electronic marketplace infrastructure for meta DSLs
    • accessible directly from the language workbench
    • load meta DSL, modify it, and done
  • Runs on
    • Linux
    • macOS
    • Windows

Current development status

genc³ workbench

Core software

The core software of genc³ transforms input into the desired output.

Language workbench

The Language workbench (genc³ workbench) is already available, and integrates the compiler-compiler genc³.

Meta DSL

A meta DSL (genc3l) is defined. The language and data structures inside the compiler-compiler can directly be mapped.

Features

  • Integrated build system
    • to control of dependencies between transformations within a network of transformations
  • Meta language
    • covering all operators of Parsing expression grammar (PEG)
    • Scannerless parsing
      • UTF-8 characters
      • ISO 8859-1 characters
      • Windows-1252 characters
      • pattern of bits
  • Automatic end of line mode recognition
    • LF ( “\n”, Linux, Unix )
    • CR ( “\r”, MacOS )
    • CR, LF ( “\r\n”, Windows )
    • even mixed
  • Error and hint output
    • source file or stream
    • symbol name
    • syntax node type
    • position of starting point
      • line, column
      • bit position
    • semantic errors are generated according to generator-DSL
  • Built in types including operations
    • Integer ✅
    • Int*N* (e.g. Int3 for 3 bit signed integer { -4, -3, -2, -1, 0, 1, 2, 3 } ) ❌
    • Nat*N* (e.g. Nat3 for 3 bit unsigned integer { 0, 1, 2, 3, 4, 5, 6, 7 } ) ❌
    • Bit ✅
    • Char ✅
    • CharU8 (UTF-8 character) ✅
    • CharL1 (ISO 8859-1 character) ✅
    • CharW1 (Windows-1252 character) ✅
    • Float ❌
    • Float32 ❌
    • Float64 ❌
  • Built in type conversions
  • Built in syntax and its generator functions
    • Integer ✅
    • Int*N*
    • Nat*N*
    • Float ❌
    • Float32 ❌
    • Float64 ❌
✅ = achieved
❌ = remaining work

Remaining work packages for genc³

The headlines of the remaining work packages for genc³ are:

  • Left recursion detection and recovery
  • Simplification of generator pattern
  • Parsing indentation
  • Meta parser
  • Meta generator
  • Network of transformations
  • Command line interface
  • Refactoring and test of all packages
  • Application verification and validation

The genc³ workbench has to be completely rebuild for the newly defined feature set of genc³.


Issue 2024-11-21