[PYTHON] Schildsprache var0.1

Schildsprache var 0.1

Diese Sprache ist eine selbst erstellte Sprache, die das enthält, was ich für gut an Python, C #, Kotlin und v halte. Es ist sehr erweiterbar und hat die gleiche Geschwindigkeit wie Java. Es verbraucht nicht viel Speicher wie Jit und die Parallelisierung ist nicht schwierig.

ex.shie


using Sys
using Os <-Os.ptr,Os.Pointer.Nullptr,Os.Pointer.thisptr,Os.Pointer.ID,Os.Pointer.Out,Os.Environment.Ausfahrt etc.
using Collection #<- class Enumerable,class Range,class Array,class List(Standard),class Dict,class...
from Sys using static Console
from Sys using Environment <-Exit,
from Sys using static Math
delegate file as files //Funktionsalias

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]] #aufführen
        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 #Unveränderlicher FEHLER itg= 3
        string := "VVAN.png "
        opt fstring str = Os.File.Is_Pass(string) #Wenn es keinen Pass gibt Keine Einheit
        if (not fstring):
            return #Automatisch keine Einheit
        else:
            WriteLine(string+"Ist" + fstring"Existiert in")
            return 

    pub def Main(Matual_Girls str):
        WriteLine(ex.do_File()) #Die statische Objektreferenz ist der Objektname.Zugriff mit. Normalerweise das.Zugriff mit->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] //Null für sonst
    
    pub def show():
        WriteLine(for(l in this.mylist))
        get set del opt this.stl_s stl = Null

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

(*
Variablen sind optionale Variablennamen=Variable
Der Zugriff auf das Mitgliedsobjekt erfolgt selbst.~,this.~
Gerätetyp(C++Nullptr_t Typ)はNoneとNullのみ。普通のメソッドはNoneを返す。ジェネリクス等でWhere selfと書くと値型で非staticなものWhere struct と書くと全ての値型が取り出される。Unit Typは特殊で、Unit classと書くとNoneのみUnit struct と書くとNullのみ。Where t is false と書くと_Nothing()Der Wert wird gewählt.
Der Sprungbefehl ist break(##<T>),continue(##<T>),return,yield,yield break,Es gibt weiterhin Ertrag.
*)

Wie die Schildsprache funktioniert

Vorkompilieren (statischer Link) -> Generierung von JCP-Dateien (Datei, die auf dem Container ausgeführt wird) -> Container (dynamische Verbindung / GC / Singularität zwischen Plattformen absorbieren) -> Jit-Kompilierung -> CPU / im Vergleich zur Sprach-VM, die bei der Ausführung ausgeführt wird Es ist gut, weil die Speichernutzung gering ist. ** Ich möchte es so schnell wie * Java * machen, also bereue ich es nicht, oder? Soll ich ** ja ** antworten, auch wenn es mir gesagt wird **?

Recommended Posts

Schildsprache var0.1
Vorschlag eines neuen Sprachschild-Sprachrahmens
Unterschied zwischen Verwendung und Import in der Schildsprache