もういっそプログラム言語から自作しようって [転載禁止]©2ch.net
言語名は言語作り始める前に決めなきゃディレクトリ名が定まんないんだよな。
でも言語を作り始めないとそもそもどんな名前が相応しいかが定まんない。 なんでやねん
開発コードとお披露目するときの名前が違うくらい何じゃい
それに実装系はあくまで実装系だ 言語を作るって実際は何を作るの?
もし、私が40年間どうてなら イオナズン習得。
というテキストを読み込んで、IAA32のコードを吐けばいいだけ? >>43
過去に言語作った人の拡張のようなものじゃないの?
前提として実行する仕組みを定義記述して計算という手順が予測可能な
タイプであって、予測不可能な非孤立系(熱力学用語)になるような
情報が拡散するけど秩序があるような類を考える人はいないと思う。
どれも予測可能な孤立系の入力に対する出力をする計算でしょ。
データを統計して学習データから推論するそれも計算にすぎないし。 https://echo.2ch.net/test/read.cgi/tech/1482549747/l50
でも書いたけど、タートルを拡張した言語を作成中。
元は、QBに含まれていたのだが、
VBではサポートされなくなった。QBのルーチンを転用するためにVB用にタートルを作成した。
VBの今のバージョン(MSでDL可、何か月かは無料で使える)の使い方がさっぱりわからなくて、
FBに切り替えた。
VB時代に変な拡張(7,14,16セグ文字表示)をしたがために、FBでは処理しきれなくなって、
VBのタートルを移植中。
余力があれば、JISのOCR文字表示を可能とするタートルに手を出すかもしれない。
QBの頃プリンターとXYプロッターを出力デバイスとして使っていた。
だから、XYプロッターというタートル出力デバイス用ルーチンが残っている。 もう言語増やさないで
その労力かけるならデザインソフト付きのGUIライブラリーでも作って撒いてよ みんなデザインソフト付きのGUIライブラリーを作るのに適した言語を求めてる訳だ 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
OWSM2 Cでライブラリ作るのが一番間違いない
他の言語からも間違いなく使える 文字列なんだが、CやPythonはダブルクオーテーションの文字列では途中の改行を許可してない
たとえば
a = "bcd"
とかおkだが
a = "bc
d"
はできない
これはなぜだろう?
技術的にはダブルクオーテーションの中で改行を許可するのは難しいことじゃないと思うんだが
なにか理由でもあるのだろうか テキストとかストリングとか文字が主役な処理系があると良いなとか思った
1文字を64ビットくらいに拡張してコードの領域でテキストor仮想マシンのコードか識別する
コードが肥大しまくるけど妥協するって事でww TeX、言いたいことっは判ります
基本人間が密に情報のやり取りをする場合テキストが主体です
TeXやwebページのソースはパースして情報を取り出す必要があります
単純にパースを省略できると面白いかなと、それだけ >>10
ああいうのやる人達って
教えられて出来るとか
そういう次元じゃないんだよ
最初からいきなり出来る
みたいな人達なんだよ
ビルゲイツは最初例によって二人で会社起こしてbasicインタープリターをガンガン作り捲くって儲けた
天才ってのは
最初から普通の人達が見えない解らない事を
最初から知ってて理解している
頭が良い程度では適わない
人生を掛ければ誰でも出来るけど
それだと仕事にはならない
趣味ならいくらでもお好きに Haskellのパターンマッチとか型システム?面白い!
プリプロセッサとかにしてパクれないかな いま作ってる言語に型システム入れようか迷ってる
動的型付けも好きなんだよなぁ >>58
すぐに行動するかどうかじゃね
考えれば考えるほど、完成から遠のくからなぁ >>60
C系統のガチコードを吐き出す系
ゆるふわスクリプト系?
それで決まる気がする
自分はHaskellの型システムをパクリたいなとか思ってる
x:xsみたいな[1,2,3] を x=1, xs=[2,3]みたいな分割も面白い >>62
ゆるふわ系のインタプリタ
インタプリタに型システムってありかな >>63
いま丁度Haskellのパターンマッチングと型システムによる記述を調べてる
コードが恐ろしくスッキリして恐らく高度なアルゴリズムを短くほんと短く書ける
次にElixilの実用主義に基づくゆるふあな仕様に驚いている所
ElixilはゆるふあでインタプリタとVMマシンへのコンパイラ最近はJITの機能でCPUのコードへのコンパイルもやるとか
あ〜パクリ鯛ww どっちにしろElixirも知らない俺(´・ω・`) ところでif文やfor文を式にするメリットってなんだろう
Elixirもif文は式らしいが 確か式の戻り値がうっとうしいけど
たいてい戻り値の代入先にワイルドカード指定して捨てられる
_ = if .....
elixir なら _ =に展開するマクロで構文を拡張すれば良いかも
基本最低限の構文しかないので
メリット
if の外で結果を受け取る(捕捉)できるので1行内で継続への判断と分岐が出来る? result = if a < 3 { 3 } else { 4 }
みたいな文がかけるってことだろうけど if (if (flag) { return false; } else { return true; }) { return true; }
こういうのが出来るようになるのか
カオスw c++の3項演算子って関数みたいだね
true ? 1:3
a=a+(bool? 1:2)+6;
が
a=a+6;
if(bool) {a++;}else{a+=2;}
な感じ? visual sutadio 2019 C++ 最適化最高が結構いいコード吐き出す
具体的には関数のローカル変数をインデックスとかに利用すると
レジスター化されてる
とりあえずインタープリタ
言語仕様はパクリまくる予定 if (for (i=0; i<10; i++) { i }){ for (i = 0; i < 4; i++) { }}
これもうよくわかんない
if文やfor文を式にするメリットってなんや・・・ 字句の切り出しと構文木用のLISTを実装
if,else,while,==,@など基本的なキーワードと記号を切り出しも実装
次はパースして抽象構文木を生成(AST:Abstract syntax tree)
四則演算とカッコかな 浮動小数を字句解析して値作るの大変なんだが
こんな狂った仕様とは今まで使ってて知らなかったわ・・・ 既存のライブラリに投げたい気分でいっぱい
でも完全セルフホストめざすからがんばる 最初はintしか実装しないが良いかも
浮動小数点の形式を限定して実装するとか
0.1
0.1e0
1e-1
1.0e-1
種類あるね
[+|-],{0~9},[.,{0~9}],[e,[+|-],{0~9}] // []オプション {}繰り返し ~|~は~or~ ,は継続の規定
こんな感じ?
整数or実数で小数点の有無
小数点が無くても指数部の有無で整数or浮動小数点が分かれる
あと極端に桁が多いと自動的に浮動小数点
場合によってbignum?かな そうそのbignumが必要なところです
intならでかすぎな値は即エラーだけど
浮動小数ってとりあえず受け入れて、近似値求めるみたいなんですよ
知らなんだ
bignumってどんだけ大変なんだろ
たぶん割り算が肝なんだろう まあ、実装は後回しが良いよ
全体から言えば部分でキモから外れているので
結局型を処理系に内部実装するか否かなんです
典型的な内部実装型=bool [true|false]
外部実装enum = mybool [mytrue|myfalse]
float = struct {
int sign
long long unsigned .....
....
}
みたいな >>79
その発送はイカン
人に頼ることも覚えなさい プロパティに代入するか
クラスメソッドを実行するだけの言語仕様で
名前空間は自由に設定且つ
名前空間の末端だけジェネリック型にしたら
ポインタ無しでかなり書きやすくわかりやすい
言語が作れそうです
しかしポインタを忘れてPHPで実装を始めたら
挫折しました GAMEインタプリタでGAMEコンパイラが書かれいていたなぁとふと思い出した。
GAMEを拡張した独自仕様なのを作って遊んだりしたっけな。 (」゚ロ゚)」(」゚ロ゚)」(」゚ロ゚)」オオオオオッッッ