Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9691

シールド言語var0.1

$
0
0

シールド言語var 0.1

この言語はPython,C#,Kotlin,vの良いなと思ったところを取り込んだ自作言語です。拡張性が高く速度もJava並みJitのようにメモリ使用は多くなく並列化も難しくありません。

ex.shie
using Sys
using Collection #<- class Enumerable,class Range,class Array,class List(デフォルト),class Dict,class...
from Sys using static Console
from Sys using static Math
delegate file as files //関数別名

static class ex():
    def do_File() ():
        opt var t = 1
        opt f float = Null
        lst = new int [[1,2,3],[6,7,2,4],[7,10,24,66,13]] #リスト
        lst1 = new int [10,30]
        lst2 = new [[val = for(x in Range(10)) if(x == 4 and y == 6) break] for(y in Range(10))]
        itg := 1 #イミュータブル ERROR itg = 3
        string := "VVAN.png"
        opt fstring str = Os.File.Is_Pass(string) #パスがない場合None Unit
        if (not fstring):
            return #自動でNone Unit
        else:
            WriteLine(string+"は" + fstring"に存在します")
            return 

    pub def Main(Matual_Girls str):
        WriteLine(ex.do_File()) #staticオブジェクト参照はオブジェクト名.でアクセス。普通の場合はthis.でアクセス out->None
        ex.mycls = cls() 
        ex.mycls.show()

struct stl:
    pub def _init():
        pub self.x = 500
        pub self.y = 400
        pub self.z = 0

class cls():
    pub def _init():
        get set del this.mylist = [for(i in Range(10)) if(i%3 is _Nothing()) 1 elif(i%2 is _Nothing()) 2 else Null] //elseの時はNull

    pub def show():
        WriteLine(for(l in this.mylist))
        get set del opt this.stl_s stl = Null

if(_name == "__main__"):
    ex.Main()

(*
    変数は オプション 変数名 型 = 変数
    メンバーオブジェクトアクセスはself.~,this.~
    Unit型(C++でいうnullptr_t型)はNoneとNullのみ。普通のメソッドはNoneを返す。ジェネリクス等でWhere selfと書くと値型で非staticなものWhere struct と書くと全ての値型が取り出される。Unit型は特殊で、Unit classと書くとNoneのみUnit struct と書くとNullのみ。Where t is false と書くと_Nothing()値が選ばれる。

*)

シールド言語の仕組み

事前コンパイル(スタティックリンク)->jcpファイル生成(コンテナで動くファイル)->コンテナ(ダイナミックリンク/GC/プラットフォーム間の特異点を吸収)->Jitコンパイル->実行で動く言語VMと比べてCPU/メモリ使用量が少ないので良い。速度はJava程度の能力があるようにしたて出ししたいので後悔しませんね?って言われてもはいと答えましょうか。


Viewing all articles
Browse latest Browse all 9691

Trending Articles