「コンパイラ・スクリプトエンジン」相談室16 (648レス)
1-

1
(5): デフォルトの名無しさん [sage] 2014/07/20(日) 11:16:19.37 ID:p6eMVAxc(1/2) AAS
プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。

Wikiのまとめページ
http://www6.atwiki.jp/compilerandscriptengine/
549: デフォルトの名無しさん [] 2016/05/04(水) 03:53:55.73 ID:INW31x/s(1) AAS
昔のC言語みたいに、floatとdoubleに分けるメリットは、
今の時代にはないよな?
550: デフォルトの名無しさん [sage] 2016/05/04(水) 03:59:22.27 ID:NIqCX6OH(1) AAS
むしろ half の出番さえ出てきてる時代。
551: デフォルトの名無しさん [sage] 2016/05/04(水) 10:09:50.25 ID:wjUC1pj0(1/3) AAS
役割っていうのは受動的な考え方であり縦割り行政的でありfunctionの適切な代替表現ではない
roleは与えられた仕事をただこなすだけというイメージ
このとき、与えられる対象、つまりデータやオブジェクトがあり
担当個所をroleするという感じ
role ≒ class であり、role ≠ function

何にも縛られず自由なfunctionとroleでは思想が違う
functionは立場や部署間を飛び越えて連携して機能するイメージ
胸熱であり、自分の仕事をこなすだけのroleなどと一緒にされては困る

function( a, b, c, d );
a.role( b, c, d );
552: デフォルトの名無しさん [sage] 2016/05/04(水) 10:16:54.82 ID:wjUC1pj0(2/3) AAS
例えば、日本は縦割り行政的であり、役人的であると言われ(role)
一方で、アメリカは横のつながりが強く、機能的だと言われる(function)
このように、機能と役割は対立する概念として扱われている言葉であり、思想が違う

日本の映画やドラマなんかでよく
「それは自分の仕事じゃないのでやりません」とか
逆に「自分たちの管轄だから余所者は入ってくるな」とか
役割的発想は悪いことのように扱われるのが常
逆に主人公たちは部署間を飛び越えて機能的に行動すると決まっている
553
(1): デフォルトの名無しさん [sage] 2016/05/04(水) 12:07:39.94 ID:p+LvbHBp(1) AAS
もうちょっとプログラマ的喩えにしようぜ。

procedure=大域環境に対して参照と破壊をするもの
function=環境を参照せず、戻り値は引数にのみ依存するもの
closure=固有の環境を持ち、その環境に対して参照と破壊をするもの
どれも意味が違う。

functionとroleはクラスとインスタンスくらい意味が違うと思う。
554: デフォルトの名無しさん [sage] 2016/05/04(水) 23:28:44.89 ID:wjUC1pj0(3/3) AAS
歯車でいえば
複数の歯車が上手く連携して動いている様を機能していると言うし
個々の歯車に着目してそれぞれが自分の仕事をしている様を役割をこなしているという

手続き的に時系列に沿って考えると
個々が役割を果たした結果、全体として機能がもたらされて、また別の大きな役割を担う・・・という風に
卵が先か鶏が先か、みたいなところがあって、双方の視点はどちらも重要で
同時に扱ていかなければならないわけだけど
区別して扱われる別の視点であり、function = roleとしてしまうのは単純にセンスないというか早合点
functionとroleの考え方の微妙な違いは非常に重要で
最初の出発点が違うことで資本主義と社会主義など、時としては戦争が起こる場合もある
(つまりは、資本主義と社会主義は鶏が先か卵が先か、functionが先かroleがという思想の違い
 functionはまさに空気のようなもので、人と人をつないで機能させるお金を重視している
 roleはまさに人そのもの、その役割に主体を置いている)
functionをroleと言ってしまうのは教養がないと言われても仕方がない
自分の思考が今何に着目していて何を考えているか把握しておかないと大変なことになる
頭がよくなりたければ囲碁が良い
囲碁は碁石そのものにも着目しなければならないし、碁石と碁石の境界にも着目しなければならない
それぞれで見え方が全く変わってくるし、同時に考えなければならない
頭の体操に良い
「物」と「事」は別のものだけど、「物事」という言葉があるように同時に考えなければならないこともしばしば
555: デフォルトの名無しさん [sage] 2016/05/04(水) 23:40:58.82 ID:ug5Kipfy(2/2) AAS
関数ってそんなに抽象的な意味を持ってたのか
インプット&アウトプット、リクエスト&レスポンスの手続きくらいに見てたよ
556: デフォルトの名無しさん [sage] 2016/05/05(木) 00:33:21.20 ID:dh4q1EnN(1/2) AAS
関数は二者以上の関係を表しており、二者以上の関係性が何か機能をもたらす
というより、逆算して、機能をもたらせるように、二者以上の関係性を作るのがエンジニアの仕事
だから関数もfunctionだし、機能もfunctionという
電子部品だって、回路を組んで組み合わせなければ機能しない
「関」という字が示すように、関係性は何事においても常に重要で
数学や物理はすべて関係性を数式で表すことで成り立っている
「1」という数字が何か意味を持っているというよりは、「1」と他の数字との関係性が「1」自身の立場や性質を決めている
関係性は非常に高等で、目に見えないものであるが故、尊いものとされている
というのも物事の関係性を紐解いたり、逆に利用できたり、機能的に考えることができる人は
当然、役割的思考も出来るものとされているから
役割的発想は馬鹿にでもできる
アメリカが赤のことを悪とするのもこのためで、そいうった悪の思想から自分たちを守るために
右翼の人たちは「保守」と呼ばれる
赤の思想のほうが理解しやすく馬鹿でも少年でもわかり
簡単で広まりやすいので、自分たちの尊い考え方や社会を
守らなければ、占領されてしまうという恐怖感からある種過剰な防衛をしている
年を取れば自然と物事の関係性の重要さに気付くものだから基本保守になる
そういったことを一通り分かったうえであえて福祉にも力を入れるというのが今の先進国のあり方
順番を誤ってはいけない

会社でいえば自分の役割しかしない人は指示待ち人間といわれ歓迎されない
一方で機能的に考える人は他者とのコミュニケーションを図り、関係を大事にし、目的を達成する努力をする
両方の考え方ができる人は機能的発想に加えて他者への配慮もするし、リーダー的

何事も一つの思想だけでどうにかしようとしないほうが良い
例えば「1」をオブジェクトとしてとらえるという、某言語のような考え方は全くする必要ない
数学の「1」にそのような意味はないし、全てをオブジェクトとして再認識して再構築する必要はなく
マルチパラダイム言語で良い
1+2は単に1と2を足すという解釈でよく、1に+2というメッセージをどうのこうのという意味不明な再解釈はいらない
考え方を統一しようとする必要はなく、そういった偏った思想をしても良いことはない
557: デフォルトの名無しさん [sage] 2016/05/05(木) 01:08:08.43 ID:dh4q1EnN(2/2) AAS
アメリカは自由自由いつも言ってるが、いったい何に対しての自由なのか、
どこを目指しているのかというと
自分が生まれながら背負ったroleから自由である、ということ
この辺、人種差別の問題とか貧困の問題とかが出てくる

一方で、社会に対する自分の機能性のようなものは常に非常に重視される
要らなくなったらすぐに首を切られるし、厳しい

とにかく機能機能機能機能、個人に対して厳しい、機能性のない人はいりません
しかし、生まれ持ったroleからの自由はサポートしましょう

その意味で、移民は受け入れる、ただし機能性のある人だけ
558: デフォルトの名無しさん [sage] 2016/05/05(木) 01:19:48.20 ID:AqKMDGmp(1) AAS
この長文君きもちわるい…
559: デフォルトの名無しさん [sage] 2016/05/05(木) 01:42:26.59 ID:3/paarxc(1) AAS
>>553
ぼくの作ってるものは偽C言語でグローバル変数もあるから
定義的にはプロシージャが適切なんだろうな

それでロールについてはもう少し考えてみるつもりだけど、
malloc()そのものがfunctionとして、malloc()を何につかうのかがroleなのかな
けれど関数の多くはライブラリとかAPIではなく単なるサブルーチンのような気がして
サブルーチンはロールだとも思うのよね
560: デフォルトの名無しさん [sage] 2016/05/05(木) 02:12:56.28 ID:Jo4WiHb1(1) AAS
単に役割って意味なら、変数にだってそれぞれの役割があるよね。
561: デフォルトの名無しさん [sage] 2016/05/05(木) 05:12:54.36 ID:qzGbsflZ(1) AAS
相手するなよ...
562: デフォルトの名無しさん [] 2016/05/06(金) 09:34:30.45 ID:pdJO182a(1) AAS
最適化をサポートする機能を付けるのも、面倒だよね。
昔のVC++の売り文句が、「極限までの最適化」などとうたっていたが、
ビルドの時間も長すぎ、他の作業が中断...というオチ付きだったし。
563: デフォルトの名無しさん [sage] 2016/05/06(金) 09:52:38.91 ID:WbxBcPoP(1) AAS
神聖なるビルド専用マシンを他の作業に使うのがおかしい

現在だって動画のレンダリングする連中はそんな感じだろう
564: デフォルトの名無しさん [] 2016/05/07(土) 02:02:54.76 ID:lPvt8ROe(1) AAS
ウチの勤め先には、ビルド専用マシンはなかったな。うらやましい。
565
(1): デフォルトの名無しさん [sage] 2016/05/07(土) 12:49:01.06 ID:TEQEM2qu(1) AAS
GoogleにはGOMAって名前のビルド専用クラスタ(2〜300台くらい繋げた奴)があるってよ
566: デフォルトの名無しさん [sage] 2016/05/07(土) 14:21:44.92 ID:0EiVc3To(1) AAS
そして各チームは一台でも多くのマシンリソースを確保するため
他チームの保有区域への侵略に明け暮れているという
567: デフォルトの名無しさん [sage] 2016/05/08(日) 10:02:36.39 ID:jHRrSElx(1) AAS
>>565
クラウドサービス提供するぐらいだからマシンあまってんだろうなぁ
568
(1): デフォルトの名無しさん [] 2016/05/08(日) 13:05:39.75 ID:EAH4Xwpx(1) AAS
俺の予想では、Googleやマイクロソフトに太刀打ちできるIT企業って、
日本国内にはないような気がする。
社員か誰かが遊び半分みたいな感じで作り上げた「Googleパックマン」
には、参ってしまったからな。あれは凄かった。
569
(1): デフォルトの名無しさん [sage] 2016/05/08(日) 13:17:39.53 ID:EkxZMrhh(1/2) AAS
>>568
日本どころか全世界でみてもAppleくらいしかいねぇよ
570: デフォルトの名無しさん [sage] 2016/05/08(日) 13:26:01.54 ID:cY3IZjLs(1/2) AAS
DeNA/GREE ほほう
dwango なかなか
CookPad おもしろそうな
DMM 話じゃないか
571: デフォルトの名無しさん [] 2016/05/08(日) 13:27:27.42 ID:cY3IZjLs(2/2) AAS
>>569
Amazon「…」
572
(2): デフォルトの名無しさん [sage] 2016/05/08(日) 21:29:02.01 ID:mw6lNm2M(1) AAS
囲碁のSmart Go Formatというのをパースしたいのですが
読みやすいサンプルプログラムないですか。
573: デフォルトの名無しさん [sage] 2016/05/08(日) 22:54:46.20 ID:EkxZMrhh(2/2) AAS
http://senseis.xmp.net/?SGFFile
574: 572 [sage] 2016/05/09(月) 19:17:09.28 ID:QYIZFGji(1/2) AAS
ありがとうございます。
読んでみます。
575: 572 [sage] 2016/05/09(月) 20:40:18.09 ID:QYIZFGji(2/2) AAS
RubyGemあんのか。
うまくいけば自分で書かなくてもイケるかも。
576: デフォルトの名無しさん [] 2016/05/10(火) 13:55:45.68 ID:aTks4HJk(1) AAS
うちみたいに規模が小さいと、データセンターも活用するしか
手がないね。自前のデータセンターなど、夢のまた夢だ。
577
(1): デフォルトの名無しさん [] 2016/05/13(金) 11:38:51.94 ID:6Wa+P3Ox(1) AAS
ビルド専用マシンがあるなら、テスト専用マシンもないとおかしいよね。
共にあるのがソフトハウスの標準なの?
うちでは、とてもそこまでの予算をつけてもらえないのだが。
578: デフォルトの名無しさん [sage] 2016/05/14(土) 01:19:35.08 ID:spK37znF(1) AAS
投資に見合うリターンがあれば普通は投資するだろう。
579: デフォルトの名無しさん [] 2016/05/14(土) 02:25:57.07 ID:guvuQQ9l(1) AAS
ビルド兼テストマシンなら普通にある
580
(1): デフォルトの名無しさん [sage] 2016/05/14(土) 03:51:37.38 ID:9OGuGONK(1) AAS
>>577
できたてほやほやの会社で開発が二人しか無い我が社なんかなんもないぞw
awsをスポットで借りると割と安いビルド環境作れるからそういうの使ってるけど。
581: デフォルトの名無しさん [] 2016/05/14(土) 10:30:08.43 ID:zu3iiide(1) AAS
>>580
それじゃあ、資本金10万円の株式会社と、何ら変わらんだろww
582: デフォルトの名無しさん [sage] 2016/05/14(土) 21:33:12.49 ID:GqFlaCrO(1) AAS
客先常駐の偽装派遣か?
583
(1): デフォルトの名無しさん [] 2016/05/16(月) 00:37:06.74 ID:HJQsGNoE(1) AAS
DOS全盛の時代の時は、「遊び半分で、コンパクトなコンパイラでも
作ってみようかな」
という気も起きたが、これだけ複雑怪奇なWindows全盛時代となっては、
もう手軽に手を出せるレベルじゃないよね。
584: デフォルトの名無しさん [sage] 2016/05/16(月) 09:26:54.72 ID:HysSRgR+(1) AAS
今ならWASMターゲットでどうよ
585: デフォルトの名無しさん [] 2016/05/17(火) 02:22:11.57 ID:1Hk6wPoo(1) AAS
遊びでコンパイラを作るなら、linux用なら、作れば誰か使って
くれるかも...。
586: デフォルトの名無しさん [sage] 2016/05/17(火) 06:47:28.73 ID:uw1YLM9D(1) AAS
>>583
別にコンパクトなコンパイラのハードルは上がってないと思うが
無償でほぼフルセットの開発環境が入手できる今では意味が薄れた
って言うのならわかるけど
587: デフォルトの名無しさん [sage] 2016/05/17(火) 12:49:07.23 ID:PnBEFQO4(1) AAS
CとかJavaから呼び出す組み込みスクリプトなら需要ありそう
javascriptトランスレータはHaxeがよくできてるけど作ってみたい
588: デフォルトの名無しさん [sage] 2016/05/20(金) 02:16:34.68 ID:t8k86oX2(1) AAS
>>356
Forth, Postscript「必要です」
589: デフォルトの名無しさん [] 2016/05/20(金) 23:34:10.65 ID:tlYSnHy5(1) AAS
言語仕様作成と、コンパイラ本体は自分で作り、
デバッガだけ外注して作ってもらうというズルはありえる?
高性能なツールにするには、かなり手間がかかると思うのだが。
590: デフォルトの名無しさん [sage] 2016/05/21(土) 00:37:18.20 ID:jbF82omc(1) AAS
デバッガってevalさえあれば簡単なものはできそうだが
高機能てなると難しいのかな
591: デフォルトの名無しさん [sage] 2016/05/21(土) 10:16:04.77 ID:4qmWB+Wj(1) AAS
その「高性能な」デバッガに何を求めてるかにも依るような。
592: デフォルトの名無しさん [] 2016/05/21(土) 18:55:29.44 ID:r6iEFhaA(1) AAS
不具合な動作が時々あるソフトで、たまたま高性能なデバッガに
分析させたら、ソースもないのに、分析されたソフト内部のソースを
画面に表示し、
「ヌル文字列を格納するための領域に、別の文字を格納し、領域を
破壊しています」
とか何とかメッセージを出した例まであるからな。
こういうデバッガは値段が高いだろ。
593: デフォルトの名無しさん [sage] 2016/05/23(月) 19:41:11.89 ID:h8XB4lAi(1) AAS
頭悪そうだね
594: デフォルトの名無しさん [] 2016/05/26(木) 00:28:35.77 ID:R75m14iA(1) AAS
予約語テーブルに、どのくらい詰め込めば良いかが悩ましい。
あまり増やしすぎると、C++と同じ道をたどるだけだし。
595: デフォルトの名無しさん [sage] 2016/05/26(木) 00:40:19.83 ID:SiuzFNyH(1) AAS
C++と同じ道をたどれれば最高じゃないか
596: デフォルトの名無しさん [sage] 2016/05/26(木) 07:23:51.59 ID:6iXHX0kN(1) AAS
てか、C++ って機能のわりに予約語は少ない方じゃね?
597: デフォルトの名無しさん [sage] 2016/05/27(金) 15:25:55.45 ID:xTig+h/w(1) AAS
アンダーバー付きの予約語は嫌だ
598: デフォルトの名無しさん [] 2016/05/27(金) 21:42:12.01 ID:DWOzzldt(1) AAS
俺はiostream関数も嫌だな。
599: デフォルトの名無しさん [sage] 2016/05/27(金) 23:33:16.53 ID:64E4c/Qq(1) AAS
抽象関数に実装なし・マーカーとか、書けばわかりやすいのに、
func(){ } = 0

とか、意味不明なことをやって、キーワードを減らしている
600: デフォルトの名無しさん [] 2016/05/31(火) 21:45:44.53 ID:0yna7kxs(1) AAS
#include <PANAMA_PAPERS.Lib>
main()
{
for(Datsuzei = 0; Datsuzei <= mugendai; Datsuzei++)
}

こんな予約語やライブラリがあれば、俺のお金も無限に増える
はずなのに。消費税など、上げないでもらいたいよな。
601: デフォルトの名無しさん [sage] 2016/05/31(火) 22:03:33.81 ID:TRYwrF1a(1) AAS
お金が無限に増えたらジンバブエみたいになるぞ・・・・・・
602: デフォルトの名無しさん [sage] 2016/05/31(火) 22:10:48.45 ID:JlIYRfhe(1) AAS
ジンバブエってdoubleが桁あふれしたんだっけw?
603: デフォルトの名無しさん [sage] 2016/06/01(水) 20:32:23.48 ID:72v9yor7(1) AAS
COBOL使ってたから大丈夫
604: デフォルトの名無しさん [sage] 2016/06/01(水) 22:55:39.98 ID:z/VHQJBB(1) AAS
ワロタww
せめてrubyにしてくだしあ
605
(1): デフォルトの名無しさん [] 2016/06/05(日) 02:48:48.10 ID:itWJAX/I(1/2) AAS
フリーのコンパイラって、信用できる?
遊び程度でソフト作るなら良いけど、フリーだとサポートも
期待できないし。
606
(1): デフォルトの名無しさん [sage] 2016/06/05(日) 03:05:17.84 ID:wHhH7979(1) AAS
gccもclangもjavacもc#も信用ならんって分野ももしかしたらどこかにはあるのかもな
607: デフォルトの名無しさん [] 2016/06/05(日) 03:35:16.04 ID:itWJAX/I(2/2) AAS
gnuのように、ソースが公開されていてもやばい部分もあるのかな?
608: デフォルトの名無しさん [sage] 2016/06/05(日) 09:08:18.42 ID:n7k60ruZ(1/2) AAS
事故った時の補償の話なら先に契約で決めておくしかない
どうしても必要なら補償付きのお高いメーカー製を使えばいい

そこまで気にしないなら適当に人気のやつを選べばいい
ただし最適化を強めにすると地雷を踏むリスクが高い
609: デフォルトの名無しさん [sage] 2016/06/05(日) 09:10:42.69 ID:n7k60ruZ(2/2) AAS
ライブラリとかOSとかに比べればコンパイラ自身のバグは極めて少ない
ただし最適化を強めにすると(ry
610: デフォルトの名無しさん [] 2016/06/05(日) 14:53:16.00 ID:D97p9ZEl(1) AAS
最適化有効にしてバグるのも大抵そのプログラムのバグだから
611: デフォルトの名無しさん [sage] 2016/06/11(土) 01:39:10.14 ID:cDt3abig(1) AAS
>>605
有料でもサポートしてもらえる範囲は限られてる
612: デフォルトの名無しさん [] 2016/06/11(土) 06:06:42.00 ID:MaD03lMp(1) AAS
今考えたら昔のN88BASICも、実は凄かったんだな。
コンパイラを作りの前の基礎教養として、価値があると思う。
知識が多いほうが有利だし。
613
(1): デフォルトの名無しさん [] 2016/08/06(土) 21:46:00.33 ID:pVg13zPK(1) AAS
グラフィックライブラリは、やたら予約語の文字数が長くてウンザリ
した経験があるな。わかりやすくコンパクトな予約語で良いのに。
614: デフォルトの名無しさん [sage] 2016/08/06(土) 22:54:17.43 ID:Jz+gSdkD(1) AAS
予約語?
615: デフォルトの名無しさん [sage] 2016/08/22(月) 17:08:41.63 ID:oW9zLe2W(1) AAS
昔のBASICは名前空間みたいな整理はされてなくて
ライブラリに相当する部分も予約語として扱ってたんだよ
616: デフォルトの名無しさん [sage] 2016/09/13(火) 22:37:20.41 ID:0YzbOJ/I(1) AAS
HSPとかもそうだな
617: デフォルトの名無しさん [sage] 2016/10/17(月) 13:00:51.48 ID:Vg9Wd9rs(1/2) AAS
>>613
高々COLORとかPOINTでしょ?
PHIGS辺りのサードパーティライブラリと勘違いしてないか
それともCLSに比べたら長いって話?
618: デフォルトの名無しさん [sage] 2016/10/17(月) 13:06:46.54 ID:Vg9Wd9rs(2/2) AAS
パラメーターがダラダラ長いっていうのなら分かるんだけどな
タートルグラフィック以前の設計で
カレントペンオブジェクトって概念がまだないから
619: デフォルトの名無しさん [sage] 2017/03/20(月) 21:03:09.17 ID:FgPIWm6o(1) AAS
haskellのdo構文
620: デフォルトの名無しさん [] 2017/05/15(月) 00:51:21.49 ID:SFBD2YKR(1) AAS
Amazon で「Flex & Bison」で検索したらこんなの出て来て驚いた。
http://amzn.asia/2GvBmZs
621: デフォルトの名無しさん [sage] 2017/05/15(月) 18:24:26.90 ID:DeqHpRpX(1) AAS
たけーなオイ
622: デフォルトの名無しさん [] 2017/06/26(月) 19:12:09.78 ID:6CpK5SZQ(1) AAS
>>606
実際コンパイラはソフトウェア検証の好対象
CakeMLとか
623: デフォルトの名無しさん [sage] 2018/02/16(金) 06:02:50.68 ID:W1XJdyx1(1) AAS
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
624: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2018/03/02(金) 16:53:16.42 ID:R33psDql(1) AAS
http://www.softantenna.com/wp/review/tiny-interepter-and-compiler/
625: デフォルトの名無しさん [] 2018/05/23(水) 22:10:50.46 ID:Au5e7VGg(1) AAS
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

RSQUI
626: デフォルトの名無しさん [] 2018/07/04(水) 23:52:46.72 ID:gFgZc5FG(1) AAS
CL2
627: デフォルトの名無しさん [sage] 2018/07/16(月) 22:53:08.29 ID:oM74pxCP(1) AAS
テスト😊
628: ◆QZaw55cn4c [sage] 2018/09/04(火) 14:52:35.77 ID:lJV/Mb/R(1) AAS
形式言語の祖・生成文法のチョムスキー90歳の言葉
http://www.videonews.com/marugeki-talk/908/
629: デフォルトの名無しさん [] 2019/03/21(木) 17:55:33.49 ID:YzD9JPpd(1) AAS
esprima/escodegenなんかでJS ASTを扱ってる人に質問。
ASTを舐めて変数の型を推論したものをノードに紐付けて記録しておきたいんだけど、JS ASTの場合
ASTの中にメタデータをぶら下げるのと外で持つのとどっちが一般的なんだろう?
中に持つ場合はどこにどういうプロパティ名でぶら下げるか、外の場合はノードの位置を特定する
パスのようなものが必要になるけどそれをどうするか。
630: デフォルトの名無しさん [sage] 2021/02/24(水) 20:03:26.16 ID:1LsYaFKv(1) AAS
test
631: デフォルトの名無しさん [sage] 2021/06/01(火) 15:18:43.13 ID:IjgT90G7(1/2) AAS
お前ら元気か?
Prologおじさんが2003年頃からPrologの人気がなくなったとか言ってたんだが、2chのせいではないかと思ってきてみたぜ。
めっちゃ過疎ってるじゃないか。というか2chいつの間にか5chになってたんだな。

Prologは操作的意味論をそのまま書き下して言語作れるので良いぞw

% e.pl
e(I, I) :- integer(I).
e(E1+E2, I) :- e(E1, I1), e(E2, I2), I is I1+I2.

:- e(1+2+3+4,R),!,writeln(R).
:- halt.

というファイルを作って
$ swipl e.pl
10
だ。こんな短く言語実装できる言語は他にないぜw
632: デフォルトの名無しさん [sage] 2021/06/01(火) 15:25:20.70 ID:IjgT90G7(2/2) AAS
Prologなら型システムを作るのもお手の物だ。
t(I,int):- integer(I).
t(E1+E2,int):- t(E1,int), t(E2,int).
:- t(1+2+3,T),!,writeln(T).
:- halt.
これだけ。Prologは関数というか述語のネストをできなくして
述語の引数は全てクォートとされた式のように扱われ、
変数がアンクォートな感じに書ける。
故にLispのS式より複雑な優先順位付きの演算子を使った式が扱えて便利だ。
ってことで、暇な奴がいたら使ってみて欲しいんダゼ。
じゃあなw
633: デフォルトの名無しさん [sage] 2021/06/23(水) 07:02:20.99 ID:HYjDIJ1V(1) AAS
Prolog興味あるけどCとかJavaとかPythonとかのメジャーどころと違って教科書みたいなアカデミックな本しか見つからないから並以下グラマの俺には無理
634: デフォルトの名無しさん [sage] 2021/10/13(水) 08:22:07.76 ID:Qk99MJFD(1) AAS
岩波のprologのプログラミング作法読んでみたら?

第5世代が成果をオープンソースに出来ていればなあ
635: デフォルトの名無しさん [sage] 2023/07/05(水) 03:42:10.87 ID:e/cCV0Lv(1) AAS
>>311
人は死後49日は漂うと云われているな
636: デフォルトの名無しさん [sage] 2023/09/24(日) 11:28:47.13 ID:Iodo3XEj(1) AAS
インタプリタの作り方 −言語設計/開発の基本と2つの方式による実装− - インプレスブックス
https://book.impress.co.jp/books/1122101087
637: デフォルトの名無しさん [sage] 2023/10/06(金) 08:06:12.42 ID:NmxdZAP9(1) AAS
バックエンドの作り方はググれば解説が出てくるが
“実用的な”バックエンドの作り方はさっぱりわからない
RX用のバックエンドが欲しいんだがなー
638: デフォルトの名無しさん [] 2023/11/11(土) 06:58:34.37 ID:uMtlBPBy(1/2) AAS
double a = 2.71828;

というコードをコンパイルするときに、2進浮動小数点数に変換しないといけないと思います。
2進数浮動小数点数に丸めるときに、四捨五入(0捨1入)したり、一番近い2進浮動小数点数に変換したりといろいろな方法がありますが、その方式を決定するのもコンパイラの仕事ですか?

計算機イプシロンを ε_M とします。
2進浮動小数点数に丸めるときの方式として、四捨五入(0捨1入)が採用されているかどうかを確かめる方法として、

eps = 2^(-52)
1 + (1/2) * eps

を計算させて、それが 1 + eps に等しいかどうかをみるという方法が数値解析の本で紹介されています。

1 + (1/2) * eps

を計算するときに、丸めとかで変な浮動小数点数になって、この紹介されている方法が実行できないとかないですか?
639
(1): デフォルトの名無しさん [] 2023/11/11(土) 07:01:57.70 ID:uMtlBPBy(2/2) AAS
あと、

double a = 2.71828 * 3.141592;

というコードがあったとき、

コンパイラは、 2.71828 を丸めた2進浮動小数点数と 3.141592 を丸めた2進浮動小数点数を掛けよという機械語に翻訳するんですか?
それともこんな簡単な計算はコンパイラで予め行って、その結果を a に代入するという機械語を生成するんですか?
640: デフォルトの名無しさん [] 2023/11/11(土) 08:35:32.43 ID:fuGMacjx(1/2) AAS
double a = math.E + path.PI;
641: デフォルトの名無しさん [] 2023/11/11(土) 08:37:19.10 ID:fuGMacjx(2/2) AAS
宿題は宿題スレへ
642: デフォルトの名無しさん [sage] 2023/11/11(土) 11:05:25.10 ID:5AzCeqvD(1) AAS
はい
あります
はい
場合によります(最適化という追加処理)
643: デフォルトの名無しさん [age] 2025/05/12(月) 14:33:58.90 ID:Zw0HuL6G(1) AAS
こういう言語作る系スレが廃れた原因は何だろう
644: デフォルトの名無しさん [sage] 2025/05/12(月) 15:01:28.97 ID:zCv6/zTu(1) AAS
>>639
そういうコードはコンパイル時に計算されて
実行時には計算結果がそのまま代入されるけど
「コンパイル時に計算」の際の浮動小数点数での計算の扱いには無頓着で良いと思ってるの?
645: デフォルトの名無しさん [sage] 2025/05/12(月) 15:24:34.24 ID:FL+WAIid(1) AAS
C言語にはfesetenvのような浮動小数点数プロセッサのモード切替関数もあるからな
コンパイル時に計算してしまうことでそれが反映されなくなるのもそれはそれで問題になるケースがある
646: デフォルトの名無しさん [sage] 2025/05/13(火) 09:27:05.77 ID:C/NhftFY(1) AAS
Rustなら多い日も安心
647: デフォルトの名無しさん [sage] 2025/06/30(月) 18:56:31.06 ID:YQWckD/5(1) AAS
あれから色々勉強しましたがCoq(Rocq)での証明や Prolog で操作的意味論や型システムを書くのは楽しいです。
11年かぁ。
$ apt install swi-prolog
$ vi e.pl
e(I,I):- integer(I).
e(E1+E2,I):- e(E1,I1), e(E2,I2), I is I1+I2.
:- e(1+2+3+4,I),writeln(I).
:- halt.
$ swipl e.pl
10
と簡単に言語を作れるので便利だし、最近はAIがプログラム書いてくれるし便利になったなぁ。
648: デフォルトの名無しさん [sage] 2025/07/12(土) 09:48:27.49 ID:tq7D7WVM(1) AAS
書き込み消えた気がする。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s