X



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

Wikiのまとめページ
http://www6.atwiki.jp/compilerandscriptengine/
0592デフォルトの名無しさん
垢版 |
2016/05/21(土) 18:55:29.44ID:r6iEFhaA
不具合な動作が時々あるソフトで、たまたま高性能なデバッガに
分析させたら、ソースもないのに、分析されたソフト内部のソースを
画面に表示し、
「ヌル文字列を格納するための領域に、別の文字を格納し、領域を
破壊しています」
とか何とかメッセージを出した例まであるからな。
こういうデバッガは値段が高いだろ。
0594デフォルトの名無しさん
垢版 |
2016/05/26(木) 00:28:35.77ID:R75m14iA
予約語テーブルに、どのくらい詰め込めば良いかが悩ましい。
あまり増やしすぎると、C++と同じ道をたどるだけだし。
0598デフォルトの名無しさん
垢版 |
2016/05/27(金) 21:42:12.01ID:DWOzzldt
俺はiostream関数も嫌だな。
0599デフォルトの名無しさん
垢版 |
2016/05/27(金) 23:33:16.53ID:64E4c/Qq
抽象関数に実装なし・マーカーとか、書けばわかりやすいのに、
func(){ } = 0

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

こんな予約語やライブラリがあれば、俺のお金も無限に増える
はずなのに。消費税など、上げないでもらいたいよな。
0605デフォルトの名無しさん
垢版 |
2016/06/05(日) 02:48:48.10ID:itWJAX/I
フリーのコンパイラって、信用できる?
遊び程度でソフト作るなら良いけど、フリーだとサポートも
期待できないし。
0606デフォルトの名無しさん
垢版 |
2016/06/05(日) 03:05:17.84ID:wHhH7979
gccもclangもjavacもc#も信用ならんって分野ももしかしたらどこかにはあるのかもな
0607デフォルトの名無しさん
垢版 |
2016/06/05(日) 03:35:16.04ID:itWJAX/I
gnuのように、ソースが公開されていてもやばい部分もあるのかな?
0608デフォルトの名無しさん
垢版 |
2016/06/05(日) 09:08:18.42ID:n7k60ruZ
事故った時の補償の話なら先に契約で決めておくしかない
どうしても必要なら補償付きのお高いメーカー製を使えばいい

そこまで気にしないなら適当に人気のやつを選べばいい
ただし最適化を強めにすると地雷を踏むリスクが高い
0609デフォルトの名無しさん
垢版 |
2016/06/05(日) 09:10:42.69ID:n7k60ruZ
ライブラリとかOSとかに比べればコンパイラ自身のバグは極めて少ない
ただし最適化を強めにすると(ry
0610デフォルトの名無しさん
垢版 |
2016/06/05(日) 14:53:16.00ID:D97p9ZEl
最適化有効にしてバグるのも大抵そのプログラムのバグだから
0612デフォルトの名無しさん
垢版 |
2016/06/11(土) 06:06:42.00ID:MaD03lMp
今考えたら昔のN88BASICも、実は凄かったんだな。
コンパイラを作りの前の基礎教養として、価値があると思う。
知識が多いほうが有利だし。
0613デフォルトの名無しさん
垢版 |
2016/08/06(土) 21:46:00.33ID:pVg13zPK
グラフィックライブラリは、やたら予約語の文字数が長くてウンザリ
した経験があるな。わかりやすくコンパクトな予約語で良いのに。
0615デフォルトの名無しさん
垢版 |
2016/08/22(月) 17:08:41.63ID:oW9zLe2W
昔のBASICは名前空間みたいな整理はされてなくて
ライブラリに相当する部分も予約語として扱ってたんだよ
0617デフォルトの名無しさん
垢版 |
2016/10/17(月) 13:00:51.48ID:Vg9Wd9rs
>>613
高々COLORとかPOINTでしょ?
PHIGS辺りのサードパーティライブラリと勘違いしてないか
それともCLSに比べたら長いって話?
0618デフォルトの名無しさん
垢版 |
2016/10/17(月) 13:06:46.54ID:Vg9Wd9rs
パラメーターがダラダラ長いっていうのなら分かるんだけどな
タートルグラフィック以前の設計で
カレントペンオブジェクトって概念がまだないから
0620デフォルトの名無しさん
垢版 |
2017/05/15(月) 00:51:21.49ID:SFBD2YKR
Amazon で「Flex & Bison」で検索したらこんなの出て来て驚いた。
http://amzn.asia/2GvBmZs
0622デフォルトの名無しさん
垢版 |
2017/06/26(月) 19:12:09.78ID:6CpK5SZQ
>>606
実際コンパイラはソフトウェア検証の好対象
CakeMLとか
0623デフォルトの名無しさん
垢版 |
2018/02/16(金) 06:02:50.68ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0625デフォルトの名無しさん
垢版 |
2018/05/23(水) 22:10:50.46ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

RSQUI
0626デフォルトの名無しさん
垢版 |
2018/07/04(水) 23:52:46.72ID:gFgZc5FG
CL2
0629デフォルトの名無しさん
垢版 |
2019/03/21(木) 17:55:33.49ID:YzD9JPpd
esprima/escodegenなんかでJS ASTを扱ってる人に質問。
ASTを舐めて変数の型を推論したものをノードに紐付けて記録しておきたいんだけど、JS ASTの場合
ASTの中にメタデータをぶら下げるのと外で持つのとどっちが一般的なんだろう?
中に持つ場合はどこにどういうプロパティ名でぶら下げるか、外の場合はノードの位置を特定する
パスのようなものが必要になるけどそれをどうするか。
0631デフォルトの名無しさん
垢版 |
2021/06/01(火) 15:18:43.13ID:IjgT90G7
お前ら元気か?
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
0632デフォルトの名無しさん
垢版 |
2021/06/01(火) 15:25:20.70ID:IjgT90G7
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
0633デフォルトの名無しさん
垢版 |
2021/06/23(水) 07:02:20.99ID:HYjDIJ1V
Prolog興味あるけどCとかJavaとかPythonとかのメジャーどころと違って教科書みたいなアカデミックな本しか見つからないから並以下グラマの俺には無理
0634デフォルトの名無しさん
垢版 |
2021/10/13(水) 08:22:07.76ID:Qk99MJFD
岩波のprologのプログラミング作法読んでみたら?

第5世代が成果をオープンソースに出来ていればなあ
0636デフォルトの名無しさん
垢版 |
2023/09/24(日) 11:28:47.13ID:Iodo3XEj
インタプリタの作り方 −言語設計/開発の基本と2つの方式による実装− - インプレスブックス
ttps://book.impress.co.jp/books/1122101087
0637デフォルトの名無しさん
垢版 |
2023/10/06(金) 08:06:12.42ID:NmxdZAP9
バックエンドの作り方はググれば解説が出てくるが
“実用的な”バックエンドの作り方はさっぱりわからない
RX用のバックエンドが欲しいんだがなー
0638デフォルトの名無しさん
垢版 |
2023/11/11(土) 06:58:34.37ID:uMtlBPBy
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

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

double a = 2.71828 * 3.141592;

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

コンパイラは、 2.71828 を丸めた2進浮動小数点数と 3.141592 を丸めた2進浮動小数点数を掛けよという機械語に翻訳するんですか?
それともこんな簡単な計算はコンパイラで予め行って、その結果を a に代入するという機械語を生成するんですか?
0640デフォルトの名無しさん
垢版 |
2023/11/11(土) 08:35:32.43ID:fuGMacjx
double a = math.E + path.PI;
0641デフォルトの名無しさん
垢版 |
2023/11/11(土) 08:37:19.10ID:fuGMacjx
宿題は宿題スレへ
レスを投稿する


ニューススポーツなんでも実況