alang
liblgpp
Our great sponsors
alang | liblgpp | |
---|---|---|
5 | 3 | |
75 | 64 | |
- | - | |
1.8 | 0.0 | |
over 3 years ago | over 3 years ago | |
C++ | C++ | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
alang
- Build your own programming language in C++
-
Ask HN: What Are You Working On?
Currently working on a toolkit for writing custom interpreters [1], a language [2] on top of said toolkit and eventually a text editor [3] that uses them for scripting.
https://github.com/codr7/liblgpp
https://github.com/codr7/alang
https://github.com/codr7/qm
- Show HN: Build your own programming language in C++
- Show HN: Design your own programming language in C++
liblgpp
-
Build your own programming language in C++
The title makes it seem fairly general-purpose. The page itself is clearer: "implement a minimal viable programming language on top of liblgpp" (which itself is a toolkit for building Forth-esque stack-based languages).
-
Show HN: Build your own programming language in C++
Thank you for posting, OP! I have a tangential question about your programming style. I've noticed you define quite simple structs, that nevertheless have constructors and are not POD (e.g. they include a deque<>), and define the methods that work on them inside a namespace. [0]
The two main styles I've seen are (1) the classic full-fledged OOP-y C++ classes with methods, and (2) POD structs with functions that work on them defined in namespaces, in a more C-like style.
Your style seems to be a mix. You don't seem to get the big downsides of OOP, as you're grouping functions per namespace instead of having to make everything a class and ending up with a contrived architecture. At the same time, you're still going to be using many C++-isms due to your use of non-POD structs, which some people may appreciate (for uniform initialisation and memory management), and some people may enjoy less (due to the limitations and complexities of constructors, being forced to use exceptions etc.).
I apologise for my extremely superficial description, but I think it's enough background for my question, namely: could you speak a bit about this programming style, what led you to choose it, and what you enjoy/don't enjoy about it? Thank you! :)
[0]: https://github.com/codr7/liblgpp/blob/main/src/lgpp/parser.h...
What are some alternatives?
ffprobe-wasm - A Web-based FFProbe. Powered by FFmpeg, Vue and Web Assembly!
mp4-rust - MP4 reader + writer library in Rust! 🎥🦀
electron-browser-shell - A minimal, tabbed web browser with support for Chrome extensions—built on Electron.
pg-mem - An in memory postgres DB instance for your unit tests
Galactic-State - Simplified global React state
Oat++ - 🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.
prolink-tools - User friendly tools for accessing and using PRO DJ LINK information.
exocore - A distributed private application framework
io-ts - Runtime type system for IO decoding/encoding
kbs2 - A secret manager backed by age
thegreatsuspender - A chrome extension for suspending all tabs to free up memory