【超高速】C/C++に代わる低級言語を開発したい 8 (364レス)
【超高速】C/C++に代わる低級言語を開発したい 8 http://mevius.5ch.net/test/read.cgi/tech/1345730580/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2012/08/23(木) 23:03:00.69 70年代、Cは生まれ、それから30余年、現代においてもなお、低レベルなシステム開発に広く使われている。 しかし、2010年の今、もしもCが発明されていなかったとして、低レベルなシステム開発のためのプログラミング言語を 新たに作るとしたら、Cとは違う言語になるだろう。少なくとも、全く同じにはならないはずだ。 そこで、このスレッドでは、 低レベルなシステム開発のためのプログラミング言語 を一から考えたい。 既存の言語を使って何かをすることが目的ではなく、新たなプログラミング言語を考えることが目的であるから、 「既存のXX言語を使えばいい。」という類の発言は無意味である。 「既存のYY言語のZZ機能は、WWと言う点で有用だから採用したい。」という発言は歓迎だ。 現代の一流のプログラミング言語研究者が、最先端の研究成果を盛り込んで、 一から低レベルなシステム開発のためのプログラミング言語を作るとしたら、どのような言語になるだろうか、 という観点で考えたい。 ◆前スレ 【超高速】C/C++に代わる低級言語を開発したい 7 http://toro.2ch.net/test/read.cgi/tech/1275235018/l50 http://mevius.5ch.net/test/read.cgi/tech/1345730580/1
238: デフォルトの名無しさん [sage] 2015/03/19(木) 21:48:47.69 ID:QTBsG6tP 高級言語を使いこなすってC++を使いこなすより大変じゃないのか? で結局パワーではC++に敵わない http://mevius.5ch.net/test/read.cgi/tech/1345730580/238
239: デフォルトの名無しさん [sage] 2015/03/20(金) 16:42:34.97 ID:sriWfzYS >>238 C++ほど大変な高級言語はなかなか無いと思うぞ http://mevius.5ch.net/test/read.cgi/tech/1345730580/239
240: デフォルトの名無しさん [sage] 2015/03/20(金) 19:26:50.44 ID:e2IVv9/F C++ほど変態な高級言語はなかなか無いと思うぞ http://mevius.5ch.net/test/read.cgi/tech/1345730580/240
241: デフォルトの名無しさん [sage] 2015/03/20(金) 22:14:20.35 ID:1BR7B8ZR C++ほど変変な高級言語はなかなか無いと思うぞ http://mevius.5ch.net/test/read.cgi/tech/1345730580/241
242: デフォルトの名無しさん [] 2015/03/21(土) 00:46:15.62 ID:m0LUk3nX c++のunsigned long 型の変数を >=0で評価するとーの値が存在しないので必ずTureになって forループが無限ループになるバグの説明が面白かった アセンブラならループのインデックスを引いたあとキャリーフラグ調べて分岐じゃないか ループ離脱の条件が単純比較じゃなくて条件式を容認してるからだろうけど http://mevius.5ch.net/test/read.cgi/tech/1345730580/242
243: デフォルトの名無しさん [sage] 2015/03/21(土) 02:54:48.44 ID:x0x7jBK5 Cの骨にテンプレートの肉を詰め、OOの毛皮を被った化物だよ 骨だけ使った料理もできるし肉を焼いてもいいし、毛皮からコートを作ったっていいが、 他人が作ったものはまだ蠢いているかもしれないから怖い。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/243
244: デフォルトの名無しさん [sage] 2015/03/21(土) 07:42:06.13 ID:zBl3Ii3W >>242 そもそもループカウンタにunsignedを使うこと自体、バグと言うべき話なのでわないかと・・・ http://mevius.5ch.net/test/read.cgi/tech/1345730580/244
245: デフォルトの名無しさん [] 2015/03/21(土) 10:14:12.91 ID:9V6972Qg 必ずTureになるのが1番の問題 http://mevius.5ch.net/test/read.cgi/tech/1345730580/245
246: デフォルトの名無しさん [sage] 2015/03/21(土) 11:05:05.60 ID:rA11USYH ×Ture ○True http://mevius.5ch.net/test/read.cgi/tech/1345730580/246
247: デフォルトの名無しさん [sage] 2015/03/21(土) 12:01:32.67 ID:/IY/BI0W while(true)で評価するとーの値が変化しないので必ずTureになって whileループが無限ループになるバグの説明が面白かった ループ離脱の条件が条件式だけじゃなくてbreakやreturnを容認してるからだろうけど http://mevius.5ch.net/test/read.cgi/tech/1345730580/247
248: デフォルトの名無しさん [sage] 2015/03/21(土) 14:50:37.16 ID:TeX2vL/Q 高級な変態というと・・・女体盛りで大トロとかヒラメの縁側を使う感じか。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/248
249: デフォルトの名無しさん [sage] 2015/03/21(土) 15:50:58.96 ID:xKri6eTm >>244 増えていくカウンタなら問題はない 減っていくカウンタでも 0 でループアウトするように組むのなら問題ない、a >= 0 とするから問題になる http://mevius.5ch.net/test/read.cgi/tech/1345730580/249
250: デフォルトの名無しさん [sage] 2015/03/21(土) 20:43:28.09 ID:zBl3Ii3W >>249 それはそうなんだが、勘違いしやすかったり、注意しないとバグの温床になりやすいことはしないのが基本だと思うんだが。 ループカウンタとして使うなら普通に int 使えよと。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/250
251: デフォルトの名無しさん [sage] 2015/03/22(日) 00:05:49.26 ID:SsX9i6KK C++/CLIはC++の顔してて勝手にスレッド作りやがる http://mevius.5ch.net/test/read.cgi/tech/1345730580/251
252: デフォルトの名無しさん [sage] 2015/04/13(月) 21:56:18.38 ID:1Ez10RQf FORTHという>>1の要件をほぼかなえる言語がある これをベースにすればよい http://mevius.5ch.net/test/read.cgi/tech/1345730580/252
253: デフォルトの名無しさん [sage] 2015/06/10(水) 13:56:59.28 ID:/kHDwUM2 while( c ) { ... c -= 2; } http://mevius.5ch.net/test/read.cgi/tech/1345730580/253
254: デフォルトの名無しさん [] 2015/06/10(水) 23:35:06.95 ID:bjmIAJs7 好き / “アセンブリ言語のみで言語処理系を作った話 // Speaker Deck” ttps://speakerdeck.com/nineties/bootstrap これ見て元気だせ 自分でも出来そうな気がするだろ 実際、大学あたりではcコンパイラの実装までやらせてるんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1345730580/254
255: デフォルトの名無しさん [sage] 2015/06/11(木) 02:58:17.97 ID:wwX+zBdZ >>254 簡単そうに書いてるけど、これ相当わかってる人でレベルが高い。 俺には1段階理解するだけで大変。自分で実装できる気がしない。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/255
256: デフォルトの名無しさん [sage] 2015/06/11(木) 18:03:31.89 ID:mzhQ9y6C >>254 たぶんこの人だね ttps://www.s.u-tokyo.ac.jp/ja/rigakuru/3384/ http://mevius.5ch.net/test/read.cgi/tech/1345730580/256
257: デフォルトの名無しさん [sage] 2015/06/13(土) 22:22:22.81 ID:ueb0hiNe あー、ドアドアの人? と思ったら違ったヽ(´ー`)ノ むかーし(20年ちょっと)、アセンブラに構造化マクロを追加して『生産性が超上がる!』って 謳ったPDS(今で言うフリーソフト)があったけれど、当時意味分からなかったなあ。 と言うかGCCの吐くアセンブラコードを読んで、自分で書くより綺麗でスッパリ諦めた(^^; http://mevius.5ch.net/test/read.cgi/tech/1345730580/257
258: デフォルトの名無しさん [] 2015/06/14(日) 01:34:40.73 ID:et+uySKI 少し前、x265のエンコードダーをアセンブラで記述してる人達の話題で プログラムを組む上で何が問題なのかって話題があって OSのシステムコールを行うとレジスターが壊れるのが気に入らないって事だった オレは重要なアルゴリズムに係わる高度なコーディング作業をしているのだから システムコール如きへの配慮で煩わしい事をさせるなってことかな システムコール用のレジスタ退避マクロなり システムコールをラップしてレジスタを退避復旧したり もう少し便利なアセンブラの処理系を作ってみたりしないのかな〜 既存コードとの互換性問題とかあるのかな アセンブラ関係のTool類はかなり保守的で目新しい道具類がガンガン使われる様子は少な目?? >>254の記事を読むと、コンパイラ系統ってリストへの変換ー>実行コード(アセンブラ)への還元って事が凄くよく判るんだよね 物凄く大雑把に言うと、LISP処理系への構文糖衣≒コンパイルする対象(プログラム塊) な構図 http://mevius.5ch.net/test/read.cgi/tech/1345730580/258
259: デフォルトの名無しさん [sage] 2015/06/20(土) 16:36:37.21 ID:lPLujLwf Objective-ASM http://mevius.5ch.net/test/read.cgi/tech/1345730580/259
260: デフォルトの名無しさん [sage] 2015/10/31(土) 22:45:31.32 ID:z7pRF+TT >>54 どこがスレ違いなんだ。 それどころか、このスレを建てること自体が間違ってるだろ。 それを指摘するのは正しいことだろ。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/260
261: デフォルトの名無しさん [sage] 2015/10/31(土) 23:17:02.36 ID:d1AV3Byr 54 :デフォルトの名無しさん [sage] :2013/04/07(日) 22:40:29.84 http://mevius.5ch.net/test/read.cgi/tech/1345730580/261
262: デフォルトの名無しさん [] 2015/11/01(日) 07:59:19.09 ID:xEvp3/ht VS2013のC++x64でアセンブラコードみてるんだけど かなり良さそうなコード吐き出している 問題はC++の仕様が大きいので他人の書いたコードが理解できないこと C++の仕様の大きさが問題ならC++のコードを吐き出すプリプロセッサ? みたいなものを企画してあとはC++にお任せが一番楽そうだね unionを使った偽装もキャストって呼ぶんだな &を使うリファレンスも別名とか名称変更とか説明があってやっと理解できた C++もC並みにフリーダムだからお行儀の悪いコードが書けてしまう 提案になってないな アイデアとしては、cpuやハードを直接叩く記述をする場合明確に宣言させて隔離とか _low_level_fuc みたいなキーワード導入してその内部のみ色々悪さが出来るとか これは運用の問題なので今のC++でも可能なんだろうけど pythonのサブセット、お行儀の悪いpythonとかpychonとかoppayとかwww C++の複雑さって仕様が大きくなって新たなキーワードを導入して何でもかんでも 詳細にテキストで記述しようとした結果じゃないかな 本来ライブラリなりフレームワークなりにお任せすべき部分までやらかしていると http://mevius.5ch.net/test/read.cgi/tech/1345730580/262
263: デフォルトの名無しさん [] 2015/11/01(日) 08:07:06.43 ID:xEvp3/ht Cの複雑さってint,char,とか扱う型の種類とサイズが多い事も理由っぽいので ここはきっぱりアルゴリズムを記述する為に扱える数値の種類を1,2種類に限定して そのほかはデーターベースの記録管理みたいに色々なコストをかけて 型変換なりレンジチェックなり圧縮なり手間隙かければ良いのでは? いっそ64bitサイズの何かで統一してしまう charもintも実数も全部64bitの何かw http://mevius.5ch.net/test/read.cgi/tech/1345730580/263
264: デフォルトの名無しさん [sage] 2015/11/01(日) 09:17:05.73 ID:v5UlfxKI >>261 単に型なしのオブジェクト言語使えばいいのでわないかと http://mevius.5ch.net/test/read.cgi/tech/1345730580/264
265: デフォルトの名無しさん [sage] 2015/11/11(水) 11:53:35.17 ID:iOpec/0o 型無しのオブジェクト言語って言えばluajitがかなり高速なんだよな、確か。 あれの仕様を上手く転用できないかな。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/265
266: デフォルトの名無しさん [sage] 2015/11/11(水) 20:22:43.34 ID:1hY3wyl+ 多分スクリプトとアセンブラの悪いとこ取りじゃね http://mevius.5ch.net/test/read.cgi/tech/1345730580/266
267: デフォルトの名無しさん [sage] 2015/12/14(月) 21:02:53.45 ID:LOQs7wcg Rustいつのまにかstableリリース出てたのか・・・ Swiftみたいな負の遺産に塗れたクソ言語に比べりゃ大分>>1の理想に近いと思うんだけど モジラってOSSの見切り早いし将来性が不安だわ http://mevius.5ch.net/test/read.cgi/tech/1345730580/267
268: デフォルトの名無しさん [sage] 2016/04/08(金) 01:45:14.02 ID:sej0xQjF void*最強って話か?w コンパイラが勝手にトレードオフして機能の一部をFPGAに突っ込んでくれよ http://mevius.5ch.net/test/read.cgi/tech/1345730580/268
269: デフォルトの名無しさん [sage] 2016/05/24(火) 08:42:53.66 ID:67ul01kR 高速とは無縁だけど多倍長整数ってあるよね これをビット単位でやるの、管理も緩く1ビットで1バイト使って管理 速度で無いけど全部の計算表現できるよね 文字列とかは考慮してないけど 色々考えた結果、変数の精度、byte,word,duble word,q... ここら辺がいかにCPUの効率都合に合わせた制限だってよく判る 制限して精度に条件が付いても効率と速度が欲しいって言う たった1ビットの多倍長数が扱えるだけで何でも表現できるなと思った。ww http://mevius.5ch.net/test/read.cgi/tech/1345730580/269
270: デフォルトの名無しさん [sage] 2016/05/24(火) 15:58:40.37 ID:AJNPSyjI せめてBCDにしれwww http://mevius.5ch.net/test/read.cgi/tech/1345730580/270
271: デフォルトの名無しさん [sage] 2016/06/02(木) 01:23:18.32 ID:RwzROqD7 何で10進数にしたがるかね http://mevius.5ch.net/test/read.cgi/tech/1345730580/271
272: デフォルトの名無しさん [] 2017/03/25(土) 08:50:12.87 ID:Wiqnaowk RustがC++に並ぶぐらい速くなってるみたいだけどRustのサブセットみたいなの作ったら良いのかね http://mevius.5ch.net/test/read.cgi/tech/1345730580/272
273: デフォルトの名無しさん [sage] 2017/04/03(月) 00:12:39.32 ID:Eo4f9wsY 修理するより買い換えた方が安いって話は多いが もはや解読不可能になったコードのメンテナンスに金は出すくせに 新しく作り直すのはNGってのは恐ろしいな 大手では比較的作り直しもするようだが http://mevius.5ch.net/test/read.cgi/tech/1345730580/273
274: デフォルトの名無しさん [] 2017/04/03(月) 00:14:37.85 ID:Eo4f9wsY もしあらゆる面でC++に勝る言語が出来たとしても、それが流行るかどうかは怪しい http://mevius.5ch.net/test/read.cgi/tech/1345730580/274
275: デフォルトの名無しさん [] 2017/04/03(月) 00:53:32.18 ID:OlsWZk+G >>272 なんでサブセット? http://mevius.5ch.net/test/read.cgi/tech/1345730580/275
276: デフォルトの名無しさん [sage] 2017/08/25(金) 04:46:53.19 ID:QVMMnsrU ネタがないんだね Cに代わるっておそらく劣化Cになるだろうし C++は現状仕様が巨大過ぎて大変な状態らしい 最後は、ライブラリーを移植するとき仕様差による移植性の低下をどうカバーするか問題がでる (ライブラリーなんて一から書いてられないから) ー> 結果現行のC++でも良いじゃん 設計とかコード書くときの作法が問題じゃねーのみたいに収束するのかな あとは、コードの様子を解析するツールやAIっぽい機能を備えた解析などを行うアシストツールが必要になりそう 10進数の需要って金銭関係や丸め切り捨ては四捨五入で行いたい方面に需要があるんかな、やっぱ http://mevius.5ch.net/test/read.cgi/tech/1345730580/276
277: デフォルトの名無しさん [sage] 2017/08/25(金) 11:22:12.03 ID:KodDhcxm 最近のC++は何を勘違いしたか高級言語気取っててウザイ。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/277
278: デフォルトの名無しさん [sage] 2017/08/25(金) 21:39:31.76 ID:BZOsNf+t 高級っぽく見える言語だな http://mevius.5ch.net/test/read.cgi/tech/1345730580/278
279: デフォルトの名無しさん [sage] 2017/08/26(土) 11:55:56.79 ID:lejZryYl トンキンではC++関係者は不審者に見えるらしいw http://mevius.5ch.net/test/read.cgi/tech/1345730580/279
280: デフォルトの名無しさん [] 2018/03/25(日) 14:11:56.44 >>3 >◆新言語でのリソース管理方針◆ > >・確保したリソースを明示的に後始末しなくても問題が発生しない >・何らかのメリットのために確保したリソースを明示的に後始末してもよい こういう魔法みたいなことってどうやったらできるんだろうね もちろん効率重視なのは言うまでもない前提条件として 数十〜数百マイクロ秒単位で使用元・使用先スレッドがガチャガチャ入れ替わる環境で http://mevius.5ch.net/test/read.cgi/tech/1345730580/280
281: デフォルトの名無しさん [] 2018/05/23(水) 20:03:50.70 ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 BTGPU http://mevius.5ch.net/test/read.cgi/tech/1345730580/281
282: デフォルトの名無しさん [] 2018/07/05(木) 01:37:35.74 ID:RfoszcD2 DKB http://mevius.5ch.net/test/read.cgi/tech/1345730580/282
283: デフォルトの名無しさん [] 2018/10/20(土) 20:00:04.70 ID:YPDT0Cqq Cは8進10進16進数が扱えるのに、何で2進数が扱えないんだろう。 ちょっとの工夫でどうとでもなるけど、やっぱ標準であると嬉しいなあ。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/283
284: デフォルトの名無しさん [sage] 2018/10/21(日) 14:55:24.25 ID:YTn6F4Fk 16進数の方が分かりやすいからじゃないの 1010000とか書かれても1の位置がどこかすぐに分からないし 0x50なら一目で分かるけど http://mevius.5ch.net/test/read.cgi/tech/1345730580/284
285: デフォルトの名無しさん [sage] 2018/10/21(日) 17:25:58.13 ID:3rYBWp0g gccはじめメジャーなコンパイラなら大抵は2進数リテラルは扱えるから よく使う処理系基準でいいでしょ http://mevius.5ch.net/test/read.cgi/tech/1345730580/285
286: デフォルトの名無しさん [sage] 2018/10/21(日) 20:17:45.60 ID:IbAoaMml C++では0bが使えるようになったけど、Cはまだなのか つか素直にC++使おう http://mevius.5ch.net/test/read.cgi/tech/1345730580/286
287: デフォルトの名無しさん [sage] 2018/10/21(日) 21:24:49.94 ID:y1FMkoBF 最近のc++は糞化拡張が止まらないから。 あくまでアセンブラの代替として使いたいのであって、ハード寄りのコードを書きたいのであって、 速度重視、メモリ効率重視が根底にあるのに、c++の仕様拡張してる奴らはただの言語オタクでうざい。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/287
288: デフォルトの名無しさん [] 2019/05/25(土) 11:08:30.63 ID:jbgB9jQg Rustが正解に近い。 メジャー化してエコシステムが充実すればいける。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/288
289: デフォルトの名無しさん [sage] 2019/06/03(月) 11:49:30.62 ID:561P/qAZ armcc, armclang, Linaro GCC ARMR コンパイラ armcc ユーザガイド http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472jj/index.html armcc は、標準 C および標準 C++ のソースコードを ARM アーキテクチャベースプロセッサのマシンコードにコンパイルする、最適化 C および C++ コンパイラです。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/289
290: 1 [] 2019/08/13(火) 23:00:51.64 ID:oTlgbS6H Rustが正解であることが確認されました。 10年弱に渡りお付き合いいただきありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/290
291: デフォルトの名無しさん [sage] 2019/08/21(水) 20:28:24.91 ID:6xsUkfpB 言語が 理解習得し易い 誤認間違い難い というのもお願いしたい http://mevius.5ch.net/test/read.cgi/tech/1345730580/291
292: デフォルトの名無しさん [] 2019/08/31(土) 17:50:09.35 ID:54Etlgy2 MIT「えっまた俺なんかやっちゃいました?」 julia、軌道に乗る http://mevius.5ch.net/test/read.cgi/tech/1345730580/292
293: デフォルトの名無しさん [sage] 2019/08/31(土) 22:20:26.54 ID:XxwPKKvU >>277 大本の思想がランタイム速度落とさずにできるかぎり高級機能入れてこう ってなところがあるんで自然といえば自然。 ある種の人体実験場みたいなところがc++の意義って気もする。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/293
294: デフォルトの名無しさん [sage] 2019/09/01(日) 01:01:46.09 ID:JdN5NInb >>288 バスト占い思い出した http://mevius.5ch.net/test/read.cgi/tech/1345730580/294
295: デフォルトの名無しさん [sage] 2019/09/01(日) 13:35:22.25 ID:gzRpR9B4 c++が示したことってのは結局 ランタイム速度 高級機能を追加 の2点だけ追求すれば馬鹿プログラマは寄ってくるってことなんだわ。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/295
296: デフォルトの名無しさん [sage] 2019/09/14(土) 20:38:11.35 ID:IbeHy12P どうみても今はコード書かない言語オタクが好き勝手に拡張してる。 C++にくだらん機能追加したいなら名前変えろよ。 C++系言語で普及した言語はJavaやC#などいっぱいある。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/296
297: デフォルトの名無しさん [sage] 2020/02/17(月) 23:02:27.37 ID:R0DiDWe7 Low* (Low star)という言語は型システムがすごいのでぜひ取り入れていくべき http://mevius.5ch.net/test/read.cgi/tech/1345730580/297
298: デフォルトの名無しさん [sage] 2021/10/27(水) 10:06:43.69 ID:XE3bmMwX 演算子オーバーロードって難読化だよね http://mevius.5ch.net/test/read.cgi/tech/1345730580/298
299: デフォルトの名無しさん [sage] 2021/10/28(木) 12:18:05.54 ID:VQB5DVZJ まあ、もともとCは最適化はあまりやらなくて、プログラマの意思をなるべく素直に伝えるという思想だしな。だから、a=a+1;とa++;は演算後の値は同じでもプログラマの意図は違う。前者は加算命令、後者はインクリメント命令に落ちてほしい。 コンパイラのエラーチェックも最小限で、チェックはlint使えって感じだし。 Rust屋の主張するメモリ安全なんかも「うっせえわ!黙って言う通りにやれ!」って感じ。 あぁ、キャリー/ボローフラグが使えたら良いなあって時はあるかな。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/299
300: ハノン ◆QZaw55cn4c [sage] 2021/10/30(土) 16:29:48.11 ID:nIglmucm >>299 >キャリー/ボローフラグが使えたら良いなあ ですよね、ローテート/シフトのときは特に http://mevius.5ch.net/test/read.cgi/tech/1345730580/300
301: デフォルトの名無しさん [] 2021/11/06(土) 14:48:01.13 ID:b1XdA94q int と size_t がいつも混在して面倒になる http://mevius.5ch.net/test/read.cgi/tech/1345730580/301
302: デフォルトの名無しさん [sage] 2021/11/26(金) 11:52:34.78 ID:ARqZ/fb1 勝手な整数拡張をやめてくれるある意味cより低級なcが欲しい パフォーマンス的にワード長で扱うのが良いというのもわかるが あえてintより小さい型で計算したい時というのはそれなりの理由があるからやるわけで その型内でオーバーフローしたら切り詰めずに素直に落ちろ http://mevius.5ch.net/test/read.cgi/tech/1345730580/302
303: デフォルトの名無しさん [sage] 2022/04/19(火) 01:58:13.78 ID:TThcYTpA しかしそこまで低級なところに降りていくとマクロアセンブラみたいなのが使いやすい感じになっちゃうんだよね。 言語上の表現がどういう機械語に対応付くのか意識するともう直接書いた方がええわ……となる。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/303
304: デフォルトの名無しさん [sage] 2022/04/19(火) 14:30:56.58 ID:1/h8QBeL 呼び出し前後のレジスタ退避と回復だけやってくれれば意外とアセンブラはほぼforthだよね http://mevius.5ch.net/test/read.cgi/tech/1345730580/304
305: デフォルトの名無しさん [sage] 2022/04/21(木) 17:35:30.02 ID:+ZjRtsOn forthは言語とマクロ用言語が同一言語なアセンブラだな gforthみたいなリッチ実装はコンパイル済の定義を参照するとx86の標準文法を曝け出しちゃってなんだかなぁ、と思う http://mevius.5ch.net/test/read.cgi/tech/1345730580/305
306: デフォルトの名無しさん [sage] 2022/04/21(木) 20:15:20.64 ID:O4XEE7U4 >>304 forthは呼び出し規約の抽象化じゃなくて、型と引数という概念を捨てて自由になった マシン依存性を排除するためにレジスタを抽象化した汎用dスタックに全ての命令が型と個数の解釈をモラルを守って作用することで成り立ってる (暗黙の)引数渡しに関してはオーバーヘッドは大きくないので普通はマシンの最大スカラー型 floatはさすがにfスタックがあるけど dスタックだけで複雑なデータ操作は厳しいから、最大スカラー型である事が保証されてるrスタック(生ハードウェアスタック)が一時領域に便利なのが闇 制御構造も戻りアドレスや添字を積むだけだから、うっかり積み残しがあると戻りアドレスやデータが添字代わりにインクリメントされ続けたり不可解な事に あとは拡張性が売りの癖に制御構造のポータブルな拡張が難しいのがな… もちろん制御構造と整合性のある単純な命令くらいは添えられてるのであくまで例だけど 指定回数ループをbreakするには最低で添字と戻りアドレスをpopする必要があるけど、たいてい実装拡張として積まれてるデータは不定、何回popしたらセグフォるか試すことになる 規格の制御構造には不備があるから(これは本当)うちの拡張を推奨ってのが普通の世界 制御構造すら定番がなくて、同じ言語といえるのかという疑問すら湧く http://mevius.5ch.net/test/read.cgi/tech/1345730580/306
307: デフォルトの名無しさん [sage] 2022/04/21(木) 21:15:26.12 ID:O4XEE7U4 >>305 コメント無くなってたり、埋め込んだ定義が等価な表現に置き換わってたりするから、seeは既存のコードを参照してるのでなくて、ブロブからforthコードへのディスアセンブラ(再構築) ワードを渡せば' でそのワードの指すアドレスは取れるけど、そこから何バイト読むかのオフセット指定をseeは取らない、かなりヒューリスティックだと思う seeで標準される開始-終了アドレスに、読みすぎてそうなら適当に足すか、途中で切れてるようなコードなら適当に足してaddr nbyte discloseと呼べば大体復元できると思う dis、+disとかも入ってたっけ まあ、具体的なレジスタやメモリの名前が分かるだけでforthコードとそんな変わらないという悲しさはあるが http://mevius.5ch.net/test/read.cgi/tech/1345730580/307
308: デフォルトの名無しさん [] 2022/07/30(土) 16:21:32.91 ID:paa5jUiA Nim++ http://mevius.5ch.net/test/read.cgi/tech/1345730580/308
309: デフォルトの名無しさん [sage] 2022/08/03(水) 08:36:38.78 ID:G37dUWbH 低級言語ならx64特化して構造化アセンブラみたいな感じで ちょっとオシャレだけどやってる事はほぼむき出しのレジスタ操作みたいな? http://mevius.5ch.net/test/read.cgi/tech/1345730580/309
310: デフォルトの名無しさん [sage] 2022/08/03(水) 11:55:01.67 ID:GLMdE3Py masm64でinvokeしまくれば http://mevius.5ch.net/test/read.cgi/tech/1345730580/310
311: デフォルトの名無しさん [sage] 2022/08/04(木) 05:27:08.29 ID:Xs8BUVRi 例えばループが多重化してループカウンタが複数必要な場合 作法としてRCXを使うけど、処理系が最適化で空いてるレジスタを割り当てたり 退避復帰をしつつRCXを使うとか 固定領域を確保してカウントに使用するとか自動でやってくれるみたいな プログラムコードは雰囲気コーディングだけど最終出力は忖度された何かみたいな感じ http://mevius.5ch.net/test/read.cgi/tech/1345730580/311
312: デフォルトの名無しさん [] 2022/08/04(木) 18:25:34.25 ID:+TMVVsOn アセンブリ並みの変態低級言語作る? http://mevius.5ch.net/test/read.cgi/tech/1345730580/312
313: デフォルトの名無しさん [] 2022/08/06(土) 14:07:02.72 ID:eSBCWCwI Nim++ http://mevius.5ch.net/test/read.cgi/tech/1345730580/313
314: デフォルトの名無しさん [sage] 2023/09/21(木) 12:59:48.22 ID:7twnyTUv もうそろそろ、おしで祭りや http://mevius.5ch.net/test/read.cgi/tech/1345730580/314
315: デフォルトの名無しさん [] 2023/11/01(水) 03:29:10.04 ID:5z6NYMjm Nim# http://mevius.5ch.net/test/read.cgi/tech/1345730580/315
316: デフォルトの名無しさん [] 2023/11/05(日) 10:42:59.68 ID:ol9bMVcc Rust++ http://mevius.5ch.net/test/read.cgi/tech/1345730580/316
317: デフォルトの名無しさん [sage] 2023/11/05(日) 16:32:02.05 ID:M+aCXIKU 最近のCPUのアセンブラはほとんどCと変わらないようだけど http://mevius.5ch.net/test/read.cgi/tech/1345730580/317
318: デフォルトの名無しさん [sage] 2023/11/06(月) 06:07:34.02 ID:bdWb9xgB 昔のCはアセンブラとほとんど変わらなかったから 差は縮まっていない なにも変わってない http://mevius.5ch.net/test/read.cgi/tech/1345730580/318
319: デフォルトの名無しさん [sage] 2023/11/06(月) 16:20:14.87 ID:cmjYyIPB 最近はむしろC標準が直接サポートしてない命令が増えてるからな ローテイトなんていまだにないし http://mevius.5ch.net/test/read.cgi/tech/1345730580/319
320: デフォルトの名無しさん [] 2023/11/11(土) 12:31:46.21 ID:fuGMacjx >>319 良いのが入荷 https://www.youtube.com/watch?v=P6KRbjoFdwY http://mevius.5ch.net/test/read.cgi/tech/1345730580/320
321: デフォルトの名無しさん [] 2024/02/11(日) 03:12:32.56 ID:morq3qnL >>294 Aカップが好きなアセンブラ君、食わず嫌いはいけません高級言語は恐くありませーん Bカップが好きなBASIC君、少しは毛が生えたけどまだまだ修行が足りません関数に興味はないのですか Cカップが好きな君は正解に限りなく近い。有象無象の言語はたくさん出てきたけれど結局Cが手ごろサイズで限りなく正解に近いです Jカップが好きな君は煩悩に振り回されっぱなしです。たまには太陽だけでなく月にも興味を持ちなさい http://mevius.5ch.net/test/read.cgi/tech/1345730580/321
322: デフォルトの名無しさん [] 2024/04/19(金) 10:13:34.89 ID:uD5nyH4z >>1 仮想アセンブラを作ることになるが、かえって誤ったハードウェアと勘違いしそうw http://mevius.5ch.net/test/read.cgi/tech/1345730580/322
323: デフォルトの名無しさん [] 2024/04/19(金) 10:14:46.38 ID:uD5nyH4z >>317 アセンブラがわからないのに語る変なやつw http://mevius.5ch.net/test/read.cgi/tech/1345730580/323
324: デフォルトの名無しさん [] 2024/05/02(木) 01:06:39.68 ID:f54xPIPf >>321 どうでもいい話だけど、J が Java のことを言ってるようにも見えるので 実際には J 言語てのがあるんだけどね J はJava や JS とは全く関係ない、APL (という言語) の派生言語で APL と違って特殊キャラクタを使用せず ASCII のみで記述可能にしたもの http://mevius.5ch.net/test/read.cgi/tech/1345730580/324
325: デフォルトの名無しさん [sage] 2024/12/11(水) 21:59:47.09 ID:bqdEzJrv >>1 そうして生まれたのがRust Cと同じことが出来つつCの諸問題を解決した インラインアセンブラも備えているのでCを置き換えられるようになった http://mevius.5ch.net/test/read.cgi/tech/1345730580/325
326: デフォルトの名無しさん [] 2025/03/24(月) 12:24:27.59 ID:tWxitKr9 >>325 let bits = vec![false; 32]; これでbitsのサイズが4バイトになってくれるような仕組みはRustにありますか? http://mevius.5ch.net/test/read.cgi/tech/1345730580/326
327: デフォルトの名無しさん [sage] 2025/03/24(月) 13:15:17.83 ID:a0wY9RFf >>326 https://docs.rs/bit-vec/ がいいかな use bit_vec::BitVec; fn main() { // 32bit全てfalseで作成 let mut bv = BitVec::from_elem(32, false); // 7bitおきにtrueセット for index in (0..32).step_by(7) { bv.set(index, true); } // 0, 7, 14 , 21, 28番目のbitがtrueになった assert_eq!(bv.get(0), Some(true)); assert_eq!(bv.get(1), Some(false)); assert_eq!(bv.get(7), Some(true)); assert_eq!(bv.get(28), Some(true)); // イテレータでtrueになってる位置のリスト let v = bv.iter().enumerate().filter_map(|(i, bit)| bit.then_some(i)).collect::<Vec<_>>(); assert_eq!(v, [0, 7, 14, 21, 28]); // 内部構造は標準でVec<u32>を使っているのでu32が1つ分 assert_eq!(bv.storage(), [0b_10000001000000100000010000001]); // バイト列にすると4バイト assert_eq!(bv.to_bytes().len(), 4); assert_eq!(bv.to_bytes(), [0b_10000001, 0b_00000010, 0b_00000100, 0b_00001000]); } http://mevius.5ch.net/test/read.cgi/tech/1345730580/327
328: デフォルトの名無しさん [sage] 2025/03/24(月) 13:30:34.57 ID:S5TsEiko CはPDP-11のアセンブラの高級言語化でしたっけ? 消えたアーキテクチャとは言え未だ有用ではありますが、現役アーキテクチャの8086-64やARMのソレとかの命令セットはどうなっているんでしょ? 多分基本命令そのものは大差ないと思うけど、マルチメディア拡張? MMXみたいな専用命令はCで直接記述出来ないですよね。 他にも、最近のナウいアーキテクチャは文字列をそのまま扱えるとか聞いて想像の範疇超えてます。 高級言語も楽で良いけど、そういうのは楽なアセンブラの上に構築出来ればそれで良いなあ。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/328
329: デフォルトの名無しさん [sage] 2025/03/24(月) 19:01:49.54 ID:/lNBwDBZ 25年位前のレスのコピペかよω http://mevius.5ch.net/test/read.cgi/tech/1345730580/329
330: デフォルトの名無しさん [sage] 2025/03/25(火) 03:40:11.48 ID:ztarSHRB >>327 なんか左右逆で気持ち悪い(bigendian/littleendianともちょっと違う) bv.set(31, true); bv.set(32, true); assert_eq!(bv.to_bytes(), [ 0b_10000001, // 0- 0b_00000010, 0b_00000100, 0b_00001001, 0b_10000000]); // 32- assert_eq!(bv.storage(), [ 0b_10010000001000000100000010000001, 0b_1]); http://mevius.5ch.net/test/read.cgi/tech/1345730580/330
331: デフォルトの名無しさん [sage] 2025/03/25(火) 08:18:52.12 ID:viWlYIzm >>329 すまない、オッサン通り越してお爺さんだから思想も古いんだ。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/331
332: デフォルトの名無しさん [sage] 2025/03/25(火) 08:41:39.56 ID:ztarSHRB >>327 ありがとう。参考になりました。 多倍長整数の論理演算でbit立てる方法があったので、 それを使ったら簡単で速度もそこそこ出たので満足しました。 >>327 さんのものは不採用です。 http://mevius.5ch.net/test/read.cgi/tech/1345730580/332
333: デフォルトの名無しさん [sage] 2025/03/25(火) 09:02:37.24 ID:4yBAp1pH >>330 ビットはそういうものだよ 普通にビット演算すればわかる let mut bits: u32 = 0; for n in [0, 7, 14, 21, 28, 31] { bits |= 1 << n; } // u32に詰めているからこうなる assert_eq!(bits, 0b_10010000_00100000_01000000_10000001); // bit順(index=0..)にバイトで得る assert_eq!(bits.reverse_bits().to_be_bytes(), [0b_10000001, 0b_00000010, 0b_00000100, 0b_00001001]); http://mevius.5ch.net/test/read.cgi/tech/1345730580/333
334: デフォルトの名無しさん [sage] 2025/03/25(火) 12:13:35.71 ID:2SmtLJ6z assert_eq!(bits.storage(), [0b_10010000_00100000_01000000_10000001]); の結果から想像するに assert_eq!(bits.reverse_bits().to_be_bytes(), [0b_10000001, 0b_00000010, 0b_00000100, 0b_00001001]); ではなく assert_eq!(bits.to_be_bytes(), [0b_10000001, 0b_01000000, 0b_00100000, 0b_10010000]); の方を期待するのは可笑しいのかなー 正直びっくりエンディアンですわ http://mevius.5ch.net/test/read.cgi/tech/1345730580/334
335: デフォルトの名無しさん [sage] 2025/03/25(火) 19:08:05.91 ID:d+t8RnIb byteやword単位のリトルエンディアンじゃなくて 1bit単位のリトルエンディアンだと思えば自然 http://mevius.5ch.net/test/read.cgi/tech/1345730580/335
336: デフォルトの名無しさん [sage] 2025/03/27(木) 07:21:00.91 ID:vU3T1Sq/ Rustのオペレーターオーバーロードについて質問です とりあえずtraitを使って let a: X = X::new(); let b: X = X::new(); let c = a + b; は出来たのですが let a = &X::new(); let b = &X::new(); let c = a + b; だと定義が無いと言われるのでtraitに&のバージョンを追加したら出来ました ところが let a = &mut X::new(); let b = &mut X::new(); let c = a + b; だとまた出来ないのでtraitに&mutバージョンを追加したら出来ました ところが let a = &X::new(); let b = &mut X::new(); let c = a + b; や let a = X::new(); let b = &mut X::new(); let c = a + b; や let a = &X::new(); let b = X::new(); let c = a + b; が全部出来ません こういうのはすべての組み合わせをtraitで作っておく必要があるのでしょうか? それとも一つの表現で全部定義してくれる仕組みは? http://mevius.5ch.net/test/read.cgi/tech/1345730580/336
337: デフォルトの名無しさん [sage] 2025/03/27(木) 09:14:29.90 ID:vU3T1Sq/ これかな https://stackoverflow.com/questions/57911001/how-to-combine-all-operator-overloading-combinations-into-a-single-trait-in-rust http://mevius.5ch.net/test/read.cgi/tech/1345730580/337
338: デフォルトの名無しさん [sage] 2025/03/27(木) 09:22:10.62 ID:UV4Rce1I >>336 >>337 ここに回答があるよ https://stackoverflow.com/questions/38811387/how-to-implement-idiomatic-operator-overloading-for-values-and-references-in-rus http://mevius.5ch.net/test/read.cgi/tech/1345730580/338
339: デフォルトの名無しさん [sage] 2025/03/27(木) 09:56:58.93 ID:vU3T1Sq/ ああこれinternalなのね macro_rules! add_impl とか macro_rules! forward_ref_binop (unop とか op_assign とかもあるけど) http://mevius.5ch.net/test/read.cgi/tech/1345730580/339
340: デフォルトの名無しさん [sage] 2025/03/27(木) 09:59:54.17 ID:vU3T1Sq/ これでいいのかな https://crates.io/crates/forward_ref_generic http://mevius.5ch.net/test/read.cgi/tech/1345730580/340
341: デフォルトの名無しさん [sage] 2025/03/27(木) 10:02:25.16 ID:vU3T1Sq/ ああこっちか https://crates.io/crates/forward_ref >>328 それは >>327 の中にリンクがあったので既視です?? http://mevius.5ch.net/test/read.cgi/tech/1345730580/341
342: デフォルトの名無しさん [sage] 2025/03/27(木) 11:15:21.43 ID:vU3T1Sq/ よさげだったけど&mutのが出来なかったorz http://mevius.5ch.net/test/read.cgi/tech/1345730580/342
343: デフォルトの名無しさん [sage] 2025/03/27(木) 11:35:25.37 ID:vU3T1Sq/ 結局自前でmacroコピペして&mutの定義も追加したらいけたわthx http://mevius.5ch.net/test/read.cgi/tech/1345730580/343
344: デフォルトの名無しさん [] 2025/03/27(木) 11:46:57.39 ID:HDQeQZ5r Copyトレイトは無闇に付けたくないな http://mevius.5ch.net/test/read.cgi/tech/1345730580/344
345: デフォルトの名無しさん [sage] 2025/03/27(木) 11:59:13.89 ID:JG6/gkrB Trait爆発ですね判ります http://mevius.5ch.net/test/read.cgi/tech/1345730580/345
346: デフォルトの名無しさん [sage] 2025/03/27(木) 12:14:45.69 ID:UV4Rce1I >>342 Addでは不変参照しか使わないから& mutは不要 & mutが必要となるのはAddAssignだがこれは& mut selfになる http://mevius.5ch.net/test/read.cgi/tech/1345730580/346
347: デフォルトの名無しさん [sage] 2025/03/28(金) 09:26:28.67 ID:VPiwRdmL Rust使ってても暗黙のCopyとかに無関心だと【超高速】名乗れなくない? http://mevius.5ch.net/test/read.cgi/tech/1345730580/347
348: デフォルトの名無しさん [sage] 2025/04/05(土) 10:41:53.71 ID:wy4OM/NR 包丁も食材も上手く使えないと料理は不味い http://mevius.5ch.net/test/read.cgi/tech/1345730580/348
349: デフォルトの名無しさん [sage] 2025/04/06(日) 07:52:19.40 ID:IvdHyMZx 料理が上手なヤツはRustは使わない http://mevius.5ch.net/test/read.cgi/tech/1345730580/349
350: デフォルトの名無しさん [sage] 2025/04/06(日) 23:21:04.80 ID:p+WNSwb1 >>347 暗黙のコピーが発生しまくる諸言語とは異なり RustではCopyトレイト実装型のみ暗黙のコピーが行われるので最もRustが好ましい 具体的にCopyトレイト実装型とは整数値やポインタおよび不変参照であり それらを用いた複合型は明示的にCopyトレイト実装することもできる ちなみに整数値などがなぜ暗黙のコピーが起きても構わないかというと CPUにとってそれらをポインタ経由で間接的に扱う方が遅くなるからであり値をコピーして用いたほうが速いため http://mevius.5ch.net/test/read.cgi/tech/1345730580/350
351: デフォルトの名無しさん [sage] 2025/04/07(月) 10:58:45.39 ID:fwcAlCQF はあ… http://mevius.5ch.net/test/read.cgi/tech/1345730580/351
352: デフォルトの名無しさん [sage] 2025/04/07(月) 12:23:44.19 ID:yN1PvO54 >>349 マにだって料理が得意な奴はいるだろ http://mevius.5ch.net/test/read.cgi/tech/1345730580/352
353: デフォルトの名無しさん [sage] 2025/04/07(月) 14:31:02.06 ID:w0rhHNCz >>350 お前レベル低過ぎ 黙ってろ http://mevius.5ch.net/test/read.cgi/tech/1345730580/353
354: デフォルトの名無しさん [sage] 2025/04/07(月) 14:50:26.71 ID:k98JYePi >>350で合ってるでしょ コストの係るものは明示的に.clone()しないとコピーできないし コストの係らないものはCopyトレイトのおかげで.clone()しなくてもコピーされるよ http://mevius.5ch.net/test/read.cgi/tech/1345730580/354
355: デフォルトの名無しさん [sage] 2025/05/02(金) 09:39:27.39 ID:k5bGwZZ0 Rustの最大の教訓は、どんな言語でも有名になればバカ(必ずしも頭が悪いわけではなく、本来その言語が想定しない用途に使おうとする奴も含む)が使うってことだろう Rustの仕様はそれほど効率が重要でない分野でテキトーに使おうとすると無駄なコピーが増えたりしてかえって非効率になりがちな面がある http://mevius.5ch.net/test/read.cgi/tech/1345730580/355
356: デフォルトの名無しさん [sage] 2025/05/02(金) 18:23:29.41 ID:kIVCyVUc >>355 Rustは明示的にclone()を呼んだりCopy実装しないとコピーされないから大丈夫だよ 暗黙にコピーされないから無駄なことをしていればコード見るとすぐバレちゃう まともなコードは必要な極一部を除いてほとんど参照で渡されるね ちなみに数値や不変参照(ポインタ)はCopy実装されてるため暗黙にコピーされるけどそれが一番速いから問題なし http://mevius.5ch.net/test/read.cgi/tech/1345730580/356
357: デフォルトの名無しさん [sage] 2025/05/03(土) 12:05:28.26 ID:ekVKJoF2 最適化されることを主張するなら証拠を示すべきなのは当然だが、 コピーの最適化を前提にするのなら例えば安易にCopy実装したりcloneしたりすんな、 みたいな意識高い言説は多くの場合無意味になっちゃうわけだけど、Rustおじはそれでいいのだろうか http://mevius.5ch.net/test/read.cgi/tech/1345730580/357
358: デフォルトの名無しさん [sage] 2025/05/03(土) 13:36:23.13 ID:BbjMJMxS >>357 頭悪いから違いを理解できないのか? まずCPUのMOVE命令は全てコピーだ だから数値や参照(アドレス)がCopy実装されていても何のペナルティも存在しない むしろ数値や参照を参照で扱う方が間接となり遅い 次にCPUのMOVE命令は全てコピーだがコピー元が使われてなければ純粋なムーブと見なすことができる そのため最適化が可能で例えば2回のムーブは1回に減らすことができる これはスタック上の変数を扱う場合も同様でレジスタへMOVEした後にレジスタ間の演算で終わるならスタック上の領域は不要で最適化できる http://mevius.5ch.net/test/read.cgi/tech/1345730580/358
359: デフォルトの名無しさん [sage] 2025/05/03(土) 13:38:21.80 ID:BbjMJMxS RustやC++のムーブも同じで一次的にはコピーをして元を使わないため最適化できる場合が多い 一方でプログラマがコピーやクローンを明示的にした場合は元が生きていて全く異なる そもそも元も後で使いたいからコピーしているわけだ だからムーブとは異なり最適化でコピーが消えることはない もちろん後で使いたい場合はコピーして渡すのではなく参照を渡すのが正解だ http://mevius.5ch.net/test/read.cgi/tech/1345730580/359
360: デフォルトの名無しさん [sage] 2025/05/03(土) 13:39:26.21 ID:BbjMJMxS したがってプログラマはコピーを可能な限り避けるべきである 暗黙のコピーが行われるプログラミング言語では意識せずコピーしてしまう プログラムを見ただけですぐにコピーしてあることがわかる方が望ましい RustではCopyトレイト実装した型のみ暗黙のコピーが起きる 前述のように数値などはその方が有利なので最初からCopy実装されている ヒープを用いない型ならばプログラマは自由にCopy実装できるがコード上でそれが明示され読む側は気付ける サイズが大きく参照で扱った方がよい型をCopy実装していればおかしいことがわかる 一方でヒープを用いていればCopy実装はできないがClone実装はできる これはコード上でfoo.clone()とコピーすることを明示的に記述する必要がある したがって参照を使えばよいのに無駄なコピーをしていればすぐにわかる http://mevius.5ch.net/test/read.cgi/tech/1345730580/360
361: デフォルトの名無しさん [sage] 2025/05/04(日) 11:58:45.22 ID:RkNPiBO2 区別できないバカなのか? ムーブの時などを含めて実態がコピーになるといってもコピー元は二度と使われないのだから最適化できる 一方でclone()などはコピー元をその後も使うためにコピーしている コピー元を二度と使わないならclone()の必要がない そしてコピー元をその後も使うから最適化の前提さえ成立しない http://mevius.5ch.net/test/read.cgi/tech/1345730580/361
362: デフォルトの名無しさん [sage] 2025/05/05(月) 10:09:59.16 ID:20YqVkB+ RustはC++より描き易いけどC++からの置き換えには不適 RustはCより面倒だけどCからの置き換えには最適 http://mevius.5ch.net/test/read.cgi/tech/1345730580/362
363: デフォルトの名無しさん [sage] 2025/05/06(火) 06:06:18.29 ID:JTtajrxW 低レベル言語の開発だよね? 皆さんの会話が高級すぎて戸惑いを隠せない。 OS記述も十分に低レベルだけど、ハードウエア操作はもっと低レベルじゃないかな? http://mevius.5ch.net/test/read.cgi/tech/1345730580/363
364: デフォルトの名無しさん [sage] 2025/05/06(火) 10:06:47.77 ID:K1Pjz07i Rustで低レベルするとunsafeだらけになる (悪いとは言ってない面倒臭いとは思う) http://mevius.5ch.net/test/read.cgi/tech/1345730580/364
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s