SpaceCadet,
@SpaceCadet@feddit.nl avatar

Is this LOLCODE 2.0?

phoneymouse,

Why aren’t the booleans like “facts” or “no cap” for true and cap for “false”?

Also, you could have exceptions be called “Sus”

prof,
@prof@infosec.pub avatar

Because it was easier to use Java primitives than implement the constants myself.

porgamrer,

I swear, Zoomers are like the steve buscemi “fellow kids” meme, but somehow everyone in the scene is young

Anyway, nice compiler. Might feel basic to you, but writing a back end for a low level IR format is not that much harder.

Z4rK,

It’s really cool, but the example doesn’t produce any sensible output? If you have created something like this, why wouldn’t you have your demo output something sensible like Fibonacci or 1337 or whatever.

prof,
@prof@infosec.pub avatar

Great idea if I have to extend it

neatchee,

I’m opening an issue on your ticket tracker to add filesystem i/o. Let the nightmare commence

ChubakPDP11,

People are designing languages with JetBrains MPS and I am making an AWK interpreter in C with Yacc, Lex and my own implementation of ASDL. Why do I do this to myself? It seems like the technology I like is way behind. Like C is a language created for freaking mini-computers like VAX and PDP-11 and I still use it? I knew about MPS, I just felt a strong dislike towards it. Now that I am no longer a pill addict, I have to reconsider the technology I choose to implement my stuff. C lacks portability, and QoL features.

(Psyche! All you n000bz can be stuck with your Fischer-Price toys — I’ll do it MY way, the 70s WAY!!!1)

MinekPo1,
@MinekPo1@lemmygrad.ml avatar

don’t worry , it can always get worse . source : I implemented a esoteric programming language of my own making with just a parser (no lexer !) and a tree walking interpreter while reimplementing a standard library and depending on undefined behavior in python . honestly I fear that code more each time I look at it

AMDIsOurLord,

We think alike friend

Don’t lose your passion, doing things the shit old way can also make you a better programmer in the newer paradigms

Although, I recommend you at least learn C++23

Scoopta,
@Scoopta@programming.dev avatar

I choose option C, eclipse xtext

einsteinx2,
@einsteinx2@programming.dev avatar

Reading this comment and then looking up and seeing that your username ends with PDP11 was chef’s kiss

onion,
MajorHavoc,

It’s so beautiful!

Now I’m thinking about how to alias “flex X on the haters” into other development environments…

brunofin,

Is flex X on the haters a way of logging to console?

prof,
@prof@infosec.pub avatar

Yes, it pretty much just wraps the expression in a “System.out.println(<expression>);”

Aatube,
Aatube avatar

Maybe "flex X" outputs to stdout and "flex X on the haters" outputs to stderr?

prof,
@prof@infosec.pub avatar

I like the way you think! 😂

mwguy,

flex X on the fools does verbose logs only.

brunofin,

I’m curious to know how your language throws and catches errors :)

pivot_root,

Does it compile into JVM bytecode or Java source code?

JVM bytecode is one of the most infuriating IRs I ever had the displeasure to work with, and if you managed to make a compiler for that, I applaud you.

prof,
@prof@infosec.pub avatar

Fortunately I generate Java source code from it. However MPS generates both source and byte code when you build the solution. For some reason I can’t get the byte code to run though, but the source code does, so I don’t care too much.

pivot_root,

That sounds about right for JVM bytecode… In any case, great work!

WarmSoda,

No cap is cracking me up. This is great stuff

blotz,
@blotz@lemmy.world avatar

Oh metaprogramming! I’m doing a dissertation on this.

prof,
@prof@infosec.pub avatar

Very cool, I’d be interested in your publications once you’re done. I like metaprogramming, but once you realise you might have needed it, you’re already knee deep in fresh legacy code.

blotz,
@blotz@lemmy.world avatar

You essential have a compiler written through metaprogramming. For your implementation, did you use a find and replace or did you define and parse a grammar like a true compiler.

prof,
@prof@infosec.pub avatar

MPS uses projectional editing. Which means for the user that everything you do is free from concrete syntax, and you basically edit a graphical representation of that abstract syntax tree directly, while it looks like you’re in a textual editor.

So I define abstract nodes that may have certain relationships with each other and then give them a representation in the editor (which is what you see in the screenshot). These nodes may also have generators assigned to them, which use map/reduce operations to generate whatever source code I desire. It usually includes its own bit of code, and triggers code generation of its children as well.

I hope that was somehow clear 😄

AceFuzzLord,

That’s cool but also makes me cringe.

superduperenigma,

Looks like you’ve got a bug in there.


<span style="color:#323232;">if false no cap
</span><span style="color:#323232;">    canYouSeeMe = false
</span><span style="color:#323232;">if cap
</span><span style="color:#323232;">    canYouSeeMe = true
</span><span style="color:#323232;">sheesh
</span>

Won’t this always go into the else/cap condition since the if condition is checking to see that false == true?

prof,
@prof@infosec.pub avatar

You’re correct, but it doesn’t really matter for demo purposes. In an actual use case (whatever that would be for this language) you would of course want to use some kind of variable or expression there instead of a constant.

shiveyarbles,

Are you fo sho?

Yep

tronx4002,

Impressive, no cap!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • programmer_humor@programming.dev
  • DreamBathrooms
  • magazineikmin
  • InstantRegret
  • GTA5RPClips
  • Durango
  • Youngstown
  • khanakhh
  • slotface
  • ngwrru68w68
  • rosin
  • ethstaker
  • kavyap
  • thenastyranch
  • everett
  • anitta
  • modclub
  • cubers
  • tacticalgear
  • vwfavf
  • mdbf
  • normalnudes
  • cisconetworking
  • tester
  • provamag3
  • osvaldo12
  • Leos
  • megavids
  • JUstTest
  • All magazines