C言語で書かれた、メンテが行き届いていないソースコードがここにあると仮定しよう。
当然のように、プリプロセッサの魔術やら、グローバル変数やらが惜し気もなく使われている。
これを自動的にC++のクラスにまとめることは可能だろうか?
可能ならどのような技術でできるだろうか?
ソースコードの再構築は可能か? [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1片山博文MZ ◆T6xkBnTXz7B0
2016/01/31(日) 21:15:56.57ID:KGvneECt2016/01/31(日) 21:24:37.01ID:9Gq1Qcnx
「自動的に」は無理だろう。
人力でならできるかもしれないが、できるとしても経営者がやらせない。
人力でならできるかもしれないが、できるとしても経営者がやらせない。
2016/01/31(日) 21:36:47.01ID:7LoAMsY1
メンテが必要なのは貴様のアタマじゃ
4片山博文MZ ◆T6xkBnTXz7B0
2016/01/31(日) 21:46:52.88ID:KGvneECt 私が考えた方法:
class my_class { };で囲む。
my_classのコンストラクタを追加。
main関数の中身を取り出し、my_classのメソッドmy_mainにする。
main関数の中身を
my_class mc;
return mc.my_main(argc, argv);
にする。
class my_class { };で囲む。
my_classのコンストラクタを追加。
main関数の中身を取り出し、my_classのメソッドmy_mainにする。
main関数の中身を
my_class mc;
return mc.my_main(argc, argv);
にする。
2016/01/31(日) 21:51:25.42ID:zJ6m2KtS
C++コンパイラでコンパイルするだけじゃ
6片山博文MZ ◆T6xkBnTXz7B0
2016/01/31(日) 22:10:07.38ID:KGvneECt2016/01/31(日) 22:42:18.21ID:8GI8e/FD
>>7
組み込み系は、グローバル変数、絶対に必要。
組み込み系は、グローバル変数、絶対に必要。
2016/02/01(月) 00:01:40.05ID:aRlt4/c6
答えの出ないスレを立てて荒らすのがはやってるの?
2016/02/01(月) 00:08:18.95ID:RHShN3vI
大本がクラス化意識した作りしてないと
C++でreworkしたほうが
C++でreworkしたほうが
2016/02/01(月) 00:11:23.35ID:N0i0uifT
12片山博文MZ ◆T6xkBnTXz7B0
2016/02/01(月) 00:20:24.09ID:MU0q3D+c13片山博文MZ ◆T6xkBnTXz7B0
2016/02/01(月) 00:38:24.90ID:MU0q3D+c これなんかどうだろう?
http://www.scriptol.com/scripts/ctocpp.html
http://www.scriptol.com/scripts/ctocpp.html
2016/03/07(月) 17:06:47.42ID:nbAKle/L
なかなかよさげじゃないの
>They require C sources written with a clear programming style: one statement per line is required in most case
>Before to start, you need to mark as "static", any variable or function you want not being converted to class members.
>If a declaration is splitted, parts must be ended by a comma.
> Example:
> mydecl(int x,
> int y);
>They require C sources written with a clear programming style: one statement per line is required in most case
>Before to start, you need to mark as "static", any variable or function you want not being converted to class members.
>If a declaration is splitted, parts must be ended by a comma.
> Example:
> mydecl(int x,
> int y);
15デフォルトの名無しさん
2016/03/21(月) 00:41:46.37ID:KQkKBKcO >>1
全体を一つのクラスにする。
全体を一つのクラスにする。
2016/03/21(月) 03:19:03.67ID:gGtaNB7f
普通にコンパイルしてバイナリにした後c++で作成したエミュレータのソース上にリソースとして組み込んでやれば良いんでない?
2016/03/21(月) 08:31:33.96ID:wDZuq9VI
機械学習とか発達したら超絶リファクタリングツールも可能なんではないか
2016/03/21(月) 09:11:20.27ID:lwkXzPK7
今の機械学習(ディープラーニング)じゃむり。
あれはパターンを把握して、統計的に勝つ可能性が高い物を選ぶってだけで
理解した上で論理的に答えを導き出すものじゃないから。
あれはパターンを把握して、統計的に勝つ可能性が高い物を選ぶってだけで
理解した上で論理的に答えを導き出すものじゃないから。
2016/03/22(火) 10:53:54.91ID:Z5ZJSs0G
CからC++に再構築したコードが膨大にあれば機械学習で統計的に処理できる
■ このスレッドは過去ログ倉庫に格納されています
