ノラカンノラカン

【電子版】実行環境ランタイムパッケージ

  • ダウンロード商品
    ¥ 1,500

関連記事: https://woshidan.hatenablog.com/entry/2019/09/28/192147 紙版との差分について: https://woshidan.hatenablog.com/entry/2019/09/28/191902 ■■ 誰のためのどういう本なの? ・C言語のコンパイルやリンカがどうしてもよくわからずgccでコンパイルして動かしながら実装していくのをあきらめ、シャーペンで紙の上にプログラミングしていたり ・初めてインターンに行ってgemやBundlerに出会ったとき、「なんか知らない人がいっぱい出てきたな…?」とめちゃくちゃ焦ったり プログラミングどころか、それ以前のところでプログラミングについて焦ったり諦めたりしそうな人、初心者にプログラミングを教える人を対象とした、各種チュートリアルなどの副読本です。 ■■■ プログラミング初心者がもやもやしがちな「実行環境」に関連する話題を扱っています さて、そういう昔の自分みたいなプログラミングの初心者がつまずくプログラミング以前のポイントといえばプログラミングの実行環境の構築ではないでしょうか。 というわけで、この本ではプログラムを実行するために必要な要素を扱うことにしました。 まず、プログラムを実行するためにはプログラムをコンピュータが扱える形に直したり、開発者が書いたプログラムを解釈・実行するプログラムが必要です。 また、我々が書いたプログラムはそれだけで動くわけではなく、他人の書いたプログラムをまとめたライブラリを揃えたり、設定ファイルやデータベースなどに入ったデータを必要とすることも多いでしょう。 ということで、他にもこうした実行環境を構成する要素はあるでしょうが(たとえばIDEやOSとか)、本書では上記の範囲に関連する話題を扱うことにします。 ■■■ ふいんき把握用にかんたんなコード例は多少ありますが、背景知識が中心です 自分自身の経験からチュートリアルや既にあるドキュメントによってコマンド自体はわかっても、そのコマンドがどういったことをしているかわからず不安になることが多かったです。 そこで、本書ではそういった背景知識となるような部分を説明していくことにしました。 そのため、実行環境に関連する話題を扱うといいつつ、ツールの細かいコマンドの一覧やオプションについては扱っていません。そうした具体的な構築手順は各ツールのドキュメントやチュートリアルに任せることにしています。 雰囲気をつかめる程度のかんたんなコード例はある程度載せていますが、 「コマンドは書いてあるのを叩けばいいんだろうけど、こうしたツールがどういうことをしているのかわからずもやもやする」 という人のための本です。 ■■ 具体的な内容について ■■■ 1章 プログラムのソースコードを変換して実行するための「言語処理系」 1章はプログラムをソースコードの状態から実行できる状態まで持っていったり、ソースコードを解釈して実行したりする言語処理系のお話です。 C言語の `Hello, World` をコンパイルしたときに実行可能な状態で機械語が入ったファイル(いわゆるWindowsにおけるexeファイル)が生成されるまでの流れを図を交えながら、1ステップずつ解説していきます。 その後、JavaやRubyのコンパイラやインタープリタの話にふれることで、コンパイルとインタープリトの意味をもう少しつかめるようになっています。 ■■■ 2章 必要なライブラリを揃えるためのツール 1章でこういう感じとして例にあげた「Hello, World」より複雑なプログラムを書いていく場合、たくさんのライブラリが必要となるでしょう。 2章ではそういったライブラリを管理するためのパッケージマネジメントという機能を持ったツール(Rubyのライブラリのためのツールとしてはgem, Bundler)を扱います。 こうしたツール間では扱う領域や言語、出てきた領域によって差がありますが、いくつかのツールを見比べていくことで新しいツールを学ぶときのチェックの勘所がみえてくるかもしれません。 また、シェルにコマンドを打ち込んだときに実行されるために必要な「パスを通すこと」に関するコラムもご期待ください。 ■■■ 3章 処理対象のデータを用意する プログラムはソースコードに書いた部分だけで動く場合もありますが、大抵の場合、プログラムの外側からデータを渡されて動くのではないでしょうか。 3章ではコマンド引数や設定ファイル、データベースサーバなど、プログラムが処理の対象とするデータを用意する方法についてかんたんに確認しておきましょう。 ■■■ 4章 言語処理系を動かしたりデータを置く「コンピュータ」の用意 ここまでで実行環境を構成する要素について3つほどお話してきましたが、いま特にWeb系の企業において実行環境を用意するツールといえばDockerですよね。 Dockerは隔離された実行環境を提供すると言われていますが、いったいどういうことでしょうか。 また、隔離された実行環境を用意するツールにはVirtualBoxなどの仮想化ソフトウェアを利用する方法もあるでしょう。 それらとDockerが実行環境を用意する仕組みはどう違うのでしょうか。 4章ではそのあたりがつかめるように、DockerやVirtualBoxなどコンピュータの他の部分から隔離された実行環境(作中では「コンピュータ」と「」をつけて表記)を用意する方法について確認していきます。

関連記事: https://woshidan.hatenablog.com/entry/2019/09/28/192147 紙版との差分について: https://woshidan.hatenablog.com/entry/2019/09/28/191902 ■■ 誰のためのどういう本なの? ・C言語のコンパイルやリンカがどうしてもよくわからずgccでコンパイルして動かしながら実装していくのをあきらめ、シャーペンで紙の上にプログラミングしていたり ・初めてインターンに行ってgemやBundlerに出会ったとき、「なんか知らない人がいっぱい出てきたな…?」とめちゃくちゃ焦ったり プログラミングどころか、それ以前のところでプログラミングについて焦ったり諦めたりしそうな人、初心者にプログラミングを教える人を対象とした、各種チュートリアルなどの副読本です。 ■■■ プログラミング初心者がもやもやしがちな「実行環境」に関連する話題を扱っています さて、そういう昔の自分みたいなプログラミングの初心者がつまずくプログラミング以前のポイントといえばプログラミングの実行環境の構築ではないでしょうか。 というわけで、この本ではプログラムを実行するために必要な要素を扱うことにしました。 まず、プログラムを実行するためにはプログラムをコンピュータが扱える形に直したり、開発者が書いたプログラムを解釈・実行するプログラムが必要です。 また、我々が書いたプログラムはそれだけで動くわけではなく、他人の書いたプログラムをまとめたライブラリを揃えたり、設定ファイルやデータベースなどに入ったデータを必要とすることも多いでしょう。 ということで、他にもこうした実行環境を構成する要素はあるでしょうが(たとえばIDEやOSとか)、本書では上記の範囲に関連する話題を扱うことにします。 ■■■ ふいんき把握用にかんたんなコード例は多少ありますが、背景知識が中心です 自分自身の経験からチュートリアルや既にあるドキュメントによってコマンド自体はわかっても、そのコマンドがどういったことをしているかわからず不安になることが多かったです。 そこで、本書ではそういった背景知識となるような部分を説明していくことにしました。 そのため、実行環境に関連する話題を扱うといいつつ、ツールの細かいコマンドの一覧やオプションについては扱っていません。そうした具体的な構築手順は各ツールのドキュメントやチュートリアルに任せることにしています。 雰囲気をつかめる程度のかんたんなコード例はある程度載せていますが、 「コマンドは書いてあるのを叩けばいいんだろうけど、こうしたツールがどういうことをしているのかわからずもやもやする」 という人のための本です。 ■■ 具体的な内容について ■■■ 1章 プログラムのソースコードを変換して実行するための「言語処理系」 1章はプログラムをソースコードの状態から実行できる状態まで持っていったり、ソースコードを解釈して実行したりする言語処理系のお話です。 C言語の `Hello, World` をコンパイルしたときに実行可能な状態で機械語が入ったファイル(いわゆるWindowsにおけるexeファイル)が生成されるまでの流れを図を交えながら、1ステップずつ解説していきます。 その後、JavaやRubyのコンパイラやインタープリタの話にふれることで、コンパイルとインタープリトの意味をもう少しつかめるようになっています。 ■■■ 2章 必要なライブラリを揃えるためのツール 1章でこういう感じとして例にあげた「Hello, World」より複雑なプログラムを書いていく場合、たくさんのライブラリが必要となるでしょう。 2章ではそういったライブラリを管理するためのパッケージマネジメントという機能を持ったツール(Rubyのライブラリのためのツールとしてはgem, Bundler)を扱います。 こうしたツール間では扱う領域や言語、出てきた領域によって差がありますが、いくつかのツールを見比べていくことで新しいツールを学ぶときのチェックの勘所がみえてくるかもしれません。 また、シェルにコマンドを打ち込んだときに実行されるために必要な「パスを通すこと」に関するコラムもご期待ください。 ■■■ 3章 処理対象のデータを用意する プログラムはソースコードに書いた部分だけで動く場合もありますが、大抵の場合、プログラムの外側からデータを渡されて動くのではないでしょうか。 3章ではコマンド引数や設定ファイル、データベースサーバなど、プログラムが処理の対象とするデータを用意する方法についてかんたんに確認しておきましょう。 ■■■ 4章 言語処理系を動かしたりデータを置く「コンピュータ」の用意 ここまでで実行環境を構成する要素について3つほどお話してきましたが、いま特にWeb系の企業において実行環境を用意するツールといえばDockerですよね。 Dockerは隔離された実行環境を提供すると言われていますが、いったいどういうことでしょうか。 また、隔離された実行環境を用意するツールにはVirtualBoxなどの仮想化ソフトウェアを利用する方法もあるでしょう。 それらとDockerが実行環境を用意する仕組みはどう違うのでしょうか。 4章ではそのあたりがつかめるように、DockerやVirtualBoxなどコンピュータの他の部分から隔離された実行環境(作中では「コンピュータ」と「」をつけて表記)を用意する方法について確認していきます。