sCode - einfache & kleine Skriptsprache

    • Beta
    • Closed Source

    Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von Facebamm.

      sCode - einfache & kleine Skriptsprache

      [Wiki-Update] sCode [Beta]

      sCode ist eine kleine Skriptsprache mit einem Interpreter. Es kann zum Beispiel: Variablen definieren, Nutzereingaben verarbeiten, If-Abfragen etc.
      Die Syntax ist relativ einfach zu verstehen. Ein Hallo Welt Programm sieht dann so aus: print[Hallo Welt!] oder eine Variablen Deklaration so: var[x]{10} oder $[x]{10} wobei x der Name der Variable und 10 der Wert ist.

      Die vollständige Dokumentation finden Sie hier

      Ich freue auf Feedback (bitte auch gerne Bugs, wenn ihr welche findet) :thumbup: . Dieses Programm ist außerdem noch in der Beta-Phase, es werden noch viele neue Befehle hinzugefügt.
      Bilder:

      BETA-Features
      • Komplett ausgestattete IDE mit Syntaxhighlightung und Autovervollständigung
      • Einfaches speichern & laden von Projekten
      • Variablen Deklarationen, if-Abfragen etc.
      • Viele nützliche Funktionen wie zB printFile[], copyDir[], regWrite[] und viel viel mehr
      • Programm speichert automatisch (Aktivieren unter Datei > Einstellungen > Autospeicher.)
      • Beispielprojekte
      • Exportiere deinen farbigen Code zu HTML
      Da das Programm noch in BETA ist, wird noch viel hinzugefügt und geändert.
      Beispielprogramm
      Spoiler anzeigen

      Quellcode

      1. # Erstellt eine neue Variable x.
      2. var[x]{}
      3. # Erstellt eine neue Benutzereingabe mit der Frage "Was ergibt 5*5?" und speichert das Ergebnis in der Variable x.
      4. input[x]{Was ergibt 5 * 5?}
      5. # Überprüft ob die Eingabe = 25 ist, wenn richtig dann...sonst...
      6. if[$x$ = 25]{Das ist richtig!|das ist falsch!}



      Systemanforderungen
      Spoiler anzeigen

      • netFramework 4.5 oder höher
      • Windows 7/8 oder 10

      Systemveränderungen
      Dieses Programm verändert von sich aus nichts. Es kommt darauf an was der Benutzer daraus macht.


      Download
      Siehe Anhang
      Virusscan: klick

      Verwendete IDE/Programmiersprache
      - Visual Basic .NET
      - Visual Studio Community 2017
      Lizenz/Weitergabe
      - Freeware.
      - Dekompilieren untersagt.
      Dateien
      • sCode-0.2.0.2.zip

        (1,48 MB, 67 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 17 mal editiert, zuletzt von „welt101“ ()

      Das Hintergrundbild hat in einer IDE imo nichts verloren, das lenkt nur zu arg ab.

      Was hat es mit der Meldung "Warnung die Anwendung wurde nicht als Administrator gestartet ..." auf sich? Welche Features bietet die Sprache denn die einen Admin Zugriff beim öffnen der IDE erfordern?

      Wäre nicht schlecht, wenn du die Dokumentation der Sprache hier einfügst, wenn Sie eh im Programm vorhanden ist, dürfte das ja nicht allzu lange dauern.
      Btw. standard um Syntax einer Sprache zu Erklären ist die EBNF (Erweiterte Backus-Naur-Form), selbst Sprachdeklarationen für große Sprachen wie Java wurden in BNF formuliert.

      if[$x$ = 25]{Das ist richtig!|das ist falsch!} Das hier verwirrt mich ein wenig, wird das was da in der If-Verzweigung drin steht sofort ausgegeben, oder was hat es damit auf sich? Wie würde man dann normale Anweisungen absetzen? Funktioniert Anweisungsschachtelung? if[$x$ < 25]{if[$x$ > 15]{Das ist richtig!|das ist falsch!}|das ist falsch!} Was passiert hier zum Beispiel? Welche Datentypen kennt deine Sprache? Wie parst du deinen Syntax?

      Achja und außerdem schlägt Bitdefender auf dein Programm an.

      8-) faxe1008 8-)
      Hi!
      Was hat es mit der Meldung "Warnung die Anwendung wurde nicht als Administrator gestartet ..." auf sich? Welche Features bietet die Sprache denn die einen Admin Zugriff beim öffnen der IDE erfordern?

      Mit Admin Zugriff wird es möglich sein z.B. in die Registry zu schreiben etc. Ist aber noch nicht fertig.

      Btw. standard um Syntax einer Sprache zu Erklären ist die EBNF (Erweiterte Backus-Naur-Form), selbst Sprachdeklarationen für große Sprachen wie Java wurden in BNF formuliert.

      Ich habe derzeit schon eine Dokumentation, die (hoffentlich) einfach zu verstehen ist.

      if[$x$ = 25]{Das ist richtig!|das ist falsch!} Das hier verwirrt mich ein wenig, wird das was da in der If-Verzweigung drin steht sofort ausgegeben, oder was hat es damit auf sich?

      Diese if-Verzweigung gibt je nach dem ob es true oder false ist den text in den {} aus. Das war eigentlich nur zum Testen da ob es funktioniert. Ich werde es auf jeden Fall noch so ab ändern, dass man zB um den Text auszugeben es so machen muss: if[$variable$ = Baum] { print[Richtig!] | print[Falsch!] .
      Ach und If-Verschachtelungen funktionieren (noch) nicht.

      Achja und außerdem schlägt Bitdefender auf dein Programm an.

      Das ist mir bereits bekannt. Irgendwie mag kein AV-Programm meine Programme, komischerweise wird bei mir direkt jedes Programm was ich erstelle von Avira gelöscht. Das liegt sehr wahrscheinlich daran dass ich sie obfuscated habe und der Obfuscator den ich benutze bereits als Virus bekannt ist, da er (leider) für eben solche Zwecke missbraucht wird.

      ~Lg welt

      welt101 schrieb:


      Das liegt sehr wahrscheinlich daran dass ich sie obfuscated habe und der Obfuscator den ich benutze bereits als Virus bekannt ist, da er (leider) für eben solche Zwecke missbraucht wird.


      Gut das du weißt woran es liegt. Dann nutze halt eben keinen Obfuscator. Ich habe noch nie jemanden kennengelernt der
      plausibel erklären kann warum er einen nutzt. Entweder um Schadcode zu verstecken oder aber um zu verstecken das der Code
      nicht so ordentlich aussieht sind die meisten Gründe.

      Wie gesagt meine paar Cents schmeiß den Obfuscator weg. Veröffentliche den Quellcode auf Github (mit ausgewählter Lizenz damit dir keiner was "klauen" kann wenn es dir darum geht) und
      dann können wir dir sogar noch helfen was am Code zu verbessern oder oder oder. Du verstehst ? .
      Grüße , xChRoNiKx
      @xChRoNiKx stimmt, allerdings wird jemand der sich die Mühe macht extra einen obfuscator zu verwenden bei sowas nicht einlenken. Die Diskussion gab's schon so oft und es endete jedes Mal nur mit geflame/beschuldigung/beleidigten Usern. Es ist zwar schade aber seis drum, ist ja nicht das Problem der Community ob das Projekt sich verbessert oder nicht.

      8-) faxe1008 8-)
      @xChRoNiKx
      Ich habe auch schon darüber nachgedacht, es mit dem obfuscaten sein zu lassen. Aber irgendwie mache ich es dann doch.
      Ich werde es mir überlegen :thumbup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „welt101“ ()

      Update v0.1.0.2
      - In der if-Abfrage können nun auch Operatoren wie =,<,> und ! (ungleich) benutzt werden.
      - Kleinere Sachen gefixt (wie zB About vervollständigt).

      Außerdem ist die neue Version nicht mehr obfuscated! :thumbsup: Avira beschwert sich jetzt nicht mehr.

      Das Update wird automatisch heruntergeladen und installiert, bei Programmstart.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „welt101“ ()

      Hallöchen,

      kann man das auch in eigene Projekte einbinden, zum Beispiel als Makrosprache?
      Ich bastel auch gerade an einer Makrosprache für meinen selbstgestrickten Funktionsplotter, die wird aus nostalgischen Gründen ein bisschen so aussehen, wie damals GW-BASIC.

      Gruß
      Carbonunit
      Hallo,

      ich fände es auch interessant die Dokumentation außerhalb des Programms zur Verfügung zu stellen. Könnte helfen potentielle Nutzer zu informieren.

      Du schreibst davon das du eine einfache Programmier, eher Skriptsprache, hast.

      Kleine Frage, nutzt du das amerikanische Tastaturlayout? Denn

      welt101 schrieb:

      $[x]{}

      sieht für mich nicht einfach aus wenn ich ein deutsches Tastaturlayout nutze
      Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
      Hey!

      Ich werde auf jeden Fall noch eine Dokumentation außerhalb des Programms machen. Ich erstelle dafür die Tage mal eine Website.
      Und nein ich nutzte das normale deutsche Tastaturlayout QWERTZ und habe bisher noch keine Schweirigkeiten beim Schreiben bemerkt.

      ~ Lg welt101.
      Das Problem ist nicht, dass man die tasten nicht findet, sondern dass man diese tasten relativ oft braucht und da sie auf dt. Tastaturen nicht über einen einen einzelnen Tastendruck erreichbar sind ist man wesentlich langsamer beim Programmieren.

      Und zum obfuscaten meinen Senf: einige der großen Sprachen haben ihre Compiler öffentlich und wenn nicht, dann haben sie zumindest nicht obfuscated :D Außerdem wäre es eine Idee die Theorie hinter Sprachen und Compiler anzugucken.
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      Update 0.2! :thumbsup:
      Was ist neu?
      • NEU Syntaxhighlightung Stellt nun alle Funktionen, Variablen und mehr farbig dar.
      • NEU Autovervollständigung Drücke STRG+Leertaste um das Autovervollst.-Menü sofort zu öffnen. Wähle mit Tab oder Enter einen Eintrag aus.
      • NEU math2[]{}-Funktion. Es kann jetzt komplexe Gleichungen lösen.
      • zahlreiche Bugs gefixed (u.A. Autospeicherung)

      Hinweis: Das AutoUpdate von Version 0.1.0.2 macht Probleme und funktioniert möglw. nicht. Deshalb sollten Sie edie neueste Version manuell hier herunterladen.


      Falls ihr Wünsche oder Feedback habt, schreibt es gerne.

      ~ LG welt101

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „welt101“ ()

      Hallo @welt101,

      guck auch ruhig mal da rein: Mein Projekt: Formelparser und Funktionsplotter
      Darin gehts auch um eine Makrosprache, allerdings noch als Teil eines größeren Projekts.
      Die Syntax mit den vielen geschweiften {} und eckigen [] Klammern finde ich auch umständlich, da muss man immer zusätzlich AltGr festhalten. Außerdem sollte sich Code für mich gut lesen lassen. Das heißt: Lieber Wörter, als Symbole, deren Bedeutung ich mir merken muss oder dauernd wieder nachschlagen.
      Hallo Carbonunit,

      Sorry für die verspätete Antwort. Schönes Projekt hast du da :) , werde mich mal inspirieren lassen.
      Und das mit den eckigen Klammern werde ich mal überdenken. Außerdem bin bereits dabei mehr Wörter und weniger komische Zeichen einzubauen.

      Liebe Grüße,
      welt101

      welt101 schrieb:

      weniger komische Zeichen einzubauen


      Wieso? Wer C# programmiert hat keine Probleme damit... Nur die VBler ;)
      "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

      Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
      Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
      [off topic .... sorry]

      mrMo schrieb:


      Wieso? Wer C# programmiert hat keine Probleme damit... Nur die VBler ;)

      Das ist relligiöser Unsinn !
      Eher ist es so, daß viele Leute lieber VB programmieren, weil sie es eben besser lesen können und das hat rein gar nichts mit dem Verständnis für den code, oder Übung zu tun.
      Natürlich kann man Üben, das bringt aber manchmal nur wenig bis garnichts, weil einem dieses, oder jenes überhaupt nicht liegt (Negativbegabung sozusagen).
      Menschliche Fähigkeiten sind individuell ausgeprägt, manche sind z.B. wenig emphatisch und können sich nur schwer in andere hineinversetzten. ;)
      @FormFollowsFunction: Kann es sein, dass Du da was falsch verstanden hast? Es ging um die Frage, ob "Sonderzeichen" wie geschweifte Klammern in die Skriptsprachen rein sollen. @mrMos Aussage ging in die Richtung, dass Leute, die mit C# und Co. arbeiten, dauernd geschweifte Klammern verwenden müssen, in VB.Net das jedoch vergleichsweise selten passiert. Mehr war m.E. gar nicht gemeint
      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

      Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
      Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.