RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
また新しいカテゴリーができてしまいました。回路がアリならプログラムもアリだろ!っていう発想で作ってみました。
まぁ。今回は一回目ということもありますので昔お世話になったROBOLABについての記事を書こうと思ったのですが、
ROBOLABってよくよく考えたらタイル式なので、紹介をするのにいちいちタイルの写真が必要になってしまう・・・
これは非常にめんどくさいのでいきなり「C言語」というものを紹介しようかと思っています。
まぁ今日は簡単なところから、
まず、C言語ってなんでしょう。とりあえず調べてみたら・・・
C言語(Cげんご)は、1972年にAT&Tベル研究所のデニス・リッチー (Dennis M. Ritchie) が主体となって作ったプログラミング言語である。英語圏では単に C と呼称されており、日本でも文書や文脈によっては同様に C と呼称される。 UNIXの移植性を高めるために開発された経緯から、オペレーティングシステムカーネル向けの低レベルな記述ができることを特徴としている。byうぃきぺでぃあ
へぇ。結構新しいんだ・・・。なんてことは置いておいて。
要するにプラグラムするための言語なんです。ソフトのことじゃないんです。
言語というからには、どこかの世界で通じる言葉なんですよね。
じゃあどこの世界でこの言葉は通じるのか。
とりあえず、地球上でこの言葉が通じるのは人間とコンパイラというものだけです。ロボットには通じません。
まぁこの辺でふたつほど疑問が出てきますよね。
コンパイラって何?ということと、ロボットには通じない?というあたりでしょうか。
このふたつの疑問、これは人間がロボットにプログラムを送る仕組みを説明すれば、同時に理解することができます。
まぁ、普通は人間がプログラムを書いてそれをロボットに送るので順序的には人間が一番最初になりますが、
それだと説明が難しいので、今回はあえて一番最後にあたるロボットから説明をしていこうと思います。
まずロボット、この中には小さいコンピューター、「マイコン」が入っていて、
それが人間でいう脳になってロボットを動かしている、という話はしたかと思います。
でもその脳はちょっと頭が悪い・・・というより人間の頭の構造とだいぶ違うので、
人間が理解できるような、文字で書かれた言語なんてものは到底理解できないんです。
じゃあマイコンはどんな言語が理解できるか、それは数字です。しかも1と0だけの二進法でしか理解ができません。
つまり、PCからロボットに送るプログラムは、1と0の羅列だけで表現しなくてはなりません。
でも、人間が直接そんな1と0との羅列だけで表されたプログラムなんか書けると思いますか?
まぁ一般人には無理ですね。なので人間側はわかりやすいように文字でプログラムを書く訳です。
でも、それでは使う言語が違うので人間は直接ロボットに命令を与える(プログラムを送る)ことができないですよね。
日本語のできないアメリカ人と、英語のできない高専生では会話になりませんよね。それと同じです。
そこで何が必要かというと・・・何が必要だと思います?まぁ現実の世界だと・・・
通訳ですよね(笑)
まぁそれ同じように、人間が書いた言語とロボットが理解できる1と0の羅列、これを機械語といいますが、
このふたつを翻訳できる「なにか」が必要になるわけです。
まぁその何かが翻訳機「コンパイラ」という訳です。
まぁこれはソフト・・・の部類なのかな?一応exeファイルだし。
まぁこれに人間が書いた言語を入れると勝手にロボットが理解できる機械語に変換してくれるよーっていう代物です。
という訳でプログラムを送る流れとしては、
人間がPCの前の椅子に座る
↓
PCの電源を入れる
↓
パスワードを入れてOSを起動させる
↓
プログラムを書く
↓
打ち間違える
↓
打ち直す
↓
プログラムが完成する
↓
コンパイルさせる
↓
コンパイルされたファイル(機械語)をロボットに送る。
↓
ロボットが動く
↓
ロボカップジュニアで世界優勝!
といった感じです。だったらいいなぁ。
まぁそういうことなので人が書いたプログラムは直接ロボットに送っても理解されず、
コンパイラという翻訳機にしか理解してもらえない。という訳です。
因みに一時期うちの学校で、人間相互でC言語を使ってコミュニケーションを図っていたこともありましたが、
あれはどうにお勧めできません。やっぱりC言語は人対コンパイラの構図以外では使わない方が無難です。
まぁそんな感じのC言語です。
まぁこのようにコンパイラがあって、プログラムを一度変換して実行や送信をしなくてはいけない言語を
「手続き型言語」と呼びます。その中でもこういった形式の言語はコンパイラ言語と呼びますね。
BとかCとかDとかがこれに該当しますね。あとはJAVAとかC++とかもそうですね。あとTex(言・・・語・・・?)とか・・・
LEGOでいうならNQC、NXC、RobotC全部そうですね。ROBOLABやNXT-Gも中身はコンパイラ言語です。
それと対照にコンパイルが入らない言語もあります。
それを「スプリクト言語」といいます。
これはなんでコンパイルがいらんかというと、基本的にこの言語たちはPC内でしか使わない言語なんですね。
だからわざわざ機械語に翻訳しなくても理解できちゃうんです。(まぁホントはちょっと違うけど・・・)
特にWeb系列の言語には多いですね、JAVAスプリクトとかHTMLとかパイソンやエクセルのVBAもそうじゃないかな?
一部怪しいですが気しない方向で。
とまぁこんな感じ終わってみればC言語というよりコンパイラ言語の説明になってしまっていましたね(笑)
次回のProgram記事では、このコンパイラについてもうちっと詳しく説明します。
実際のC言語の書き方とかについては、もうちょい先になりそうですね。
ところで、回路、プログラムときたら次に来るのは・・・ロボットの機械構造・・・ですよね?
一番苦手分野なので微妙な記事になるかもですが、今後はLEGOブロックに関してを中心に
機械構造についてのカテゴリーも増やしていこうかと考えております。
それでは。
(^・ω・)ノRadiumProduction in RoboCupJunior
まぁ。今回は一回目ということもありますので昔お世話になったROBOLABについての記事を書こうと思ったのですが、
ROBOLABってよくよく考えたらタイル式なので、紹介をするのにいちいちタイルの写真が必要になってしまう・・・
これは非常にめんどくさいのでいきなり「C言語」というものを紹介しようかと思っています。
まぁ今日は簡単なところから、
まず、C言語ってなんでしょう。とりあえず調べてみたら・・・
C言語(Cげんご)は、1972年にAT&Tベル研究所のデニス・リッチー (Dennis M. Ritchie) が主体となって作ったプログラミング言語である。英語圏では単に C と呼称されており、日本でも文書や文脈によっては同様に C と呼称される。 UNIXの移植性を高めるために開発された経緯から、オペレーティングシステムカーネル向けの低レベルな記述ができることを特徴としている。byうぃきぺでぃあ
へぇ。結構新しいんだ・・・。なんてことは置いておいて。
要するにプラグラムするための言語なんです。ソフトのことじゃないんです。
言語というからには、どこかの世界で通じる言葉なんですよね。
じゃあどこの世界でこの言葉は通じるのか。
とりあえず、地球上でこの言葉が通じるのは人間とコンパイラというものだけです。ロボットには通じません。
まぁこの辺でふたつほど疑問が出てきますよね。
コンパイラって何?ということと、ロボットには通じない?というあたりでしょうか。
このふたつの疑問、これは人間がロボットにプログラムを送る仕組みを説明すれば、同時に理解することができます。
まぁ、普通は人間がプログラムを書いてそれをロボットに送るので順序的には人間が一番最初になりますが、
それだと説明が難しいので、今回はあえて一番最後にあたるロボットから説明をしていこうと思います。
まずロボット、この中には小さいコンピューター、「マイコン」が入っていて、
それが人間でいう脳になってロボットを動かしている、という話はしたかと思います。
でもその脳はちょっと頭が悪い・・・というより人間の頭の構造とだいぶ違うので、
人間が理解できるような、文字で書かれた言語なんてものは到底理解できないんです。
じゃあマイコンはどんな言語が理解できるか、それは数字です。しかも1と0だけの二進法でしか理解ができません。
つまり、PCからロボットに送るプログラムは、1と0の羅列だけで表現しなくてはなりません。
でも、人間が直接そんな1と0との羅列だけで表されたプログラムなんか書けると思いますか?
まぁ一般人には無理ですね。なので人間側はわかりやすいように文字でプログラムを書く訳です。
でも、それでは使う言語が違うので人間は直接ロボットに命令を与える(プログラムを送る)ことができないですよね。
日本語のできないアメリカ人と、英語のできない高専生では会話になりませんよね。それと同じです。
そこで何が必要かというと・・・何が必要だと思います?まぁ現実の世界だと・・・
通訳ですよね(笑)
まぁそれ同じように、人間が書いた言語とロボットが理解できる1と0の羅列、これを機械語といいますが、
このふたつを翻訳できる「なにか」が必要になるわけです。
まぁその何かが翻訳機「コンパイラ」という訳です。
まぁこれはソフト・・・の部類なのかな?一応exeファイルだし。
まぁこれに人間が書いた言語を入れると勝手にロボットが理解できる機械語に変換してくれるよーっていう代物です。
という訳でプログラムを送る流れとしては、
人間がPCの前の椅子に座る
↓
PCの電源を入れる
↓
パスワードを入れてOSを起動させる
↓
プログラムを書く
↓
打ち間違える
↓
打ち直す
↓
プログラムが完成する
↓
コンパイルさせる
↓
コンパイルされたファイル(機械語)をロボットに送る。
↓
ロボットが動く
↓
ロボカップジュニアで世界優勝!
といった感じです。だったらいいなぁ。
まぁそういうことなので人が書いたプログラムは直接ロボットに送っても理解されず、
コンパイラという翻訳機にしか理解してもらえない。という訳です。
因みに一時期うちの学校で、人間相互でC言語を使ってコミュニケーションを図っていたこともありましたが、
あれはどうにお勧めできません。やっぱりC言語は人対コンパイラの構図以外では使わない方が無難です。
まぁそんな感じのC言語です。
まぁこのようにコンパイラがあって、プログラムを一度変換して実行や送信をしなくてはいけない言語を
「手続き型言語」と呼びます。その中でもこういった形式の言語はコンパイラ言語と呼びますね。
BとかCとかDとかがこれに該当しますね。あとはJAVAとかC++とかもそうですね。あとTex(言・・・語・・・?)とか・・・
LEGOでいうならNQC、NXC、RobotC全部そうですね。ROBOLABやNXT-Gも中身はコンパイラ言語です。
それと対照にコンパイルが入らない言語もあります。
それを「スプリクト言語」といいます。
これはなんでコンパイルがいらんかというと、基本的にこの言語たちはPC内でしか使わない言語なんですね。
だからわざわざ機械語に翻訳しなくても理解できちゃうんです。(まぁホントはちょっと違うけど・・・)
特にWeb系列の言語には多いですね、JAVAスプリクトとかHTMLとかパイソンやエクセルのVBAもそうじゃないかな?
一部怪しいですが気しない方向で。
とまぁこんな感じ終わってみればC言語というよりコンパイラ言語の説明になってしまっていましたね(笑)
次回のProgram記事では、このコンパイラについてもうちっと詳しく説明します。
実際のC言語の書き方とかについては、もうちょい先になりそうですね。
ところで、回路、プログラムときたら次に来るのは・・・ロボットの機械構造・・・ですよね?
一番苦手分野なので微妙な記事になるかもですが、今後はLEGOブロックに関してを中心に
機械構造についてのカテゴリーも増やしていこうかと考えております。
それでは。
(^・ω・)ノRadiumProduction in RoboCupJunior
Comments
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(01/03)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
プロフィール
HN:
Luz
性別:
男性
アーカイブ