読者です 読者をやめる 読者になる 読者になる

Re:ゼロから始めるRuby on Rails

プログラミング初心者が最短でRuby on Railsを習得するまでの道のり

Ruby基礎vol.2

前回で少しRubyを触ってみたんで
「今回はもっとRubyを知ろう」ということを
テーマに学んでいきます。

具体的には様々なメソッドやツールを理解しよう
ということを試みてみようかなと思います。

目次

✏︎Rubyのメソッドやツールやその他


✏️Rubyのメソッドやツールやその他

●getsメソッド
getsメソッドは文字列の入力だけをするメソッド。
putsが出力するのに対してgetsは入力するということ。

コンパイラインタプリタ
コンパイラインタプリタって何だろう?

まずプログラムというのは元々人間が理解できるように書かれているもの。

けどコンピュータは機械語と呼ばれるような言語しか理解することはできず
人間が書いたプログラムをそのまま理解することはできない。

そこで、人間が書いたプログラムをコンピュータに理解できるように
機械語に変換してあげる必要が出てくる。
そのプログラムを機械語に変換する方法が、
コンパイラインタプリタという2つ方法なのです。

では、この2つの方法の違いは何かみていきましよう。
コンパイラ
コンパイラプログラミング言語で書かれたソースコードを事前に機械語へ「一括変換」して変換語のプログラムがコンピュータに命令を与えます。
「事前に変換する」というところがポイント。

実行時に改めて変換する必要がないため、高速で処理ができます。
また、実行時に変換するための仕組みも必要ないため
単独でプログラムを実行できます。

変換する仕組みのことを「コンパイラ
変換する作業のことを「コンパイル」と呼びます。
C言語」や「C++」はコンパイラに分類されます。

インタプリタ
インタプリタプログラミング言語で書かれたソースコード(=プログラム)を読み込んで、それを機械語に変換してコンピュータに命令を与えます。

「プログラム実行時に変換する」、というところがポイント。

実行時にその都度変換するため、当然、時間が掛かります。
また、実行時に変換するための仕組みが必要になります。
「Basic」や「Perl」といった言語はインタプリタに分類されます。

機械語
人間が理解できるように書いたプログラムと機械語と呼ばれるもの。
それじゃ、いちいち機械語に変換するより機械語で最初から
コードを書いちゃえばいいんじゃない?
という初心者的発想があったため機械語についても調べました。

コンピュータに搭載されるCPU自体は単なる計算機です。
計算の際には電流の「オン」と「オフ」をもとにした
「1」と「0」による2進数の計算しか出来ません。
コンピュータは「1」と「0」の命令でしか動かないのです。

この2進数で書かれた命令の集まりを「機械語」と呼びます。

つまり機械語でコードを書こうと思えば2進数でプログラムを
書かなくてはいけなくて、それは無理難題だから人間が理解できる
プログラミング言語があるってことです。

参照したサイト:
インタプリタとコンパイラ
コンパイラとインタプリタ


irbってなに?
Rubyのリファレンスマニュアルを参照すると

irb は interactive ruby の略です。
ruby の式を標準入力から簡単に入力/実行するためのツールです。

と書いてある。
ようはruby のコマンドを手軽に実行して、結果を確認できるものみたい。
ではターミナルでさっそく試してみよう!

rezerorails:~/workspace $ irb
2.3.0 :001 > 

とこう表示される。
試しにirbで'getsメソッド'をメソッドを使用して文字を入力し
値が返ってくることを試してみました。
結果はこちら
f:id:kazuyuki0518:20170219190149p:plain

ちゃんと入力した値が返ってくるのを確認できました。
最後に\nと書かれているが
これは改行を表しています。

そしてこのコンピュータに命令を出しているirbなんですが
これはインタプリタ機械語に変換されています。