1分で分かる!アセンブラとは?
ねぇねぇ。ジャバ―ド先生、ちょっと聞いてもいい?
どうしたの?
このまえ、レタスコンピュータさんにお邪魔してたんだよ。そしたら、ひょんなことからレタスコンピュータのベテランエンジニアさんとお話することになったんだ。
レタスコンピュータさんって、たしかいろんなハードウェアの開発をしていたよね。
そうそう。通信機器の開発とか得意なんだよね。それでね、そのベテランエンジニアさんが急に「アセンブラ」ってやつの話をしはじめたんだよ。今は高水準言語で開発すればいいけど、昔はアセンブラがどうとかって。
なるほど。
残念ながら、ボクはアセンブラってなんのことかさっぱりわからなかったから、その場では適当に話を合わせていたんだけどね。いまさらながら、ちょっと気になっちゃってさ。
ということは、アセンブラについて聞きたいってことだね?
そういうこと!
アセンブラって最近じゃあんまり聞かなくなったから、ことりん君が知らなくても無理はないかもしれないね。
うん。ボクまったく聞いたことないんだよね。
うんうん。もちろん覚えているよ!たくさん教えたもらったよね。
そういったプログラミング言語でプログラミングすることで、結果としてコンピュータが動くってのはいいよね?
そうだね。コンピュータ上で動くものを開発するためにプログラミングをしているんだもんね。
そのとおり。じゃあ、コンピュータってそれぞれのプログラミング言語を理解していると思う?
あ、コンピュータがプログラミング言語を理解しているかってことか…。理解していないとプログラミングしたとおりに動けないよね?でも、そんなたくさんのプログラミング言語を理解するのも大変そうだよね…。
プログラミング言語によっては、アップデートで新しい構文が追加されることもあるからね。
それを全部把握するのはちょっと厳しそうだなぁ。
そうなんだ。実はコンピュータはプログラミング言語のことがさっぱり分からないんだ。コンピュータが理解できるのは機械語っていうやつだけなんだよ。だから、プログラミング言語を機械語に翻訳してあげる人が必要になるってわけ。
なるほど。プログラミング言語から機械語に翻訳するのがお仕事の翻訳家が必要なんだね。
そうそう。その翻訳家がアセンブラってやつなんだよ。
おぉ、でた!アセンブラ!
厳密にはプログラミング言語って2種類にわけることができるんだ。さっき話したJavaやRubyは高級言語、もっと機械語に近いものを低級言語って呼ぶんだよ。
なるほど。高級言語と低級言語ね。
その高級言語を機械語に翻訳するのがコンパイラ、低級言語を機械語に翻訳するのがアセンブラっていうんだよ!
えっと、ちょっと待ってね。整理させて…。低級言語を機械語に翻訳するのが、アセンブラってことだね??
そのとおり!そのコンパイラも内部的には、高級言語 → 低級言語(アセンブリ言語) → 機械語の順番で翻訳していることが多いんだよ。
そっか。結局はコンピュータは機械語しか分からないから、コンパイラもアセンブラも最終的には機械語に変換しているんだね。
そういうこと!それでさ、そのレタスコンピュータのベテランエンジニアさんは、どんな話をしていたのかな?
アセンブラのことは分かったけど、それでもそのベテランエンジニアさんが何を言いたいかは、今でもよくわからないからジャバ―ド先生も忘れて!
う~ん、気になる…けど、また今度ね!
アセンブラとは?採用に役立つアセンブラの基礎知識
アセンブラとは
アセンブラとは、アセンブリ言語などの低級言語で書かれたプログラムを、機械語に変換するためのソフトウェアです。なお、JavaやPythonなどといった高級言語については、コンパイラというソフトウェアを使用して機械語に変換します
アセンブラを使うエンジニア
現在、一般的なアプリケーション開発において、アセンブラ(アセンブリ言語)は使用されていません。ただし、ハードウェアを直接コントロールする必要がある組み込み系のシステムや、OSなどの開発時には必要となります。
アセンブラを使うエンジニアの特徴と在籍業界
前述したように、昨今ではアセンブラやアセンブリ言語を使うエンジニア自体が、あまり多くありません。そのため、採用時にはかなり苦労することが予想されます。
なお、アセンブラを使うエンジニアが在籍する業界としては、ハードウェア業界、組み込み業界などに在籍している可能性が高いです。
採用する時に知っておくとよいこと
アセンブラとアセンブリとアセンブルの違い
アセンブラとアセンブリとアセンブルはすべて異なる意味を持っています。かなり紛らわしいために一度整理しておきます。
まず、今回のテーマであるアセンブラとは、前述した通り低級言語を機械語に変換するソフトウェアのことです。次にアセンブリとは、低級言語(アセンブリ言語)のことを指します。なお、機械語の命令と低級言語の命令は、1対1の関係となります。最後にアセンブルとは、機械語へ翻訳する行為を指します。
採用時にそれぞれの言葉の意味が必要になるケースはあまり無いかと思いますが、ざっくり言葉の意味の違いを把握しておきましょう。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス
アセンブラの豆知識
アセンブラの必要性
「アセンブラは必要がない」「アセンブラを学習する意味はない」という主張をたまに耳にします。たしかに、昨今のアプリケーション開発では、直接アセンブラ自体を使用することはほとんどありません。
ただし、ハードウェアのコントロールが必要になるアプリケーションでは、まだまだ低級言語が活躍しています。また、アプリケーションを開発するエンジニアとして、低級言語やアセンブラの仕組みを把握しておくことは、とても大事なことでもあるのです。