Frage

Ich bin hier um eine LFS-basierte Linux-Distribution nur für ein Hobby-Projekt zu starten. Ich plane, einige sehr Nicht-Standard-Aufgaben auf dem Tun, und das meiste davon wird sich ändern fast alle Skripte in der Distro einzubeziehen. (Hauptsächlich Init-Skripte, aber ich werde auch einen einfachen Satz von Paket-Manager Skripte schreiben.) Da ich wird diese von der Norm weit gehen werden, und da habe ich noch nie ein Fan von dynamischen typisierte Sprachen gewesen (Perl, python, bash und der Rest ist gut, aber eben nicht meine Stärke), ich habe mich gefragt, ob jemand von einer interpretierten Sprache kannte, die Variablen tatsächlich erklärt hat.

War es hilfreich?

Lösung

Schauen Sie in die „typeset“ Befehl in Ihrer Lieblingsschale. bash und ksh93 beide können ganze Zahlen und Strings, die Verwendung Referenzen (variable Variablen) erzwingen, etc. Mit ksh93, können Sie auch tun Gleitpunktarithmetik und verwenden, um Objekte mit Attributen. Statische Typisierung nicht wirklich kaufen Sie etwas Nützliches in Init-Skripte und ähnliches. Du wirst in erster Linie Dateien sein Lesen und Systembefehle ausgeführt wird - das ist, was die Schale wirklich gut ist. Nehmen Sie sich Zeit mit dem O'Reilly „Erlernen der Korn Shell“ Buch vor der Entscheidung, dass all die anderen Unix-Varianten sind ... dummerweise entworfen;)

Andere Tipps

Typischerweise sind die statisch typisierten Sprachen Sprachen zusammengestellt. Ich glaube, der Grund dafür ist, dass statische Analyse von Typen ziemlich teuer ist und man muss einen Blick in die Tiefe überhaupt den Code, den Sie verarbeiten. Nachdem Sie das getan haben, es wie eine Verschwendung fühlt nicht, dass alle Informationen in eine Datei zu schreiben, so dass Sie es beim nächsten Mal wieder nicht tun müssen. So können Sie schnell mit einer kompilierten Sprache enden.

Auf der anderen Seite, eine kompilierte Sprache in einem „nicht-kompilierten“ zu drehen ist ziemlich einfach. Sie speichern nicht nur die Ergebnisse der Kompilierung überall, aber sie direkt ausführen. Ein Compiler Ich weiß, dass bietet eine solche Wrapper ist GHC, die Standard- Haskell Compiler. Sie können #!/usr/bin/runhaskell in Ihre Quelldateien hinzufügen und sie dann direkt auszuführen. Und da Sie planen, weit weg von der Norm zu sein scheint Haskell wie eine perfekte Passform;). erwartet aber eine ziemlich große Startzeit für Ihre Skripte, weil alle „Kompilierung“ Analyse und Optimierung nicht frei ist.

Haskell ist nicht für die Shell-Scripting gemacht und es ist eine funktionale Sprache, so dass, wenn Sie es noch nie zuvor gesehen haben, könnte es einige Zeit dauern, sich daran zu gewöhnen. Aber es hat sehr wenig syntaktische Overhead und die Stärke der funktionalen Sprachen ist Abstraktion, so dass ich nicht sehen, warum Sie nicht eine Bibliothek erstellen könnten, die Shell-Scripting Spaß macht. Es gibt sogar einige experimentelle Haskell Shell , aber es scheint mehr ein Proof-of-concept ist als eine echte Lösung.

Generell würde ich sagen, der Aufwand aller Art Analyse von Bedeutung ist, aber ich würde Sie Ihre Lieblings-statisch kompilierten Sprache auswählen vorschlägt getippt und suchen Sie nach einem Wrapper wie runhaskell Skripte darin geschrieben auszuführen.

schnell Google. F3, JavaFX Script, Linden Scripting Language (scripting für die zweite Leben) Im Gegensatz zu dem Kommentar auf der ersten Antwort F # kann als eine Skriptsprache verwendet werden, http://blogs.msdn.com/chrsmith/archive/2008/09/12/scripting-in-f.aspx

Felix, Tuga, CFGScript, Talc, Angelscript, und es erraten ist mehr als die schnelle Suche.

Douglas

F liefert # eine Kombination von „Typsicherheit , Prägnanz, Leistung, expresivity und Scripting“.

Groovy. Standardmäßig ist es dynamisch, Ente typisiert. Sondern unterstützt auch statische Typisierung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top