Ring (language) with Syntax Flexibility

A place to discuss any and all xTalk implementations, not just LC LCC Forks, but HyperCard, SuperCard, MetaCard, Gain Momentum, Oracle MediaTalk, OpenXION, etc.
Forum rules
Please limit any bashing/harping on any commercial interests to a minimum, thanks!
Post Reply
User avatar
OpenXTalkPaul
Posts: 2836
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Ring (language) with Syntax Flexibility

Post by OpenXTalkPaul »

https://ring-lang.github.io/doc1.17/rin ... about-ring

https://ring-lang.github.io/doc1.3/synt ... e-and-give

The Ring language is very interesting to me, it's syntax flexibility means you can modify the keywords and operators of it's syntax before the rest of the code / compilation takes place which allows for the rest of the code that follows to be made to look a lot more like various other programming languages. If you look at the examples on that page I linked to above you will see why I posted about it in the xTalk Implementations section.
User avatar
OpenXTalkPaul
Posts: 2836
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Ring (language) with Syntax Flexibility

Post by OpenXTalkPaul »

Try RING online:
https://ring-lang.github.io/web/tryring ... oject.html

Paste this in to that page and click run to see how the syntax flexibility can modify the language so that it behaves like xTalk for string concatenation:

Code: Select all

ChangeRingKeyword print put
ChangeRingOperator + &
ChangeRingOperator nl cr

PUT "HELLO" & cr & "TEST"
FourthWorld
Posts: 466
Joined: Sat Sep 11, 2021 4:37 pm
Contact:

Re: Ring (language) with Syntax Flexibility

Post by FourthWorld »

Did you ever go through a Rebol phase? So many great ideas in Sassenrath's tookit.

http://www.rebol.com/r3/docs/concepts/p ... lects.html
User avatar
OpenXTalkPaul
Posts: 2836
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Ring (language) with Syntax Flexibility

Post by OpenXTalkPaul »

FourthWorld wrote: Fri Jul 26, 2024 5:46 am Did you ever go through a Rebol phase? So many great ideas in Sassenrath's tookit.

http://www.rebol.com/r3/docs/concepts/p ... lects.html
I have stumbled across it a few times. It looks like it hasn't been updated since 2011, with only an unofficial release in 2014.

The syntax defining bits of syntax are always difficult for my brain to wrap around, not just in Rebol.

Here is the Extension Builder source code for the XB Language Module that contains it's Canvas Drawing syntax:
https://github.com/livecode/livecode/bl ... canvas.lcb
Which is binds LCB syntax to things in the C++ files named: module-canvas.cpp, module-canvas.h, module-canvas-internal.h which are in the same directory.

There's no documentation that I can find on using their syntax defining structure.
But it's still easier to understand than others, at least to me but I already understand the way the FFI bindings work and LCB specific stuff like that so that probably helps.

Ring (one ring to rule them all) makes it super easy to redefine its parser/interpreter for keywords and operators, but not, as far as I can tell, the token ordering.
User avatar
OpenXTalkPaul
Posts: 2836
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Ring (language) with Syntax Flexibility

Post by OpenXTalkPaul »

Bumping this topic because Ring language has continued to improve.

Ring has support for Qt and Web Assembly, Desktop, Mobile. As I've said previously, it's not an xTalk but I think it could be. It's intentionally very malleable, with an API for to be able to define your very own "natural language" lang definition that can then be loaded and used / compiled with Ring.

I really like Ring for its the 'open-language' :D goal being one of it's major features (as oppose to being a 'stretch goal').

I sort of began an xTalk language set file the very first time a gave it a try, maybe I'll revisit that.
It would be very cool to be able to code in xTalk (and an xTalk that you can customize the syntax of on the fly), and then compile directly to a binary executable as if it were written in C, C++, Rust, etc.

There is also a Visual Programming Environment written in Ring that supports RIng lang (naturally):
https://github.com/PWCT/pwct2
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest