14

趣味のプロジェクトのためだけに、LFS ベースの Linux ディストリビューションを開始しようとしています。私はいくつかの非常に非標準的なタスクを実行する予定であり、そのほとんどはディストリビューション内のほぼすべてのスクリプトの変更を伴います。(主に init スクリプトですが、パッケージ マネージャー スクリプトの簡単なセットも作成します。) 私はこれまで標準から大きく外れており、動的型付け言語 (perl、 python、bash、その他は優れていますが、私の得意分野ではありません)、実際に変数を宣言したインタープリター言語を誰かが知っているかどうか疑問に思っていました.

4

5 に答える 5

7

通常、静的に型付けされた言語はコンパイル済み言語です。その理由は、型の静的分析はかなり高価であり、処理しているすべてのコードを詳しく調べる必要があるためだと思います。それを行った後、そのすべての情報をファイルに書き込まないのはもったいないと感じます。そうすれば、次回は同じことをする必要がなくなります。したがって、すぐにコンパイルされた言語になります。

一方、コンパイルされた言語を「コンパイルされていない」言語に変えるのはかなり簡単です。コンパイルの結果をどこにも保存せず、直接実行します。このようなラッパーを提供するコンパイラの 1 つに、Haskellの標準コンパイラである GHC があります。ソース ファイルに追加#!/usr/bin/runhaskellして、直接実行することができます。そして、標準から大きく外れることを計画しているので、Haskell は完璧に適合しているように思えます ;)。ただし、すべての「コンパイル時間」分析と最適化は無料ではないため、スクリプトの起動時間がかなり長くなることが予想されます。

Haskell はシェル スクリプト用に作成されたものではなく、関数型言語であるため、これまで見たことがない場合は、慣れるまでに時間がかかる場合があります。しかし、構文上のオーバーヘッドはほとんどなく、関数型言語の強みは抽象化であるため、シェル スクリプトを楽しくするライブラリを作成できなかった理由がわかりません。実験的な Haskell shellもいくつかありますが、実際のソリューションというよりも概念実証のようです。

一般に、すべての型分析のオーバーヘッドはかなり大きいと思いますが、お気に入りの静的に型付けされたコンパイル済み言語を選択し、その言語でrunhaskell記述されたスクリプトを実行するようなラッパーを探すことをお勧めします。

于 2009-02-16T03:20:18.530 に答える
2

F#は、「型の安全性、簡潔さ、パフォーマンス、表現力、およびスクリプト」の組み合わせを提供します。

于 2009-02-16T02:35:04.537 に答える
2

クイックグーグル。F3、javaFX スクリプト、Linden Scripting Language (セカンドライフ用スクリプト)、最初の回答のコメントとは異なり、F# はスクリプト言語として使用できます http://blogs.msdn.com/chrsmith/archive/2008/09/12/ scripting-in-f.aspx

Felix、Tuga、CFGScript、Talc、Angelscript など、クイック検索以上のものがあると推測しています。

ダグラス

于 2009-02-16T03:31:00.830 に答える
2

グルーヴィー。デフォルトでは、動的でダックタイプです。ただし、静的型付けもサポートしています。

于 2009-02-17T15:21:13.003 に答える
0

お気に入りのシェルで「typeset」コマンドを調べてください。bash と ksh93 はどちらも、整数と文字列を強制したり、参照 (変数変数) を使用したりできます。ksh93 を使用すると、浮動小数点演算を実行したり、属性を持つオブジェクトを使用したりすることもできます。静的型付けは、init スクリプトなどで役立つものを実際に購入するわけではありません。主に、ファイルを読み取ってシステム コマンドを実行することになります。これは、シェルが本当に得意とすることです。O'Reilly の「Korn Shell の学習」の本を読んでから、他のすべての Unix が愚かに設計されていると判断する前に... ;)

于 2009-02-16T21:01:16.500 に答える