
ソースコードのないPC-9801プログラムの仕様解析、その後 98
ストーリー by hylom
面白い結果に 部門より
面白い結果に 部門より
昨年「ソースコードのないPC-9801プログラムの仕様解析、予算10~30万は安い?」という話題があったが、この仕様解析案件を実際に請け負った人がその顛末を明らかにしている(Togetterまとめ)。
解析の結果、このプログラムはBASICで実装されたコードをコンパイラで実行可能バイナリに変換したものだったことが分かったそうだ。BASICから生成されたコードは特有の構造があるため解析には一部難しいところはあったそうだが、プログラム自体は比較的簡単なものだったという。また、解析費用については直接交渉で増額してもらったという。
BASIC/98コンパイラ+EXEPACK (スコア:4, 興味深い)
別の解析担当(俺)によりますと、
使用言語:BASIC/98コンパイラ(バージョン不明)
EXEファイル軽量化:EXEPACKコマンドによる、リロケーション情報の圧縮
だと思われます。
BASIC/98コンパイラと判定した理由は、「エラーメッセージ中に構造化BASIC命令に対するエラーメッセージがある」ことです。
#やっぱりACで
Re:BASIC/98コンパイラ+EXEPACK (スコア:1)
exepackや当時のbasicコンパイラ知ってると解析まとめ見てああ、と思い当たるんだけど
その辺知らないで解析してるのは素直にすごいと思う。
Re:BASIC/98コンパイラ+EXEPACK (スコア:1)
PC98あたりの時代って、スコープの概念とかルーチンの構造化、関数化とかなかったと思うのですが。
gosubで飛ぶのは、行番号指定だった気がするし、引数指定も無かったかと・・・
なので、「すべてのデータは、サブルーチンを抜けるときまで保持される」事はなく、全てグローバル変数で、サブルーチンだろうが何だろうが、変数の値を書き換えるとそれが結果になったと思います。
BASIC コンパイラ……実在していたのか…… (スコア:1)
https://twitter.com/roentgen/status/947439405232414720 [twitter.com]
とか抜かしてるし、その時代のこと知らん人が大騒ぎしてるようにしか見えんのが残念。
Re:BASIC コンパイラ……実在していたのか…… (スコア:2)
使い物にならんもなにも、BASICとほぼ同等には動いていたはずですが。
Re:BASIC コンパイラ……実在していたのか…… (スコア:1)
何を評価して「使い物にならん」なのか気になりますね。
自分の記憶でも、インタプリタでの実行と同等だったと思っています。
そもそも、BASICに「コンパイラがあると思っていなかった」であろう事も、自分でBASICを直接いじったことがほとんど無いだけじゃないかな?
"ベーマガ世代"じゃないと、BASIC開発環境のそういう情報がないのかもしれないけど。
QuickBASICのコンパイラは存じませんが、NEC、富士通あたりは各機種用のコンパイラありましたよね。
Hu-BASIC(ハドソン製BASIC)のコンパイラはお目にかかったことがありませんが。(MZ-80K
だけあったそうな)
Re:BASIC コンパイラ……実在していたのか…… (スコア:2)
>すぐハドソンは無くなってそれっきりでした。
21世紀にそんなものを買ったのですか。
御愁傷様です。
Re:BASIC コンパイラ……実在していたのか…… (スコア:1)
CP/M (8ビット) の時代から既にありましたよね
Re:BASIC コンパイラ……実在していたのか…… (スコア:2)
BASCOM80?
#M-BASIC用だったっけ
M80(マクロアセンブラ)
L80(リンカだったかリンケージエディタだったかは忘れた)
はOS付属だったけど
FORTRAN80とかは別売りだった記憶がある
Re: (スコア:0)
その記述だけではよくわからんが、それってBASICのソースをexeファイル化して実行するだけのツール(なんちゃってコンパイラ)のこと?
Re: (スコア:0)
ソースを中間言語に落とし込んで、中間言語実行ランタイムと一緒に使うタイプの物。
どこまでがなんちゃってかとか、使い物にならないのレベルがどこまでかによりますが、
確か普通のDOS上のBASICインタプリタよりは速かった記憶が。(数倍くらいだったと思うけど自信が無い)
Re:BASIC コンパイラ……実在していたのか…… (スコア:1)
Re: (スコア:0)
その説明を聞いてやっと記憶が蘇った
BASICソースをそのままexeに埋め込むんじゃなくって、中間コードに落とすことはやってたんだ
ソース丸ごと埋め込むのは、バッチプログラムをcom/exe化するツールだった
Re: (スコア:0)
どちらかというと、ソースを見せたくないから必要だった。じゃないかと
#MSからN-BASIC買ったんで頑張ったとか
Re: (スコア:0)
QuickBasicのコンパイラなら普通に仕事でバリバリ使ってたなぁ...
DBはNetWare上のBitrive...
あーやだやだ
Re:BASIC コンパイラ……実在していたのか…… (スコア:1)
Btrieve/びーとりーぶ [wikipedia.org]ですね。昔使わされてました。
QuickBASICじゃなくて旧VBとの組み合わせでしたが。
Re: (スコア:0)
N88BASICコンパイラ、なつかし。
basicc.comでしたっけ?
Re: (スコア:0)
元コメントはNECが売っていたBASICコンパイラは存在したのかと驚いてるのでしょ。
有象無象のBASICコンパイラがいくらあろうと時代を知ってる知らないの話になるかねえ。
日本語の解析能力すら錆びてねえか?
Re: (スコア:0)
それだったら
>このコンパイラがどこのベンダの何て言う製品だったのかはまったく分からないけど、 undocumented な ROM BASIC のファンクションコールを呼んでいることからも NEC か、その BIOS のベンダのどちらかの手によるものかなという程度
こんなコメントにはならないでしょ
Re: (スコア:0)
Re: (スコア:0)
BASICのコード上でやったり、Cでそういうコード書くのは普通だったけど、サードパーティーがコンパイラに組み込むのはリスキーすぎると思う。
後先のサポートや保守を考えないなら兎も角。
Re:BASIC コンパイラ……実在していたのか…… (スコア:2)
やっぱり,結局BASICコンパイラじゃねーか・・・
Re:BASIC コンパイラ……実在していたのか…… (スコア:1)
あのころは後先のサポートや保守なんて考えてない製品ばかりだったけど
Re: (スコア:0)
オーバーレイなんて当時のメモリ事情である程度大きなプログラム動かすには実質必須だしね
Re:BASIC コンパイラ……実在していたのか…… (スコア:1)
N88(86)BASICコンパイラそのものでは複数ソースは扱えなかったですよ。私が昔いた会社ではMS-BASIC v7でコンパイル前に通すツール作って対応してました。
・インクルード。
・擬似的なブロックIF文。
・最終処理として、コメントと空白の削除+行の圧縮(":"による結合)。
特に3つ目が重要で、ソースがでかすぎると怒られる(コンパイルできない)ものも、これをやるとコンパイルできるようになったのでN88部隊に重宝がられました。作ってみてよかった、と思ったツールの1つでした。
Re:BASIC コンパイラ……実在していたのか…… (スコア:2)
高校の事務処理プログラムコンパイラ通したBASICで動いてて,
何かの機能追加するためにソースコードから弄ってコンパイルした覚えが。
その頃はすでにC言語メインで触ってたんで,フツーに懐かしかった。
短絡評価をしないのは (スコア:1)
最適化をサボってるんじゃなくてそれが言語仕様だからだと思うぞ。VB.NETでは既存の演算子の仕様を変更できないから短絡評価するAndThenやOrElseがわざわざ追加された。C/C++系に毒され過ぎではないか。C/C++の論理演算子が短絡評価するのも言語仕様で(最適化とは関係なく)そう定められているからだけど。副作用がある場合に勝手に短絡したりしなかったりしたら結果が変わるから、原則そういうことはできない。
Re:短絡評価をしないのは (スコア:2)
三項演算子はあんま気にならないなぁ
ねすとしてたらイヤかも
NECのBASICCなら逆コンパイラもありました (スコア:1)
NEC純正N88BASICコンパイラは中間コード+ランタイムライブラリ(という実行エンジン)のPコードコンパイラでした。
当時は割とポピュラーでしたよ。
事務処理ソフトの市販パッケージソフトetcにも使われていました。
確か、逆コンパイラも(フリーソフトだったかな?)ありました。それが使えていたら軽く終わったと思いますよ。
もはやロストテクノロジーに近いものになっているのかな
安請け合いし過ぎ (スコア:0)
増額程度の金額では無く、もっと貰うべきだと思う
ちゃんとしたスキルを持っているなら安売りしないで、対価としてちゃんと貰わないと他のプログラマにも影響が出て迷惑
Re:安請け合いし過ぎ (スコア:3, すばらしい洞察)
面白い仕事なら多少安くても請けるけど、
面白くない仕事はきっちりお金をもらいますって事でしょ。
プログラマとしては理解できるけど。
Re:安請け合いし過ぎ (スコア:1)
他の誰がどれだけ安く受けようが、俺には影響が出た事はないな。
他人の対価が自分に影響されてしまう、哀れな自分を呪った方が良いんじゃねーか。
Re:安請け合いし過ぎ (スコア:1)
独禁法は価格カルテルも禁止してるんですがねえ。自分にとって都合のいい価格以下で受けようとするやつに圧力をかけようとしてる奴らなんなの。
Re:安請け合いし過ぎ (スコア:1)
> 増額程度の金額では無く、もっと貰うべきだと思う
今ひとつ意味がわからないのだけど。
10万→1,000万でも「増額」でしょ?
「増額」だと「倍以上ではない」という(明確に誤った)思い込みでもあるの?
だとすると、額が100倍に増えた時にはなんて言うの?
Re:安請け合いし過ぎ (スコア:2)
って語られてますので、「相場に比べて安い価格で請け負ったけど、その価格を公開することで相場が下がるのを避けるために、非公開にした」と読みとったのですが、どうなんですかね。
Re: (スコア:0)
> 相場に比べて安い価格で請け負ったけど、その価格を公開することで相場が下がるのを避けるために、
これはどこから読み取りました?
Re:安請け合いし過ぎ (スコア:1)
ハッカーって言葉が誕生したのも、優秀な者とそうでない者には歴然とした差があるからだしなあ。
凡人が無理したって長続きするはずないよ。
ソフトウェア産業はそういった世界だと思う。
Re: (スコア:0)
増額程度って金額非公表なのにいくらだと思ったんですか?
他が迷惑するんだっていうのも真かもしれんが別に本人が納得してるなら
1万でもいくらでも構わないのが本来の労働ですよ
Re: (スコア:0)
青臭い意見だな。
Re: (スコア:0)
別ACですが、事実を元に主張をするならその事実の裏付けが無いとツッコまれたときに信用に関わってくるんじゃないですか?
プログラマとしての主張というなら、信用もまたプログラマにかかってくると思いますよ。
迷惑がどうのこうの言うなら信用を損なう行為もまた迷惑になると思うので、元コメの人にはちゃんと事実がどうなのかを示してもらいたい
ところ。こういう意見も青臭いでしょうか?
Re: (スコア:0)
そうやって「安く請けるやつがいる。能力は関係ない」みたいな日本だから
腐ってしまったのだよな。
安い金額で納得してはいけないのだよ。
OSSでも同じことは言えるのだが、けっきょくボランティアみたいな請負いで
やるから技術料が取れなくなったんだよ。
Re: (スコア:0)
いや、違いますよ
その仕事にやりがいを感じて本人が納得してるならそれでいいんです
そこを未だに日本はそれだから・・・みたいに勘違いしてますが
アメリカに行けばチャリティのために無償でやるボランティアもありますし
そういったお金のない団体や社会的意義があれば「安い価格」でも請け負うっていう文化は普通にあります
同時にそういったボランティアに対して持つ物が「寄付する文化」もあります
まぁこれは商売だろ!製造システムだろ!って言われたらそうなんですが
基本的には安くても納得していたらっていうのは別に世界的に見れば普通です
日本のが間違っているのは「納得しているかどうか」ではなく「ソレを受けれてしまうから」でしかありませんよ
Re: (スコア:0)
どこの世界的な普通なのか知らんが
資本主義の市場経済においては
ダンピングとも捉えられる可能性が十分にある
独占禁止法 - Wikipedia [wikipedia.org]
この手の議論は語りつくされてるので勉強するといい
Re:安請け合いし過ぎ (スコア:4, 参考になる)
私はアメリカでフリーランスの仕事を数年やってましたが
確かに、ボランティアで仕事を受けることもありますし
サービスの交換という、金銭でなく互いの労働を対価として物々交換する的な感じで、
たとえば税理士の友人に税務処理をしてもらう代わりに彼のウェブサイトを作ったりもしてました。
とは言うものの、無料だったり、あるいは相場より著しく安く
仕事を請け負うと同業者からはメッチャ嫌がられました。
とある友人に、僕たちの仲だから、と押し切られ無料で
ちょっとしたソフトのバグ修正をやったときは、
フリーランス仲間から、たとえ友人でも必ず対価はもらうべきだ!
と強く怒られましたね。
あなたは多分学生バイトだったから誰も文句を言わなかったのだと思います。
独禁法とかはさておき、プロの立場の人間が相場を崩す金額で仕事をすることに対しては
アメリカのほうが遥かにセンシティブなのは(少なくとも私の経験上)間違いないですよ。
# あとチャリティの文化については税制など制度的な面もあるので
# 日本のボランティアとはまたちょっと違う感覚ではないかと
Re:安請け合いし過ぎ (スコア:2)
>欧米から円安誘導が叩かれるのも、先進国という「同業者」の中で国を挙げて安請け合いしようとしてるからだと見ることもできますね。
最近はリーマンショック後に日本だけが金融緩和していた平行世界からインターネットできるらしい。
こっちの世界ではあべこべで欧米がこぞって金融緩和していた中で民主党政権だけが金融緩和せずにデフレと超円高を引き起こし、安倍政権でやっと欧米と同じ考え方で金融緩和しはじめましたね。
Re: (スコア:0)
悲報:(#3339703) 労働と趣味の区別がつかない模様
Re:安請け合いし過ぎ (スコア:1)
Re: (スコア:0)
他に食べる方法を知らんからさ。だから未だに嫁さんも貰えん。
今も昔も、選択の余地なんてありはしなかった。
Re: (スコア:0)
今回はこのテの案件に飢えてたエンジニアが片手間で片付けたわけだが、それでも暗黙のカルテルを強いるというのか
Re: (スコア:0)
これ請け負った人はこのネタに価値を認めたから乗ったんだろう。
こういうコメントって商売にすごく消極的で、全く金儲けのために動いてないのに何で俺の仕事は儲からないんだって顔してる感じがする。