<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Exode</title><link>https://sourceforge.net/p/cloudium-os/wiki/Exode/</link><description>Recent changes to Exode</description><atom:link href="https://sourceforge.net/p/cloudium-os/wiki/Exode/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 02 Sep 2015 19:52:21 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/cloudium-os/wiki/Exode/feed" rel="self" type="application/rss+xml"/><item><title>Exode modified by 0xJarno</title><link>https://sourceforge.net/p/cloudium-os/wiki/Exode/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -6,12 +6,14 @@
 * Functional
 * Object oriented
 * Declarative (constraint, logic)
+
 Type system
 -
 * Strong
 * Static
 * Effect system
 * Hindley–Milner type system
+
 Special features
 -
 * Query collections or the file system from inside the language
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">0xJarno</dc:creator><pubDate>Wed, 02 Sep 2015 19:52:21 -0000</pubDate><guid>https://sourceforge.net5f14081f8dd9762fc1edf6dfd312f2401e51de9d</guid></item><item><title>Exode modified by 0xJarno</title><link>https://sourceforge.net/p/cloudium-os/wiki/Exode/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -22,6 +22,7 @@
 Examples
 -
 Simplified implementation of PersistentObject:
+
 ~~~~
 class PersistenObject : Object {
     on System.shutdown {
@@ -29,7 +30,9 @@
     }
 }
 ~~~~
+
 Example of inline ASM:
+
 ~~~~
 operator Int + Int {
     mov ax, #1
@@ -37,7 +40,10 @@
     add ax, bx
     return ax
 }
+~~~~
+
 You can mix high-level and low-level code:
+
 ~~~~
 use System.CPU

@@ -57,7 +63,9 @@
  * ...
  */
  ~~~~
+ 
 Queries:
+
 ~~~~
 numbers = [2, 3, 10, -1, 0, 5, -3]
 for x in numbers where x &amp;lt;= 0 {
@@ -65,7 +73,9 @@
 }
 // -1, 0, -3
 ~~~~
+
 Not convinced?
+
 ~~~~
 // No need for for-in: Exode is an array language
 display (Image in User.fotoAlbum[selectedAlbum] where width &amp;gt; 800 px &amp;amp; height &amp;gt; 600 px)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">0xJarno</dc:creator><pubDate>Wed, 02 Sep 2015 19:51:48 -0000</pubDate><guid>https://sourceforge.net07116198480f898743925badb2b2aa9a4a03ff4d</guid></item><item><title>Exode modified by 0xJarno</title><link>https://sourceforge.net/p/cloudium-os/wiki/Exode/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Exode is our new programming languages in development. During development of Cloudium OS we saw the need for another language than only pure ASM. Because we didn't want to lose the fine-grained acces ASM provided us, we decided not to go with an existing language like C or C++, but to make our own. This also gives us the opportunity to create a languages specifically tailored to Cloudium OS, to incorporate new ideas and have a much more modern language at the core of the OS, which still allows the low level control of plain old ASM.&lt;/p&gt;
&lt;h2 id="paradigm"&gt;Paradigm&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Imperative&lt;/li&gt;
&lt;li&gt;Functional&lt;/li&gt;
&lt;li&gt;Object oriented&lt;/li&gt;
&lt;li&gt;Declarative (constraint, logic)&lt;br/&gt;
Type system&lt;br/&gt;
-&lt;/li&gt;
&lt;li&gt;Strong&lt;/li&gt;
&lt;li&gt;Static&lt;/li&gt;
&lt;li&gt;Effect system&lt;/li&gt;
&lt;li&gt;Hindley–Milner type system&lt;br/&gt;
Special features&lt;br/&gt;
-&lt;/li&gt;
&lt;li&gt;Query collections or the file system from inside the language&lt;/li&gt;
&lt;li&gt;Built-in support for concurrency (even over the network)&lt;/li&gt;
&lt;li&gt;Special support for event handlers&lt;/li&gt;
&lt;li&gt;Support for units&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;p&gt;Simplified implementation of PersistentObject:&lt;br/&gt;
    class PersistenObject : Object {&lt;br/&gt;
        on System.shutdown {&lt;br/&gt;
            self.serialize.save(id:self.hash)&lt;br/&gt;
        }&lt;br/&gt;
    }&lt;br/&gt;
Example of inline ASM:&lt;br/&gt;
    operator Int + Int {&lt;br/&gt;
        mov ax, #1&lt;br/&gt;
        mov bx, #2&lt;br/&gt;
        add ax, bx&lt;br/&gt;
        return ax&lt;br/&gt;
    }&lt;br/&gt;
    You can mix high-level and low-level code:&lt;br/&gt;
use System.CPU&lt;/p&gt;
&lt;p&gt;fn main() {&lt;br/&gt;
    ax, bx, cx = 1, 2, 3&lt;br/&gt;
    for register: value in  registers {&lt;br/&gt;
        println "(register): (value)"&lt;br/&gt;
    }&lt;br/&gt;
}&lt;br/&gt;
/&lt;em&gt;&lt;br/&gt;
 * AX: 0x0001&lt;br/&gt;
 * BX: 0x0002&lt;br/&gt;
 * CX: 0x0003&lt;br/&gt;
 * DX: 0xFD31&lt;br/&gt;
 * CS: 0x7D23&lt;br/&gt;
 * FS: 0x81D3&lt;br/&gt;
 * ...&lt;br/&gt;
&lt;/em&gt;/&lt;br/&gt;
    Queries:&lt;br/&gt;
numbers = &lt;span&gt;[2, 3, 10, -1, 0, 5, -3]&lt;/span&gt;&lt;br/&gt;
for x in numbers where x &amp;lt;= 0 {&lt;br/&gt;
    print x .. ", "&lt;br/&gt;
}&lt;br/&gt;
// -1, 0, -3&lt;br/&gt;
    Not convinced?&lt;br/&gt;
// No need for for-in: Exode is an array language&lt;br/&gt;
display (Image in User.fotoAlbum&lt;span&gt;[selectedAlbum]&lt;/span&gt; where width &amp;gt; 800 px &amp;amp; height &amp;gt; 600 px)&lt;br/&gt;
// Equivalent SQL: "select image from userPictures where album = (selectedAlbum) and width &amp;gt; 800 and height &amp;gt; 600"&lt;br/&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">0xJarno</dc:creator><pubDate>Wed, 02 Sep 2015 19:50:03 -0000</pubDate><guid>https://sourceforge.netf588014332e8ac08791516aa6d99939425313c7e</guid></item></channel></rss>