Mirana    FraktaLab    Gästebuch    Kontakt    Links

    Mirana      

Die Entwicklungsumgebung Mirana.exe enthält mit Editor, Debugger, Profiler und Interpreter sowie dem Hilfesystem alles, was man für die Entwicklung und Ausführen von Mirana-Software benötigt. Nach Kompilierung laufen die entwickelten Programme aber auch ohne Mirana.exe auf jedem Windows-Rechner (Windows 95 bis Windows 11,  sowie Windows PE wie z. B. Hiren's Boot CD) ohne vorherige Installation (Stickware) und sind meist deutlich kleiner als 1 MB. Mirana ist Freeware, kann also frei benutzt und weitergegeben werden, damit entwickelte Programme können ohne Einschränkungen verwendet werden (auch kommerziell).

   


Schnellstart in 5 Minuten

Das Erstellen des ersten eigenen Mirana-Programms ist in weniger als 5 Minuten möglich. Darin ist die Zeit zum Herunterladen (normales DSL) und Installieren der Entwicklungsumgebung sogar schon enthalten. Dabei entsteht eine Benutzeroberfläche mit allen gewünschten Steuer- und Eingabeelementen, die natürlich später noch passend benannt und mit sinnvoller Funktion ausgestattet werden müssen, aber es entsteht ein vollständig lauffähiges Musterprogramm, auf dem sich leicht aufbauen lässt.
 
Und so gehts:
  1. Entwicklungsumgebung hier herunterladen (4 MB).
  2. Mirana.zip in einem Verzeichnis mit Schreibrechten entpacken (z. B. C:\ oder C:\Software, besser nicht C:\Programme oder so ähnlich, da unter Window 7 oder höher hier meist die Schreibrechte fehlen). Dabei wird ein Verzeichnis Mirana erzeugt.
  3. Öffnen des neu angelegten Verzeichnisses Mirana mit dem Windows-Explorer, die Datei Mirana.exe (rotes M) mit der rechten Maustaste auf den Desktop ziehen und „Verknüpfungen hier erstellen“ wählen.
  4. Mirana.exe über diese Verknüpfung starten.
  5. In Menü „File“ Menüpunkt „New (Wizard)…“ wählen.
  6. Hier die Einstellungen nach Wunsch ändern, mit „Vorschau“ überprüfen, dann auf „Erstellen“ klicken.
  7. Das erstellte Programm mit Taste F5 oder Klick auf das rote R starten und testen.
  8. Über Menüpunkt „Build / Compile“ eine selbständig ausführbare Exe-Datei erstellen.
     
Die Programmiersprache Mirana ist eine interaktive Skriptsprache, die unter anderem Elemente aus BASIC, C und Matlab (bzw. Matlab-Ähnliche wie Scilab, Octave, Freemat ...) in sich vereinigt und auch objektorientierte Programmierung erlaubt. Ihre Syntax ist bewusst einfach und leicht verständlich gehalten, gleichzeitig kann sie auch sehr mächtig sein. Um zum Beispiel ein lineares Gleichungssystem aus komplexen Zahlen mit 500 Gleichungen und 500 komplexen Unbekannten zu lösen genügt eine Zeile mit 5 Zeichen, die Berechnung kann dann aber einige Sekunden dauern:
 X=A\Y
Oder um über tausende gemessener Punkte x[i], y[i] eine Näherungsparabel P zu fitten genügt:
 P = y/[x^2; x; x^0]
Auch eine Grafik ist schnell erstellt:
 x=[-20:0.1:20]:Plot(x,sin(x)/x)
oder ein Bild:
 Plot Fractal(Matrix(400,400,0.007,0x32)-0.7) fmod 5,1
Ein einfaches Hallo-Welt-Programm kommt mit einer Zeile aus:
 MsgBox "Hello, world!"
 
Durch einen integrierten Assistenten (Wizard) kann mit wenigen Mausklicks ein lauffähiges Programm mit dialogbasierter Benutzeroberfläche erstellt werden.

Auch Code von anderen Programmiersprachen wie C kann per DLL-Aufruf, COM/OLE- oder DDE-Schnittstelle eingebunden werden, außerdem ist die volle Windows-API bei Bedarf auch direkt zugänglich.
 

Mit der Version 1.45 sind viele Neuerungen hinzugekommen:

  • Hochgenaue Zahlen
    Das können Gleitkommazahlen mit Tausenden oder Millionen von Dezimalstellen sein oder exakte Ganzzahlen beliebiger Größe, solange der Speicher ausreicht.

    Bei Konstanten genügt das Voranstellen von 0h wie 0h2^0.5 = 1.4142135623730950488016887242096980786, oder man verwendet Hnum(), um eine hochgenaue Zahl mit einer einstellbaren Genauigkeit zu erzeugen. Die Fakultät von z. B. 40 erhalt man mit HnFn("!",40), Pi auf 1 Million Stellen genau mit HnFn("pi",!Limbs[1e6]) oder !pi[1e6], z. B.
     WriteFile "pi.txt",#.!pi[1e6]:CloseFiles  ;dauert etwa 20 Sekunden

    Mit HnFn("RndPrime", 1024/32) wird eine zufällige 1024 Bit große Primzahl (über 300 Stellen) erzeugt, wie sie für Verschlüsselungen benötigt wird. Weiterhin sind alle für eine RSA-Verschlüsselung nötige Operationen eingebaut. Ein Beispiel dazu gibt es in RSA.mac oder in der Hilfe zu CryptFile.
     
  • Kryptographische Operationen
    Verschlüsselung von Dateien und Dateinamen, verschiedene Verschlüsselungs- und Hash-Methoden wie AES-256, AES-192, AES-128, SHA-256, SHA1, MD5, sowie dem selbstentwickelten Verfahren 7KE, das einen 7-kBit-Schlüssel verwendet, teilweise schneller als AES-256 ist und bei dem sich beim Verschlüsseln die Anzahl Bytes nicht ändert. Dazu ist auch ein separates Kommandozeilenprogramm mit Source-Code beigefügt (7KE.zip).
     
  • Neue Dialog-Elemente
    Das Steuerelement RichText erlaubt die Anzeige und Eingabe von formatiertem Text mit Hyperlinks. Desweiteren ist das Einbetten von Bildern und Diagrammen möglich, Fenster können Pulldown- und Popup-Menüs enthalten und Callback-Funktionen können nun das Verhalten von Fenster und Steuerelementen modifizieren oder für DLL-Aufrufe benutzt werden.
     
  • Neue mathematische Funktionen
    Mit Fn() erlaubt den Aufruf einer Reihe spezieller mathematischer Funktionen, meist aus dem Bereich der Funktionentheorie mit komplexwertigen Argumenten, und Darstellung des Ergebnisses mit Plot als farbcodiertes Bild, bei dem das Argument die Farbe und der Logarithmus des Betrags die Helligkeit und Sättigung festlegen. Die Modul-Funktion J kann etwa so dargestellt werden:
     
     Plot Fn("J",Array(801,401,0.002,0x76)),"Title=Modul-Funktion J"
     
     

     
  • Neue Funktionalität bei String-Listen, Strings ohne Längenbegrenzung (BigString), neue Diagramm-Optionen wie logarithmische Skalen, Marker mit verschiedenen Formen und Farben, Säulen-Diagramme, die Ausführung von externen Funktionen mit langer Laufzeit mit einem Timeout oder in einem separaten Thread, und vieles mehr.
     
  • Vektoren können nun auch 64-Bit-Ganzahlen und 80-Bit-Gleitkommazahlen enthalten und mit der höheren Genauigkeit rechnen.
     
  • Neue Debug-Funktionen wie Hexdumps, SetStopCond (um eine Stop-Bedingung zu setzen), Konsolenausgaben (z. B. ?\C\T"Hallo Welt"|Pause 1000|?\X), Finden von zusammengehörenden if/else/endif, ...
     
  • Durch Komprimierung beim Kompilieren werden ausführbare Programme kleiner.


Ab der Version 1.50 existiert von Mirana auch eine 64-Bit-Version. Das ist hier neu:

  • Zusätzlich zur 32-Bit-Version gibt es jetzt auch eine 64-Bit-Version. Diese Version kann viel mehr Speicher verwalten und ist etwas schneller, aber auch etwa größer.
    Ihre Komponenten sind an der "64" vor der Dateierweiterung zu erkennen - wer nur die 32-Bit-Version benötigt, kann diese Dateien löschen.
    Mirana-Programme funktionieren in der Regel ohne Änderung in beiden Versionen, werden aber externe DLLs eingebunden, müssen dafür die passenden Versionen vorhanden sein.
     
  • Das Computeralgebrasystem PARI/GP kann nun in Mirana integriert werden. Damit können in der Mirana-Konsole dieselben Befehle wie in der GP-Konsole verwendet werden oder entsprechende Befehle in Mirana-Programmen eingebaut werden und die Ergebnise in Mirana übernommen und dargestellt werden.
    Für Genaueres in der Mirana-Hilfe "PARI/GP" in der Suche eingeben.
     
  • Unterstützung von Unicode-Zeichen in Dialogen und Dateinamen (3-Byte-Codes), sowie lange Pfadnamen (> 260 Zeichen).
     
  • Kryptographie per Elliptische Kurven (ECC), es können vordefinierte Domänen wie die beim Bitcoin benutzte secp256k1 verwendet werden oder eigene erstellt oder von academic-signature.org geladen werden (mit Schlüsselgrößen von bis zu 1033 Bit getestet), wobei PARI/GP Funktionen bereitstellt, um geeignete Parameter zu finden.
     
  • Das Menü der Mirana-Oberfläche ist durch eigene Programme erweiterbar, die auch durch Tastenbefehle aufrufbar sind (ExtMenu.ini).
     
  • Spezialzeichen können nun direkt in Strings eingebettet werden, z. B. "/" für Zeilenumbruch oder "9" für TAB:
    "Erste Zeile"/"Zweite Zeile"9"zweite Spalte"
     
  • Eine Reihe neue Befehle sind dazugekommen wie VectZip, Append, CalcSHA u.a. mit SHA-512 (als Beispiel das Entschlüsseln von Truecrypt-Datenträgern), ClipboardRead, ClipboardWrite, ExternFn, ExternObj, R64R, TryCmd, TryStr, ...

 

Downloads:
  Mirana.zip      (Version 1.50 vom 29.03.2022)
  Mirana145.zip  (Version 1.45 vom 30.04.2020)
  Mirana138.zip(Version 1.38 vom 28.10.2013)
  Tutorial

 

Links:
  Blog: Fremde Programme automatisch steuern
  FraktaLab
  Combolit

 

Feedback: