What is ralyn?

ralyn (rā'lin) is an experimental programming language. It's being built from the ground up, primarily for the edification of it's designer(s) but also to examine some conceptual ideas. ralyn aims to be minimalistic and simple without sacrificing ability.

ralyn is a work in progress... but you can download the current source code at github.com


ralyn is declarative, and currently implements the following:

  • dynamic typing system that recognizes
    • String
    • Number
    • Boolean
    • Lists
  • tag system to name data, or provide context/declarations
  • data files easily export to JSON or XML


<doc> : {<type>:"ralyn"}
//{ This is a ralyn data description program.
Colons between tag and data value are optional, as are commas/semicolons used to separate values.}
<strings> : { <s1> : "Strings can be simple double quoted" <s2> : 'or simple single quoted' <s3> : $("or specify the delimiters as the first character after '$('")}<numbers> : { <n1> : -12.3e-5}<bool> : { <b1> : true <b2> : false <b3> : null}<list>:{ <nested>:{ //{as deep as you want!} }}

*sigh* it's harder than i originally thought... and slow going with my other commitments. However, now that i've settled down a little on the feature set and design philosophy things are moving. The lexer is operational, and transpiling to JSON or XML works fairly well.

Next i'll be looking at namespaces, declarations and a path system. No decisions yet, so it's likely to change but maybe something like this?

<logic:if>:{<logic:test>:"bool.b1"<logic:true>:"it's true!"<logic:else>:"it's false :'("}