はてなキーワード: ソースコードとは
現在、LLM(大規模言語モデル)によるバイナリコードの直接的な生成は、ソースコード生成と比較して、一般的に非効率とされる分野です。
LLMは、大量のソースコードデータで事前学習されているため、特定の要件に基づいたソースコードの生成において顕著な能力を発揮しています。
GitHub Copilotなどのツールは、開発者のコーディング作業を効率化しており、その有効性は広く認識されています。
バイナリコードは、ソースコードと比較してセマンティック情報(意味的な情報)が失われているため、LLMにとって直接的な生成や理解は困難なタスクと見なされています。
現在の研究の焦点は、生成よりもむしろ既存のバイナリコードの理解や分析(例えば、関数名の回復、バイナリコードの要約、脆弱性分析など)の分野に置かれています。
現在の開発プロセスを考えると、多くの専門家は、人間が理解・修正・デバッグしやすいソースコード生成に当面はより大きな実用的な価値があると見ている可能性が高いです。
一方で、バイナリコードの理解・分析におけるLLMの潜在能力は、リバースエンジニアリングやセキュリティ分析の分野の専門家からは関心を集めています。
したがって、現在の技術的な難易度と研究の進捗状況から、「コード生成の方が現時点では実用的で効果が高い」と考える専門家が多いと推測されます。
Q.
生成AIにソフトウェア開発を支援してもらう場合、ソースコードの作成を依頼する形式が多いと思いますが、実行ファイルを直接出力してもらうことも技術的には可能なのでしょうか?
A.
生成AIによる実行ファイルの直接出力は、技術的には極めて困難です。現在のLLM(大規模言語モデル)ベースの生成AIは、ソースコードの生成には向いていますが、実行可能なバイナリファイルを直接出力することには根本的な制約があります。
技術的な制約
LLMはテキストベースのトークン処理を基本とする設計であり、バイナリデータを直接扱うことができません。実行ファイルは0と1の連続したバイナリコードですが、LLMはこの形式でデータを生成するようには訓練されていないため、バイナリファイルを直接出力することは現在のアーキテクチャでは実現が困難です。
従来のソフトウェア開発では、ソースコード→コンパイル→アセンブル→リンクという複数段階のプロセスを経て実行ファイルが生成されます。各段階で最適化や機械語への変換が行われるため、この過程を完全に省略してAIが直接バイナリを生成することは技術的に非常に複雑です。
研究レベルでは、バイナリデータを扱う試みも存在します。例えば、LLM4Decompileのような研究プロジェクトでは、バイナリコードを逆コンパイルする際にバイナリを一度アセンブリ言語に変換してからLLMで処理しています。逆に言えば、生成時も同様の変換プロセスが必要になると考えられます。
実務では、生成AIにソースコードを作成してもらい、それを従来のコンパイラやビルドツールで実行ファイルに変換する方式が標準的です。この方法であれば、デバッグやテストも容易で、生成されたコードの品質を確認しながら開発を進められます。
なお、フォントファイルのようなバイナリ形式でもオープンソースとして扱われる例はありますが、これはフォントという特定用途の場合であり、汎用的な実行ファイル生成とは異なります。
Q.
A.
おっしゃる通り、画像生成AIもバイナリを出力しているという点では共通していますが、実は根本的に異なる仕組みで動作しています。
アーキテクチャの違い
画像生成AIは拡散モデル(Diffusion Model)やGANなど、視覚データに最適化された専用のアーキテクチャを使用しています。一方、LLMはTransformerベースのテキスト処理に特化した構造を持っています。画像生成では、ノイズから段階的に画像を生成するプロセスを経て、最終的にピクセル値という数値データ(バイナリ)を出力します。
画像ファイルのバイナリは連続的な数値(ピクセル値)の集合であり、各ピクセルが色情報を持つという規則的な構造です。最近の研究では、画像をビットプレーン(bit-plane)として扱い、XOR演算でノイズを加えるBinary Diffusion Probabilistic Model(BDPM)のような手法も開発されています。
対して、実行ファイルのバイナリは機械語命令の複雑な配列であり、CPUが直接実行できる命令コード、データセクション、リンク情報などが厳密な形式で配置されています。わずかなビット誤りでもプログラムが動作しなくなるため、画像のような連続値とは性質が大きく異なります。
画像生成AIは、ImageNetやLAIONなどの大量の画像データセットで訓練されており、ピクセルパターンを学習します。一方、実行ファイルを生成するには、コンパイルプロセス全体(構文解析、最適化、機械語変換、リンク)を学習する必要がありますが、これは単純なパターン学習では実現できません。
したがって、画像生成AIが成功しているのは、画像という特定のドメインに特化した設計と、規則的なデータ構造があるためであり、同じ手法を実行ファイル生成に適用することは技術的に非常に困難です。
統一化された帳票フレームワークをOSS化することには、非常に大きな価値があります。
初期導入コストの削減: 企業は高価な商用帳票ツールのライセンス費用を支払う必要がなくなります。特に中小企業やスタートアップにとって、これは大きなメリットです。
ベンダーロックインの回避: 特定の商用製品に依存することがなくなり、将来的な仕様変更やサポート終了のリスクを避けられます。自由にコードを修正・改善できるため、自社のニーズに完全に合致させることが可能です。
日本の商習慣への最適化: OSS化することで、多くの開発者が日本の複雑な商習慣(消費税計算、源泉徴収、独特なレイアウトなど)に対応するためのコードやノウハウを持ち寄り、フレームワークを改善できます。これにより、最も実用的な「デファクトスタンダード」に近い帳票作成基盤が生まれる可能性があります。
開発速度の向上 共通のフレームワークが浸透すれば、プロジェクトが変わっても同じ仕組みで帳票を開発・保守できるため、新規開発の立ち上げ速度が向上し、開発者間での技術の習得コストが下がります。
透明性と信頼性の向上: ソースコードが公開されるため、帳票のロジック(特に金額計算や税務処理)の透明性が確保され、信頼性が高まります。
多様な環境への対応: 商用製品がサポートしないような最新の技術スタックやニッチなOSにも、コミュニティの貢献によって迅速に対応できるようになります。
コミュニティによる継続的な改善: 一つのベンダーに依存せず、世界中・日本中の開発者がバグ修正や機能追加を行うため、品質が維持・向上し、プロジェクトの持続可能性が高まります。
OSS化は、単なる「無料化」ではなく、日本のビジネスにとって不可欠な「帳票作成」という共通課題に対する知恵とリソースの「共同投資」であり、社会全体での開発効率向上に寄与するという点で、非常に価値があります。
趣味のアプリのプログラムで行き詰まってて、設計に関して色々ググってるときに見つけた「ゲームの設計」に関するブログより
家庭用ゲーム機(いわゆるコンシューマー)の開発やアーケードゲーム機が活発だった時代は必要なかった。
なぜならば、ゲーム業界の各会社が個々で開発し作りきってしまえば、もう直すことが無いからだ。
また、ゲームのプログラムは独創性が必要で、設計ルールを決めてしまうと、ルールを逸脱した仕組みの実装を躊躇わせる。
~中略~
スマートフォンゲームには保守運用がある。(それに最近はコンシューマーゲームもパッチ対応がある)
ゲームを続けてもらうためには定期的に改良を重ねる必要がある。
その場しのぎの実装では後からの修正に手を加える際はまるでジェンガのようにバランスを取る必要がある。
最初に土台がしっかりとしたジェンガなら倒れる可能性も低くなる。
昔は各々のゲームエンジンを持っていたが、最近は市販されているゲームエンジンを使うところも増えている。
そうなるとどうなるか、これまでは属人的に作業を割り振っていたものが
同一のゲームエンジンを触ったことがある人ならば誰にでも仕事をしてもらうことが可能になった。
市販のゲームエンジンを使えば最近の流行に合わせて自社のゲームエンジンをアップデートする必要もなくゲームエンジンの会社が対応するのを指をくわえて待ってるだけで対応してくれる。
仕事を流動的に渡せたり、一つのゲームエンジンで色々開発しているとそのコードを使いまわせる。
その場しのぎのコードでは使い回しが難しいが設計も含めてキレイなソースコードを作成できた場合、流用ができて次作を作るときに工数削減できる。
才能がないと思ったら、早いうちに河岸を変えた方がいい。
早ければ早い方がいい。
可哀想だから(教え子が? それとも自分が? w)、って「がんばれ、がんばれ。才能なんて関係ない」みたいに騙すのは、むしろ害悪だよ。
10年後、気付いて路頭に迷わせるとして、その責任は取れるのか?
まぁ、本人自身が気づいて路頭に迷いつつあるけどどうしようもないのかもしれんが、地獄に道連れはやめてやれ w
それで生計を立てない、趣味の範囲で楽しむ分には好きにすればいいけど、エンジニアに限らず、それなりのお金をもらおうとしたら、才能、向き不向きは超えられない壁として現実に、強固に存在している。
球速120km出ないけど阪神の一軍のピッチャーに、ってのはどう逆立ちしても物理的に不可能だ。
でも草野球は楽しめる。
才能がなけりゃ、一人で永遠に「大いなる助走」を続けりゃいい。
誰にも迷惑かけないなら。
医師、看護師、会計士、経営者、etc.etc. にも、才能、向き不向きはある。
落ち着きないし。
同じことを何日も続けたら、爆発する。
「明日も同じことしなきゃならないのか……」って考えただけでも、死にたくなる。
こんな感じに、才能がものをいう分野って、意外に多い。
ソフトウェアエンジニアは、設計実装の抽象度が多層化していて、その巧拙によって安定度、運用や機動的な新機能追加の手間、リードタイム、金や何やら、数十倍、規模複雑度が爆上がりしている今なら下手すりゃ数百倍差が出る。
その差をちゃんと理解するには、巧の現場の「こういう世界があるんやー……」って実体験が必要だったり、巧レベルの才能が必要だったり、経営知識が必要だったり、経済知識も必要だったりして、「拙」の現場にぶら下がってるだけのエンジニアが「才能なんて幻想」って吠えたっても「マジ、迷惑だからやめてね」って思う。
どの炎上現場でも、高粘度現場(リーダーマネージャが理解できないからって邪魔ばっかりしてきたり、そもそもプロダクトがぐっちゃぐちゃになってたりして、どんな行為がサービスの息の根を止めるかわからなくて身動きが取れない「震える舌」みたいな現場。物事が全然進まない現場。通常、経費で札束ガンガン燃やしてるはずだから、ここも炎上現場っていう)でも、この手のエンジニアが腐るほどぶら下がってるんだよね。
たいてい、生み出されるソースコードとドキュメントの割合がおかしなことになってる。
いや、そういうの主催してる暇があったら、コード書けよ、って。
でも、Web記事引いてきて、「〇〇にはこう書いてある」とかドヤ顔で机上の空論で時間潰して「俺も一端の理論派エンジニアだぜ……」とか、いや、お前はただの受け売りを理解もせず垂れ流してるだけのそこらへんの AI と変わらんクズだよ。
おいらの師匠の一人は「TV出たり、本書いたりするやつは二流。一流は、自分の仕事に集中していて、他のことやる暇ないから」って言ってたけど、ほんとその通りだと思うよ。
シャバと違い、ソフトウェアの世界は驚くほどのスピードで巨大化、複雑化している。
30年、40年前なら、社会性の乏しい、プログラミングコンテスト受賞者みたいなエンジニアでも無双できたけど、今は無理なんだよね。
今だと玉拾いも任せられないくらいだったりする。
ちょい前も、PostgreSQLの中身いじれます! って東大卒業生いたけど、視点が局所的すぎて全体感に欠けてて、プロジェクトがヤバい状態になってるのが理解できなかったりしてたからね。
そろそろリリースできる状態になってる予定だけど、おいらの読み通りα版完成が3ヶ月遅れ、そこで大量の不具合が発覚してベータ版完成がそこからさらに3ヶ月以上遅れ、不具合積み残したまま見切り発車、ってなるんじゃねーかな、と思ってるんだが w
才能の種類、方向性によっては、10年前も今もたぶん10年後も変わらず十分通用するものはあるんだけどねー。
そこに生活水準をあげてしまうと、自分はもう通用しないと気づいても、撤退できない。
マイカーガー。
マイホームガー。
子供ガー。
愛犬ガー。
んなもん知るかっ!
そういう「元エンジニア」がリーダーとかマネージャとかにクラスチェンジして、事業、プロダクトの足を引っ張る。
あそことか、そことか、具体的な企業名はあげられないけど、そういうエンジニアが漬物石のように重しになって、身動きが取れなくなってるところが多い。
VCとかから、もっと売り上げを上げろ。成長率を上げろ、というプレッシャーを与えられ、何かしなきゃいけない。ってなって、外付けの雰囲気だけのサービスをどんどん外付けしていく戦略を取る。
1年で10。
2年で30とか。
マジかよ w
思い思い行き当たりばったりに作ったら、手間だけ増えてそれを壊すわけにはいかなくなって、さらに身動きが取れなくなっていく悪循環しか見えないんだが、そんな経営方針で大丈夫か?
とか意味不明な決定して、認証認可v1、認証認可v2、認証認可v3とマイクロサービスが増殖して、さらにv4を企画してるとかいう会社だってある。
真っ当な声には、自分の存在感を示すためだけの反対を唱えて邪魔したりして、現場で手を動かしているエンジニアより高級を取ってんのに、事業、プロダクトへ与えるダメージは倍増する。
さらに、自分の地位を死守するために、それを脅かす腕利のエンジニアを陥れる、排除することに全力を傾ける。
これで3倍界王拳だ w
経営者はできるエンジニアたちに任せていると思い込んでいるかもしれないが、さて、どうかね? w
大本営発表的にはうまくいっているとされているサービスが、その裏側はカーオブファイヤーみたいなところって、結構ある。
はっきりいう。
今はクラウド環境のプロダクトで、どのように自動テストで検証可能なシステムを構築するかの手法の研究を続けてる。
具体的には、今まで関わってきた炎上現場で安定稼働を達成させた手法(TDD)だな。
ワークライフバランス? w
才能のない人は河岸変えろ。
業務経歴書にも今まで使ったことがあるサービスの名前をたくさんたくさん載せてます。
じゃねーよ。
ボルトに世界水泳、吉田沙保里にNBAに出場させるような使い方してて、どこが技術力だよ。
ってのが多い。
「どうしてこのAurora、リーダーがこんなにたくさんぶら下がってんの?」
「テナントが増えて、アクセスが増えたので、負荷分散のために増やしました。水平スケーリングってやつです」
うん。水平スケーリングは知ってんねん。この程度のテナント数、ユーザー数、アクセス数で、どうしてこんなにでかいインスタンスのリーダーがぶら下がってんのか? って聞いてんねんけど……。
って現場、多い。
でも、今通常営業してるサービスでも、こういうところ多いんだよな。
それはともかく、
「マイクロサービス化していて、いま120を超えたところで、当面160になります」
「……は?」
「……デプロイの時、どうすんの?」
「変更があるサービス名を書いたファイルを一緒にコミットして、それ読み込んで、GitHubActionsでデプロイさせてます」
「Cloneして立ち上げます」
「これ……、モノリポ?」
「120個?」
「120個」
「なんか立ち上がらないんだけど……」
「あ、修正中なんで、〇〇と××のコミットをチェリーピックしてください」
「……動かないぞ」
「昨日の夕方、変更が入ったみたいなんで、△△のコミットもチェリーピック。いや、++のブランチを……」
5日で立ち上げ切れるんか?
って現場がね、案外たくさんあるんだ。
「ほう……?」
どうして「自分が間違えてる」「自分が見当外れなことをしている」可能性ってのを考慮しないんだろう、この人らは?
っていつも思う。
マイクロサービスの目的も前提も理解しないで、HowToだけ猿のように繰り返してるって自覚ないんか…… (-_-)
ってマーカーで引いた一文見せつけられるんだが、その前に書かれてある前提とか目的とか、書かれてない暗黙のそれとか、いわゆるコンテキスト削ぎ落として、単語レベルの理解を開陳されても、「は?」としか反応できんのよな。
120のマイクロサービスとか、お前、認知科学の知識もないねんな……。
それマイクロサービスじゃなく、「粉砕されたモノリシックサービス」っていうんやで、と。
まーじで、技術本とかの恣意的なつまみ食いで訳分からん理論構築すんなよ。
それでプロダクトがうまく回ってなかったら、それが答えなんよ。
まぁ、「うまく回ってる状態」ってのを知らない、理解できないだろうから、正しい答えに行きつかんだろうけど。
その正しい答えに行きつかない、ってのを
「致命的な才能の欠如」
って呼ぶんよ。
ChatGPT:
はい、Delphi(Object Pascal)のソースも読めますし、解説・リファクタ・バグ箇所の指摘・他言語への移植案など対応できます。
VCL / FMX、Generics、Interface/RTTI、プロパティ/イベント、レコード・セット型、メモリ管理(string/AnsiString/UnicodeString の違い)、スレッド(TThread / TTask)、WinAPI/COM 呼び出し、uses 単位構成、.dfm(フォーム)やリソース周りもOKです。
コードを貼ってくれれば、1ステップずつ説明や改善案を出します(DelphiのバージョンやVCL/FMXも書いてあると精度上がります)。
UNIFACEはどう?
ChatGPT:
はい、UNIFACE(Proc言語)も対応できます。フォーム/サービス/レポート/エンティティなど各コンポーネントのトリガ(initialize, validate, leave field など)、operation/entry、newinstance/activate/call、retrieve/e, read, write、エラー制御($status, $procerror)や論理名・assignment(.asn)、署名/パラメータ、DSP/REST・SOAP連携、DBドライバ設定までOKです。
コードや .asn を貼っていただければ、処理フローの解説、バグ箇所の指摘、リファクタ、他言語・他フレームワークへの移植案(例:REST API化、Java/Python 置き換え)まで具体的にやります。
可能なら UNIFACE のバージョン(9/10/10.4 など)、DB(Oracle/SQL Server 等)、OS を添えてください。
一連のShopify強奪事件によって、BundlerとGemsがruby core teamに還元されたが、ついに管理権限の全権掌握に失敗した。
そもそもrubyとはrubyという言語単体の開発とメンテを司っており、言語仕様は見ているがエコシステム全域を見てるわけではない。Matzですらそうだ。
rubyにおいては、BundlerもGemsも言語の付属品という立ち位置だ。
近年の言語は言語仕様もパッケージ管理システムも全部コアメンテナに権限を委譲する。しかしrubyはそうなっていない、C/C++のように。
bunやrustに馴染んでる人には意味がわからないかもしれないが、往々にしてこんな権限統合失敗事案はOSSのアセットマネジメントにつきものだ。
古くはperlが、そしてその後phpもが、やらかした。web業界は過激なオープン思想の裏で、常に権限の落ち着きどころにリポジトリを悩ませている。
だから自由という名の管理放棄パッケージから、法人格での中央集中管理へとOSSはシフトしてきた。ここ10年でFOSは死んだと言って良い。
ソースコードの開示はサプライチェーンの混入可能性を第三者検証可能にする健全性の証左としてきた。OSSコミッターの高額収入はこの信用性が担保していた。
しかし自由ソフトウェアとは自由の範囲を明示的に境界引きしており、本件では自由の範囲外にBundlerとGemsがあった。
つまり自由とは何であるか政治的に理解してない局面においてOSSコミッターはそれを行使するのに無力であり、実際法人格のプレッシャーに負けた事を証明した。
これは歴史的転換点だと思う。
Matzが間に入らなければ、rubyはメンテコストを捻出できず崩壊する所だった。たまたまMatzという優秀すぎる人間がいたので、どうにか死なずに済んだだけだ。
逆に言えばこの崩壊は真祖Matz以外が止められるものではなく実質、Shopifyの強圧に屈してrubyは死んだのだ。
金がないruby core teamはShopify主導のサプライチェーン混入可能性を否定できない環境が整ったのだ。
日本だとクックパッドやSkebが該当するだろう。未だにruby製バックエンドを使ってる企業はサプライチェーン混入可能性を常に評価してrubyを運用する責務を負った。
どの言語だってその可能性は常に念頭にあるが、この歴史的転換点を観測してしまうと、高すぎるリスクを保有するテック企業として技術力を喧伝してきた信用は底値を叩く。
コンピューターサイエンスの信頼性という文脈で、信用を失うのだ。
インターネット上の情報の99%は、情報の受け手の行動や感情、お金を操作することを目的としたもの、あるいは純粋なエンターテイメントとして消費されるものとして整理できます。
一方、1%は、スキル、知識、客観的事実の伝達に特化し、ユーザーの生活や能力を向上させるために役立つ情報と言えます。
ユーザーの視点から見ると、これらの情報は「役に立たない」というよりは、「誰か(情報発信者側)の利益を優先している」あるいは「単に時間を消費させる」性質を持っていると解釈できます。
1%のジャンルは、自己成長や客観的な理解に直結する、ノウハウやデータを主軸とした情報です。
この分類は、インターネット上で情報を探す際に、「誰かの利益のためのコンテンツ」と「自分の利益のための知識」を峻別するための視点を提供しています。
https://laziness.works/posts/90dad698-1d04-4a6d-beed-88e2036325a7
Level-4 Proficient
担当する範囲は「システム全体のデザイン」に加え「システムのうち特に難易度の高い部分」になることが多いです。このレベル帯からはシステムのデザインに時間を割くことが多くなり、必然的にコーディング量が減る傾向が強いです。
このレベル帯の方は、概念レベルの設計や責務分担・責任分界点などを考慮してシステムをデザインすることができ、概念レイヤなどシステムの動作に直接関係のない部分のソースコードが必要になるため、Level-3 以下のプログラマを育成しながらコーディングしていることが多い印象です。
次のレベルに向けて
はてブでブクマページのソースコードを確認すると、その記事がいつファーストブクマされたのか知ることが出来る。
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20250916000442
例えば上記ページのソースコードには、「data-entry-created="2025-09-15T15:04:51Z"」と記されている。
これはイギリス時間(UTC+0)の「2025年09月15日 15:04:51」にファーストブクマされたという記録なので
日本時間(UTC+9)に修正すると「2025年09月16日 00:04:51」にファーストブクマされたことが分かる。
また、増田の記事URLに含まれている「20250916000442」はそのまま投稿年月日と時刻を表しているので
この記事は「2025年09月16日 00:04:42」に投稿されたものであることが分かる。
各日時を比較すると、この記事が投稿後9秒でファーストブクマされたことが分かる。
colonoe 偶然書いた直後にブクマしたのかもしれないし、本人だとしてもブクマするのは別にいいだろ。複数のアカウントでブクマしたりするのは良くないが
ソースコードをいくら見てもそのソースコード作成者が想定してるエンジン側の実装なんて推測できんだろ。
ちなみにその「細かいこと」が気になった発端は初歩であるはずのコードの挙動の理解につまづいたからだけどな。
setTimeout(() => { console.log("A"); }, 1001); setTimeout(() => { console.log("B"); },1000); console.log("C"); 上のsetTimeout()の各第二引数の大小関係をどのように調整しても常に第二引数により小さい数が指定されたもののコールバック関数が先に実行されます。 これはどういうことですか?先にsetTimeoutと書かれたもののコールバック関数からキューに登録され、キューへの取り出し方はjsの場合fifoが採用されているので、上記のコードのような場合は、()=>console.log("A")の方が先にキューに登録されたものとして第二引数に無関係に()=>console.log("B")より先に実行されるのではないのですか?-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250908192456# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaL6u+QAKCRBwMdsubs4+ SAtwAP49XRX8yOJwd/XLSKjjP1TASfuVR29t/NIhuLSNb0vr2AD8CtGJTYMzavjS i9TuxJTV/DSYuwhuBLnKkd0lsJOldQI= =wm4J -----END PGP SIGNATURE-----
確かに使ってた。使ってはいるけど解凍を使ってるのは自己解凍のところだけで、e,xオプションのところでは「ファイルを取り出す」表記。凍結表記もaオプションのところだけ。
(LHAになる前のバージョンだけど)LHarcソースコード内の日本語版の使い方
char use[] =
"LHarc version 1.13c Copyright(c) H.Yoshizaki(吉崎栄泰), 1988-89.\n"
"============================================================= 1989 - 5 - 21 ===\n"
" <<< 高圧縮書庫管理プログラム >>>\n"
"===============================================================================\n"
" 使用法:LHarc [<命令>] [{/|-}{<スイッチ>[-|+|2|<オプション>]}...] <書庫名>\n"
" [<ドライブ名>:|<基準ディレクトリ名>\\] [<パス名> ...]\n"
"-------------------------------------------------------------------------------\n"
" 《命令》\n"
" a: 書庫にファイルを追加 u: 書庫にファイルを追加(日時照合付)\n"
" f: 書庫のファイルを更新 m: 書庫にファイルを移動(日時照合付)\n"
" d: 書庫内のファイルの削除 e,x: 書庫からファイルを取り出す\n"
" p: 書庫内のファイルの閲覧 l,v: 書庫の一覧表示\n"
" s: 自己解凍書庫の作成 t: 書庫内のファイルの CRC チェック\n"
" 《スイッチ》\n"
" r: 再帰的収集を行う w: ワークディレクトリの指定\n"
" x: ディレクトリ名を有効にする m: 問い合わせを行わない\n"
" p: 名前の比較を厳密に行う c: 日時照合を行わない\n"
" a: 全属性を凍結の対象とする v: 他のユーティリティでファイルを閲覧\n"
" n: 経過表示をしない k: 自動実行のキーワードの設定\n"
"===============================================================================\n"
" 転載・再配布などは自由です。 Nifty-Serve PFF00253\n"
英語版の使い方
char use[] =
"LHarc version 1.13c Copyright (c) Haruyasu Yoshizaki, 1988-89.\n"
"================================================================ 05/21/89 ===\n"
" <<< High-Performance File-Compression Program >>>\n"
"===============================================================================\n"
"usage: LHarc [<command>] [{{/|-}{<switch>[-|+|2|<option>]}}...] <archive_name>\n"
" [{<drive_name>:}|{<home_directory_name>\\}] [<path_name> ...]\n"
"-------------------------------------------------------------------------------\n"
" a: Add files to archive u: Update files to archive\n"
" f: Freshen files in archive m: Move new files into archive\n"
" d: Delete files from archive e,x: EXtract files from archive\n"
" p: disPlay files in archive l,v: View List of files in archive\n"
" s: make a Self-extracting archive t: Test integrity of archive\n"
" r: Recursively collect files w: assign Work directory\n"
" x: allow eXtended file names m: no Message for query\n"
" p: distinguish full Path names c: skip time-stamp Check\n"
" a: allow any Attributes of files v: View files by another utility\n"
" n: display No indicator k: Key word for AUTOLARC.BAT\n"
" t: archive's Time-stamp option\n"
"===============================================================================\n"
" You may copy or distribute without any donation to me. Nifty-Serve PFF00253\n"
" (See the User's Manual for detailed descriptions.) ASCII-pcs pcs02846";
ChatGPTに聞いたらええんちゃうか
いい質問ですね!
これ、実は「どっちが正しい」みたいな決着はなくて、言語文化や時代背景によって意見が分かれる話題なんです。
---
1. for(;;) vs while(1) vs while(true)
* `for(初期化; 条件; 更新)` のすべてを省略すると無条件ループになる。
* 昔は「最適化や挙動が明確」という理由で好まれることもあった。
* ただし「1って何?ブール値?」と初学者には直感的でないかも。
* C++やJava、C#などブール型が明確な言語では「一番可読性が高い」。
* 「ずっと真の間繰り返す」という自然な書き方なので、最近はこちらが推奨されることが多い。
* Cではtrueを使うには stdbool.h をインクルードする必要があるので、昔は避けられがちだった。
---
2. 「for(;;)派」の人は誰?
ネットでよく言われるのは、Linuxカーネルのコード規約とか古いUNIX文化の影響です。
* 「無限ループは for(;;) を使う」とカーネル開発のスタイルガイドで書かれている。
* 理由は「歴史的にCで最も標準的で、誰もが見慣れているから」。
要するに「C文化圏ではfor(;;)が王道」というだけで、現代の教育やC++/Javaなどの文脈では while(true) の方が読みやすい、という感じです。
---
3. まとめると
なので、初学者が「while(true)の方が可読性高い」と思うのは大正解です 👍
---
👉質問:
HTMLコンパイラとは、一般的な「コンパイラ」の概念とは少し異なり、HTML文書や要素に対して新しい文法や振る舞いをブラウザに伝え、拡張するための仕組みを指すことが多いです。例えば、AngularJSのHTMLコンパイラは、開発者が定義したカスタム要素や属性(ディレクティブ)を解釈して、動作を紐づける役割を持ちます。これにより、標準のHTMLにはない独自の文法や機能をブラウザ上で実現できます。
一方、一般的な「コンパイラ」は、人間が書いたプログラムコードをコンピュータが理解可能な機械語や中間言語に翻訳するソフトウェアや処理のことです。この処理を「コンパイル」といい、プログラミング言語で書かれたソースコードを一括で変換し、実行可能な形式にします。コンパイラと対比されるのが「インタプリタ」で、こちらはソースコードを逐次読み解いて実行する方式です。
まとめると、「HTMLコンパイラ」はHTMLの静的な宣言文法を拡張し、新たな振る舞いを実現するものであり、主にフロントエンドフレームワーク(例:AngularJS)で用いられます。一方、「コンパイラ」はプログラムコード全般を実行可能な形式に変換する処理・ソフトウェアです。
https://ja.taiwebs.com/windows/download-html-compiler-2548.html
フロントエンドフレームワークで、新しいHTML要素や属性を作成するために用いる。
https://anond.hatelabo.jp/20250727120239
《民國紀事本末》(2013年)
いわゆる「共和国時代」の出来事を時系列に整理しつつ、従来の教科書的な叙述を批判的に再解釈した作品。史実の列挙にとどまらず、当時の政治的・思想的背景を浮かび上がらせ、国共内戦期から国民政府期に至る人脈や権力構造の連続性と断絶を明らかにする。
「華夏」という文明単位から「中國」という近代ナショナル・ステートへの移行過程を史的にトレース。劉仲敬独自の「文明圏分析」の下、周秦以降の冊封体制、清朝の版図拡大、近代ナショナル・アイデンティティの醸成をリンクさせ、「中国」という概念がいかに後付けの政治装置として形成されたかを論じる。
アイン・ランド(Ayn Rand)の伝記的考察。従来の思想史や伝記とは一線を画し、ランドの個人主義思想を中国や東アジアの文脈で再評価。彼女の小説『肩をすくめるアトラス』の世界観と、劉仲敬が批判する中央集権的体制との対比を鮮やかに描き出す。
儒教経典(「經」)と史書(「史」)が中国文明の自己叙述をいかに形作ってきたかを分析。『春秋』『史記』から始まり、後世の史観・儒学解釈が政治体制の正当化になった過程を追う。文字通り「経典」と「歴史」の相互作用に着目し、文明の自己神話化メカニズムを解剖する。
劉仲敬自身の思想的羅針盤を示す論考集。先行する思想・制度(「守先」)を理解した上で、新たな時代構造(「待後」)を構想するという二段階モデルを提示し、中国内部の制度変遷や外部文明の衝撃に対処する方法論を提起している。
東アジア近現代の主要人物を題材に、それぞれの生涯を通して「文明の堕落」を読み解く評論シリーズ。
《晚清北洋卷》:清末の北洋官僚をめぐる権力と腐敗の構造分析。
《國共卷》:国民党と共産党指導者層の思想的相違と利害駆け引き。
《民國文人卷》:黎明期共和国の文化人・知識人が抱えた矛盾と理想の断絶。
いずれも「近代国家の没落」をテーマに、政治家・知識人の個別事例から大局的な文明批判を行う。
ヨーロッパの国際秩序(ウェストファリア体制、産業革命後の列強均衡)が東アジアにもたらした制度や価値観を検証。清末以降の不平等条約から中華民国、共産党政権への制度移植過程を、構造主義的に解剖し、「外来」と「内向」の相剋を描き出す。
《中國窪地:一部內亞主導東亞的簡史》(2017年)
「窪地(低地)」概念を用い、ユーラシア内陸アジア勢力(モンゴル、満州、中央アジア部族)が東アジア世界に与えた影響を再考。従来の漢民族中心史観を覆し、「内亞(シベリア・モンゴル・満州)からの視点で見た中国史」を示す、劉仲敬の代表作のひとつ。
《滿洲國:從高句麗、遼金、清帝國到20世紀,一部歷史和民族發明》(2019年)
満洲国を単なる傀儡政権とみなすのではなく、高句麗→遼・金→清帝国へと続く「北方遊牧文明」の連続性を強調。20世紀の満洲国成立を「民族発明」の一例として論じ、ナショナル・アイデンティティ形成のダイナミズムを浮き彫りにする。
いわゆる「阿姨學(劉仲敬思想)」の内幕を語る、自著解説書兼思想史。各文明の興亡パターンを「源代碼(ソースコード)」として抽象化し、文明間の普遍的法則を提示。連載講義をまとめたスタイルで、初心者から上級者まで劉仲敬の全体像を掴むのに最適の一冊。