Naver Tamgu (탐구) - a BASIC dialect that tries to be many things at once

Started by bprlhe, March 16, 2025, 07:11:32

Previous topic - Next topic

bprlhe

It's not only a normal BASIC dialect. It has Python, Haskell, Prolog implemented as DSLs embedded into the Tamgu BASIC language :o

https://github.com/naver/tamgu

You can download the installer here:

https://github.com/naver/tamgu/releases/download/tamgu.windows/tamguinstaller.msi

PixelOutlaw

I'd say by mixing so many paradigms it's not quite BASIC enough to be BASIC.
It's good to have multi paradigm programming languages but too much feature stealing can lead to areas of ambiguity where they meet.
C++ has paid for this in undefined behavior as it builds a Katamari of "we have that too!".
Ubuntu MATE 20.04: i5-3570K CPU @ 3.40GHz, 8GB RAM, GeForce GTX 1060 3GB

One DEFUN to rule them all, One DEFUN to find them, One DEFUN to RETURN them all, and in the darkness MULTIPLE-VALUE-BIND them.

Naughty Alien

..sometimes, im wondering, is programming languages world so 'undefined' that it keeps getting new languages to do this or that..

bprlhe

Frankly speaking, I think C++'s undefined behaviors are not because of packing too many features into the language but due to the language's semantics. If they had not shoved functional programming concepts into the language, the undefined behaviors would still be there.

PixelOutlaw

Quote from: bprlhe on March 18, 2025, 18:54:28Frankly speaking, I think C++'s undefined behaviors are not because of packing too many features into the language but due to the language's semantics. If they had not shoved functional programming concepts into the language, the undefined behaviors would still be there.

Right but when you add in things like closures via their anonymous functions it does mess with the original memory semantics. Now you've created something that's not necessarily block scope nor global scope variables. How about adding something like Prolog? It usually has an interesting scope in that all rules can see each other and rules of course are not functions because their parameters are two-way pattern matching. Also new parameters can be introduced into the rule patterns arbitrarily. Since in Prolog you can have lexical variables what then does it mean for the memory semantics? So basically your base model gets more and more complex as these things interact. These are cases that the "base stuff" that language is made in is not sufficient and has to be extended.
Ubuntu MATE 20.04: i5-3570K CPU @ 3.40GHz, 8GB RAM, GeForce GTX 1060 3GB

One DEFUN to rule them all, One DEFUN to find them, One DEFUN to RETURN them all, and in the darkness MULTIPLE-VALUE-BIND them.