/
index.html
56 lines (43 loc) · 2.96 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<title>Ravi Programming Language by ravilang</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="stylesheets/normalize.css" media="screen">
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/github-light.css" media="screen">
</head>
<body>
<section class="page-header">
<h1 class="project-name">Ravi Programming Language</h1>
<h2 class="project-tagline">Ravi Programming Language is a derivative of Lua 5.3 with limited optional static typing and MIR based JIT compiler</h2>
</section>
<section class="main-content">
<h3>
<a id="overview" class="anchor" href="#overview" aria-hidden="true"><span class="octicon octicon-link"></span></a>Overview</h3>
<p>Ravi is a derivative/dialect of <a href="http://www.lua.org/">Lua</a> with limited optional
static typing and JIT/AOT compilers. The name Ravi comes from the Sanskrit word for the Sun.</p>
<p>Lua is perfect as a small embeddable dynamic language so why a derivative? Ravi extends Lua with
<a href="https://the-ravi-programming-language.readthedocs.io/en/latest/ravi-reference.html">static typing</a> for greater performance under JIT compilation. However, the static typing is optional and
therefore Lua 5.3 programs are also valid Ravi programs.</p>
<p>There are other attempts to add static typing to Lua (e.g. <a href="https://github.com/andremm/typedlua">Typed Lua</a>
but these efforts are mostly about adding static type checks in the language while leaving the
VM unmodified. So the static typing is to aid programming in the large - the code is eventually
translated to standard Lua and executed in the unmodified Lua VM.</p>
<p>My motivation is somewhat different - I want to enhance the VM to support more efficient operations when
types are known. Type information can be exploited by JIT compilation technology to improve performance.</p>
<h3>
<a id="links" class="anchor" href="#links" aria-hidden="true"><span class="octicon octicon-link"></span></a>Links</h3>
<ul>
<li><a href="https://github.com/dibyendumajumdar/ravi">GitHub Project Site</a></li>
<li><a href="https://the-ravi-programming-language.readthedocs.io/en/latest/ravi-overview.html">Documentation</a></li>
<li><a href="https://github.com/dibyendumajumdar/Suravi">Suravi - Ravi with batteries included</a></li>
</ul>
<footer class="site-footer">
<span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a> using the <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a> by <a href="https://twitter.com/jasonlong">Jason Long</a>.</span>
</footer>
</section>
</body>
</html>