砂糖ではなく構文シェル(Bash)コマンドをアセンブリコードや機械語コードなどの「低レベル」タイプのコードに変換するには?

砂糖ではなく構文シェル(Bash)コマンドをアセンブリコードや機械語コードなどの「低レベル」タイプのコードに変換するには?

以下を考慮してください。

cd ~
cd $HOME

最初のコマンドは、あまり抽象的ではない2番目のコマンドのための可能な砂糖構文であると言いたいと思います。


プログラミングの初心者にシェルに焦点を当てて、どのようにコマンドが抽象化されるのかを示すために、次のように尋ねます。
砂糖ではなく構文シェル(Bash)コマンドを「低」タイプのコードに変換する方法、例えばアセンブリコードまたは機械語コード(またはcd $HOMEアセンブリ表現などの間のすべて)。
これを達成し、コンピュータコマンドが単純なものから複雑なものにどのように変化するかを示すために、どのソフトウェア(おそらくシェル)を使用できますか?

ベストアンサー1

Bashに言及したので、cdアセンブリ言語に変換する方法は次のとおりです。

git://git.savannah.gnu.org/bash.git
cd bash
./configure
make
cd builtins
./mkbuiltins -D . cd.def
gcc -S -DHAVE_CONFIG_H -DSHELL  -I. -I..  -I.. -I../include -I../lib -I.    -g -O2 -Wno-parentheses -Wno-format-security cd.c

次に、対応するアセンブリ言語をbuiltins/cd.s。 (インストールする必要がある開発ツールがたくさんあります。インストール方法はディストリビューションによって異なり、./configure何が欠けているかを教えてくれます。)

私はこれが特にプログラミング初心者にとって非常に役に立つと思います。

おすすめ記事