Skip to content

Experimental programming language in தமிழ்

License

Notifications You must be signed in to change notification settings

rcdexta/uyirmei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

உயிர்மெய்

Uyirmei

Experimental programming language in Tamizh

Why

This is an experimental side project to validate if a new language grammar can be supported with just ruby metaprogramming constructs. I have used all tricks and hacks in ruby playbook to check if a new language parser can be supported. Consider this a starting point for a programming language enthusiast to define your own grammar and extend programming constructs in Tamizh. If you are serious about supporting full scale language features, you should look at a resource like createyourproglang, metaprogramming can only take you so far.. :)

Show me the code

Let us look at sample programs before introducing the limited language constructs formally..

  1. Determine if a number is odd or not

alt tag

Output: இரட்டை ஒற்றை இரட்டை

  1. Generate prime numbers upto n

alt tag

Output: 3 5 7 11 13

Had to add screenshots since the language grammar is not supported by github. You can check out the code in the examples folder

Language constructs

In Uyirmei Equivalent keyword Notes
சாற்று let Define a variable
வினை function Define a method/routine
எனில் if execute block if evaluates to true
இல்லைஎனில் unless execute block if evaluates to false
மீண்டும் loop execute given block till break
நிறுத்து break break out of loop if condition passes
அச்சு print print with a newline
மெய் true
பொய் false

Installation

To run the interpreter, install the gem

$ gem install uyirmei

Run the code (with extension .um) using the following command

$ uyirmei run examples/prime.um

LICENSE

MIT

About

Experimental programming language in தமிழ்

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published