You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey'all good folks. I work at Poyan Afzar Fanaavar, as a Software Language Tooling Engineer by trade. A mouthful, yes, but to quote Ralph Lammel's 2018 volume on SLE, "A software language is a formal system wherein the syntsax and semantics are only meaningful in software". So, DeBruijn's "Automath" is not a software language. Hoare's "CSP" and other "Process Algebra" languages are not software languages, they are abstract mathematical models. Lambda Calculus and its many variants are not a software language, they are a model for software language implmenetation. However, JSON is a software language, so is XML, or YAML. Python and C, are, too. WebAssembly is a SL, but EBNF is not a SL. "Tooling" is the key here. I am an SLE 'tooling' expert. This means, I make meta-programs that take one software language; query, analyze, rewrite, and transform it, and output the same software language, or another software language. My work is mostly concerned with:
Domain-locked and Domain-specific languages;
Extensibility of software through tooling;
Specification of software through semantically active meta-languages;
Below is a list of my work, mostly hand-made, and at the end, my AI slop. I have recently began making AI-generated applications with Agentic AI. As a form of therapy, given the topsy-turvey world of the yesterday's tomorrow. I have written some good stuff, but I still don't own them and I don't take honor in them. This text before you right now begins with a list of real software that I have toiled over, and at the end, I list my AI application.
I have registered warble.ir because IRNIC domains are so damn cheap, and I don't have time to edit this page on a daily basis, so I won't make any topical references about why it's so cheap. I used my own server as the authorative nameserver. I am a staunch supporter for self-hosting, especially when the entire world (that is, the country ran by a strain of Seventh-Day Adventists who survived Waco, and relabled themselves as "Evangelicals", and mess up the world for the second coming of their Lord and Savior, who, I swear, would never 'turn the other cheek' on these degenerates, and will never 'take the speck out of [his] eye before taking the plank out of your friends' --- in fact, he will shove the plank up their wazoo) has sanctioned you. I have decided to make a whole project for self-hosting --- of course, using the slop machine --- a project I call "Syntra" and its a suite of tools for self-hosting. I plan on only mirroring my Git repos here when Syntra is done. Visit Syntra's page on Warble to remain lit and woke of Syntra's development.
I still toil and fether over my AI-generated application. I plan them out, I scaffold the directory, I write some of the code, and most importantly, I test them out. Fuzzing and unittesting. I do not say "Be it, and it become". Still, I spend a lot less effort on my AG-generated applications, so it would be dishonest to mix them in with my hand-made software.
One thing I do with my AI-generated applications is, that I try to innovate. The earlier ones on top of the list are your basic warm up, but as we go further, I decide to make more and more innovative applications.
luaROFF -:> a preprocessor for GROFF that embeds Lua. Provides lroff library, which gives access to all the GROFF facilities, allowing interospection and intercession of your ROFF pipeline;
LibGLR -:> a library that aides with creation of GLR parsers, with disambiguation and rewrite facilities. Provides bindings via SWIG, and several custom wrappers -- e.g. glrpp, the C++ wrapper which implements a native DSL
Simdette -:> a header-only C library providing robust target-agnostic vector operations, with a native DSL and operator overloading. You could write SIMD code as if you are writing normal C code;
DaffyChat -:> extensible, voice-enabled ephemeral chatrooms, with a language to define remote services, and a language to define frontend WASM-based plugins. Supports shared library plugins as well;
WIRBLE -:> a compiler infrastructure with retargetable codegen and rewriting for optimization, Targets are defined via plugins. Provides a VM runtime as well. Great for JIT/AOT;
Moonpie -:> an implementation of Lua 5.4, as a C++ header file, with a novel non-compliant API that utilizes C's metaprogramming and native DSL capabilities. Moonpie has a rich toolchain, this project has been arorted, see QaMRpp;
SymProv -:> a Static Code Intelligence tool that manifests the symbols in a C program;
ZPell -:> an extensible, interoperable, CLI-based, API-based spellcheck software;
Equinox -:> an e-graph library in C. It uses equality satuation and confruence closure to find equal terms, and rewrite them;
Ekipp-Library -:> a preprocessor construction library. Build your own preprocessors, with a header-only library. Includes g3, a preprocessor application that uses Ekipp;
NuPERF -:> A modern, retargetable perfect hashing library. Specs are written in Lua. You can define your own target language;
Chomsky3 Library -:> a regular expression library not focused on matching, rather, compilation. Compiles to JIT'd bytecode VM and C. Useful for lexical scanner generators;
MetaTk -:> A collection of meta-programming utilities, a powerhouse of SLE! This library was previously named DSLUtils, but it grew out of it;
QaMRpp -:> a header-only implementation of Lua for C++, with plugins;
Marpelle -:> create ELF/PE/Mach-O Python services with IPC;
EquinoxNG -:> a new, improved version of Equinox with the EQVSG language;
IPCtk -:> a DSL-based tookit for working with IPC primitives and protocols;
SkillTk -:> a simple Python program for generating LLM Agent "Skills" using OpenAI LLM API;
Klyspec -:> a header-only C++ library for specification of CLI arguments, with IPC, native subcommands, profiles;
Sattyre -:> a software for wrapping other SAT/SMT solvers in;
OcarinaLNK -:> an extensible linker with an API. You can define formats (e.g. ELF) and machines in Lua, and you can write plugins. This projec is discontinued;
PikoRL -:> a regular realine library with bundling mode. Bundling mode creates an executabele from your files with file appended adn stub for executoion prependend,like makeself;
Satie -:> a small, header-only, multi-algorithm SAT library in C++;
Instrati -:> a collection of CPU instructions and uArch, with their scrapers, saving the eresults to several formats;