問題タブ [concatenative-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
forth - Factorcode.org の Web サイトがダウンしていても、Factor バイナリを取得できますか?
更新 (2014 年 3 月 12 日):
factorcode、planet-factor、builds.factorcode、および concatenative のすべてのサイトが復活しました。ダウンロードが復活しました。サイトが別のホスト (Rackspace?) に移動され、大幅に刷新されたようです。
(これは、クローズドな質問と見なすことができます。)
Factor プログラミング言語の最新の Windows バイナリを入手しようと試みましたが、 factorcode.orgのWeb サイトがダウンしているように見えるという事実に困惑しています。
残念ながら、すべてのダウンロード リンクは、特にbuilds.factorcode.org
.
いつからこうなったかわかりませんが、初めてではないようです… 3月に入ってからダウンしているようで、 10月と12月にまたノイズが出ています。
Factor はオープンソースであるため、バイナリが別の場所にミラーリングされることを期待していました。しかし、かつて SourceForge にあったものはに削除されたようfactorcode.org
で、Factor のメインGitHub リポジトリも でホストされているようfactorcode.org
です。
バイナリを取得するにはどうすればよいですか? おそらく別の方法がありますか?
(追伸: これらの関連サイトもダウンしています: Concatenative.orgとPlanet Factor。)
私はかなりの量の Forth を使用しており、最近はFactorについてよく耳にします。Google がSlava Pestov (Factor の作成者) とDaniel Ehrenberg (Factor の開発で Slava と協力している) を雇ったように見えることを考えると、いわば「タイヤを蹴る」という話題が何であるかを見てみたいと思いました。
haskell - 連結 Haskell バリアントの作成: 適用と構成の優先順位
Haskell のように関数を適用するのではなく、関数名の連結は関数の合成と同じであるというのが本来の考え方である連結言語の基礎を学んでいます。
Joy、Forth、または Factor は後置、つまりスタック ベースを意味しますが、Om などの前置連結言語もいくつかあります。
Haskell バリアントは、合成の優先順位 (現在は 9) を関数適用の優先順位 (現在は 10) と交換する (または等しくする) だけで、理論的には連結言語になるのではないかと思います。
Haskell の値が引数のない関数にすぎない場合、関数の適用が関数の合成と異なるのはなぜですか?, 関数の適用は、引数のない関数で合成することと同じではありませんか?.
新しい合成演算子と適用演算子を異なる優先順位で定義し、括弧のない単純な連結が合成であると仮定することにより、連結構文を Haskell 構文に変換するインタープリターまたはプリコンパイラーを簡単な方法で作成することは可能でしょうか? これは単なる構文の問題だと思いますが、私は間違っていますか? Haskell で括弧や $ 演算子を使用しなければならない多くのケースを避けることができます。それとも、構文や優先順位だけでなく、もっと根本的な問題なのでしょうか?
ヒント: Haskell のすべての関数と演算子が接頭辞であると仮定すると、この演習では、中置記法とあらゆる種類の「構文糖衣」について忘れることができます。
julia - Julia でパフォーマンスの高い異種スタックを表現する方法
シンプルな連結言語 (Joy または Factor とも呼ばれます) を Julia の DSL として実装したいのですが、スタックを最適に表現する方法に悩んでいます。
データとプログラム コードの両方を表すスタックは、さまざまな種類のアイテムのシーケンスを保持できる必要があります。最も単純なケースでは、Int、Symbol、および再帰的にスタック (引用符で囲まれたコードを表す) です。プログラムは push! を多用します。そしてポップ!そのような異なるスタック間で値をシャッフルします。
Julia での明らかな実装の 1 つは、機能しますが実行速度がかなり遅いため、セル配列を使用することです。たとえば、次の Joy スタック[ 1 [ 1 2 +] i + ]
(評価結果は[4]
) は Julia で として実装できます
stack = Any[:+,:i,Any[:+,2,1],1]
。私の典型的なコードは次のようになります。
ただし、これは実行が非常に遅く、大量のメモリ割り当てを使用します。おそらく、そのようなコードは型安定性がないためです (これは Julia のパフォーマンスの大きなボトルネックです)。
C を使用して、スタックを共用体の配列 (またはリンク リスト) としてコンパクトに表現します。
しかし、Julia で異種スタックのこのようなコンパクトな表現を実現するにはどうすればよいでしょうか。また、型の不安定性を回避するにはどうすればよいでしょうか?