this post was submitted on 20 Jul 2026
18 points (90.9% liked)

Linux

18429 readers
33 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 3 years ago
MODERATORS
 

How about a BASIC that uses Labels instead of line numbers, and actual names for variables - some of the statements are different, for example instead of 'Input' labelbasic uses 'ask' (Each statment begins with a unique letter)

git your own copy at : https://codeberg.org/WasPentalive/LabelBasic.git

top 29 comments
sorted by: hot top controversial new old
[–] WhoIzDisIz@lemmy.today 8 points 1 week ago (3 children)

There have been variations on BASIC that use labels since at least the '80s.

[–] SpaceNoodle@lemmy.world 4 points 1 week ago (3 children)

And variable names, too ... not sure why OP is reinventing the wheel here.

[–] snooggums@piefed.world 4 points 1 week ago (2 children)

Why doesn't [thing I'm not aware of] exist?

[–] SpaceNoodle@lemmy.world 1 points 1 week ago

If only there were some way to discover information.

[–] waspentalive@lemmy.world 1 points 1 week ago

Actually, I do use BWBasic sometimes. I also created another language, NewTiny, which is also on Codeberg. https://codeberg.org/WasPentalive/newtiny.git

[–] agelord@lemmy.world 2 points 1 week ago

Learning experience?

[–] waspentalive@lemmy.world 1 points 1 week ago (1 children)

Because I did not have a wheel of my own? Because I wanted to?

[–] SpaceNoodle@lemmy.world 1 points 1 week ago* (last edited 1 week ago)

But you can already use the wheel. You could build a better mousetrap, but instead, you made something else, but with fewer features.

[–] whaleross@lemmy.world 3 points 1 week ago (1 children)

Yep. I remember moving from the C128 to the Amiga and go ooh.

Still cool that OP is coding their own BASIC interpreter though.

[–] waspentalive@lemmy.world 2 points 1 week ago

Thanks Whaleross, I don't know why some people have to look a gift horse in the mouth.

[–] waspentalive@lemmy.world 2 points 1 week ago

And this one is mine. Built on the ideas that I thought would be cool.

[–] one_old_coder@piefed.social 3 points 1 week ago (1 children)
[–] waspentalive@lemmy.world 1 points 1 week ago

It is not a "visual basic", the code is less complicated, the interpreter is smaller and easier to change, and you get the source code (you do for Gambas too, but Gambas is way more complex)

[–] CallMeAl@piefed.zip 2 points 1 week ago (2 children)

OP why would we want this, compared to all the other versions of BASIC with labels?

[–] _NetNomad@fedia.io 1 points 1 week ago (1 children)

yeah, that elevator pitch is BASIC as we've known it for 25 years. it has some other neat QOL features though like the C-style string printing

[–] waspentalive@lemmy.world 1 points 1 week ago

I use BWBasic as well - but this has source code so I can modify it.

[–] waspentalive@lemmy.world 1 points 1 week ago (1 children)

Maybe you don't want it, that's fine. I developed it for myself, but since I enjoy Free Open Source software, I am giving it away to anyone who would like to play with it.

[–] CallMeAl@piefed.zip 0 points 1 week ago (2 children)

As you are promoting it as something new I was hoping you would tell me about the unique aspects, advantages, or differences from existing options.

[–] waspentalive@lemmy.world 2 points 1 week ago (1 children)

It is less structured than bwbasic can be - it still uses goto and call (gosub) and If statments that can only goto someplace (not structured If statements) No case / switch statement yet. It is not as complete in the function area as it could be. It is still a work in progress. - The most unique things are lines you goto/call can be labeled - variables can have long names not just A1 B C7 etc. index, done, the keyword LET is required (for parsing reasons)

[–] CallMeAl@piefed.zip 0 points 1 week ago

Cool, thanks for sharing

[–] waspentalive@lemmy.world 1 points 1 week ago

btw... I am not Betty.. just sayin.

[–] Treczoks@lemmy.world 1 points 1 week ago (3 children)

String arrays are a must, and you'll have to be able to keep open several different files at once. How about DATA/READ/RESTORE statements?

[–] waspentalive@lemmy.world 2 points 1 week ago (1 children)

I will consider those, thanks for the input. - I have constrained myself: Each statement starts with a unique letter, just to make parsing a tiny bit easier. Also so far I don't have file input - only output to files - for printing on a printer or sending to gnuplot perhaps. That does not mean I can't have an OPEN "filename",r to replace stdin temporarily.

[–] Treczoks@lemmy.world 1 points 1 week ago

Quick complete parsing of a fixed set of keywords can easily be done with a finite state automaton.

[–] waspentalive@lemmy.world 1 points 1 week ago* (last edited 1 week ago) (1 children)

for string arrays -- MAT $BOX(3,5) == 15 CHARACTERS OR 15 STRINGS ? I think it does the latter already. Note, I am nearly 70 years old - I got "help" coding this. (oh noe here comes a storm)

[–] Treczoks@lemmy.world 1 points 1 week ago (1 children)

MAT [dollar]BOX(3,5) should give a two-dimensional array of strings, of course.

[–] waspentalive@lemmy.world 2 points 1 week ago (1 children)

Good I think that is the case.

[–] waspentalive@lemmy.world 1 points 1 week ago

Actually, it was not the case, but it is the case now.

[–] waspentalive@lemmy.world 1 points 1 week ago

"Mat $strings(400)" gives you $strings(0) .. $strings(399) just like C, You can do two dimensonal strig arrays also. Please look over the remaining unused letters and let me know how you would integrate DATA statement. Remember, I am keeping the first letter unique.