【でんきかいでんのブログ】でんきかいでんのブログ電子工作、ミシン、ペンタブレット、で使える、アイデア・材料・道具の紹介。PCデータのわかりやすいバックアップ方法。こだわり系テンキーレス有線キーボードの使用感レビューなど。※まだ超初心者なので、覚え書きメモのようなものです。機械語に翻訳(コンパイル)する前のプログラムを人間が書かなければならないわけですが、そのための言語が世の中には何種類もあるそうです。AVRに書き込むための翻訳(コンパイル)前のプログラムを書くのに、初心者が勉強しやすい、ネット上や本屋に実例が多くある言語はどれか。初心者が始めるのに一番適した言語はどれなのか。自分が始めるのにいいのはどの言語なのか。アセンブリ言語プロセッサが直接実行できる言語は機械語のみであるが、機械語はバイナリ(数値)の羅列なので人間には理解しにくい。そこで、機械語を直接記述するのではなく、ニーモニックと呼ばれる命令語でプログラムを記述することで、人間により分かりやすくしたものがアセンブリ言語である。アセンブリ言語の意味は個々のプロセッサに依存するため、高水準言語のような移植性はない。WikipediaAVRや参考としてPICを調べているとアセンブリ言語で書かれたプログラム例を見かけます。Wikipedia情報が正しいのであればそのまま別のマイコンに試してみるということは不可能なわけです。中身が読めなければ応用もできないわけですね。初心者にはなかなかつらそうです。プログラミング言語の種類の一つで、コンピュータが直接解釈・実行できる言語(マシン語)と1対1に対応した言語。コンピュータに近い低水準言語(低級言語)である。マイクロプロセッサの種類(命令セットの種類)ごとに異なる。マシン語の命令などは数値の羅列で表現されるため、そのままでは人間には理解しにくい。アセンブリ言語はマシン語の命令などと1対1に対応する英単語などを使い、プログラムを記述する。できあがったプログラムはアセンブラと呼ばれるソフトウェアによってマシン語に変換され、実行される。現在では、より人間が扱いやすいよう抽象化されたコンパイラ型言語やインタプリタ型言語(スクリプト言語)などの高水準言語が主流だが、マイクロプロセッサの性能を限界まで引き出すチューニングを行いたい場合や、組み込みソフトウェアの開発などハードウェアに近い分野のプログラミングなどでは、現在でも用いられている。】BASIC言語BASIC「言語」とは書かず、一般的にはBASICと書くみたいです。BASIC(ベーシック)は手続き型プログラミング言語のひとつ。code」(「初心者向け汎用記号命令コード」を意味する)の頭字語である。FORTRANの文法が基になっており、初心者向けのコンピュータ言語として、1970年代以降のコンピュータ(特にパソコン)で広く使われた。Basicの文法に影を残している。歴史的な経緯から、FORTRANやパソコンではC言語と比較されることが多い。高水準言語であるとされるが、もともとは構造化などたいして高水準な機能は無い(低水準拡張も多いともされるが、「抜け道」が用意されているのはどんなものでも普通のことである)。ダートマスBASICはコンパイル方式だが、インタプリタとして実装された処理系が多い。loop(REPL)のように洗練されたものではない。古いBASICではすべての行頭に行番号を必要とし、GOTO文などの飛び先は行番号で指定する。行番号は、テレタイプ端末時代に処理系と一体の行指向テキストエディタで扱うのに便利であった。現在でも互換性のために両者を残している処理系もある。本来は、RUNなどのように、プログラム外から処理系に指示を与えるものはコマンド(命令)、FORなどのようにプログラム中のものはステートメント(文)、と、ダートマスBASICでは明確な区別があったが、次第に混同されていった。プログラム中の予約語(キーワード)には文の他に関数がある。BASIC等では変数は一文字といったものも多い)。文字列変数の内容等を除いて、大文字と小文字を区別しない。入力の時点で全て大文字に変換される処理系もあった。算術演算子以外の記号は極力使わない。論理演算子はAND、OR、XOR、NOTである。括弧は演算の優先順位も、関数の引数も、配列もすべて「()」のみを用いる。ブロックも「{}」のような括弧ではなく「FOR文からNEXT文までの間」といった構文により指定する。代入と比較はどちらも「=」である。1」のような、キーワード「LET」を省略した代入の構文が好まれた。ファーストクラスの型は数値型と文字列型である。数値は浮動小数点数だけのものもあるが、整数型などがあるものもある。文字列型の変数名は末尾に「$」を付ける、といった規則のものもある。RIGHT$など、文字列操作関数が豊富なことが多い。明示的な変数宣言を必要とせず、変数を使用し始めたところで宣言したものと解釈される。変数は自動的に初期化される(実数型は0、文字列型は空文字列)。プログラムは先頭行から実行される。BASICそのものは初心者には覚えやすそうな感じです。検索してみると、BASICでAVR用のプログラムを書いて、その実例を公開されている親切なサイトもありますね。他の言語の進化に伴いBASICはあくまで初心者向けの言語でありプロにとっては論外のものということになった。一方でプログラミングの専門家以外の人がプログラミングをするのにBASICが重宝されることも依然多い。UBASICや十進BASICはいずれも数学者が開発したものである。当時のPCの処理速度から、処理の高速化が必要な部分はデータ形式でアセンブリ言語による処理を呼び出すなどの手法もとられた。各メーカーのパソコンに標準搭載されたBASICは、機種ごとに画面操作やI/O直接操作などの独自拡張が行われた。マイクロソフト製(MS-BASIC、BASICA、G-BASIC、GW-BASICの移植版)のものや、その命令体系を引継ぎ実装したものである、F-BASIC、Hu-BASIC、カタカナで表現するG-BASIC(前述のMicrosoftの物とは異なる)、PETに由来するS-BASIC、SEGAのベーシックカートリッジ、Cを意識したX-BASICなど各社が独自にBASICを開発し、いわゆる「方言」が生まれた。この結果、たとえBASICのメーカーが同じでも「あるパソコンで作ったBASICプログラムは、他のパソコンではそのままでは動かすことができない」ことの方がずっと多かった。BASICというのは様々に派生したBASICがあるのですね。カタカナで書くBASICまであるとはびっくりです。(VBA)がWindowsにおける代表的なプログラミング言語のひとつとして広く利用されている。Basicは、GUIに特化したRAD環境として大幅に拡張が施され、元のBASIC言語とは、かけ離れてしまっている。BASICは依然として初心者向けの言語ではあるが、パソコンに添付されることはなくなった。プログラムの入門でもBASICを使わず、最初からC言語などで教える教育機関も多い。無料で使えるJavaなどの、洗練された後発言語の普及により、開発環境としては選択肢の一つでしかなくなった。Basicは、GUIに特化したRAD環境として大幅に拡張が施され、元のBASIC言語とは、かけ離れてしまっている。言語は手続き型言語であり、コンパイラ言語として設計している。コンパイル速度などを追求したが、代わりにコンパイル後のコードの安全性を犠牲にしている。アセンブラのコードと同じことを実現できるようなコンピュータ寄りの言語仕様になっている。C言語”コンパイル後のコードの安全性を犠牲にしている。”ん?安全性を犠牲にしている?すごく気になる一文なんですが、初心者の自分にはこの辺りはまったくわかりません。初心者にもわかるように説明できる方がおられたら是非とも教えて頂きたいところです。アマチュアからプロのエンジニアまで、非常にプログラマ人口が多い。言語は正負の両面含めてコンピュータの世界に大きな影響を及ぼしているが、最大の原因はCPUを出荷するときにC言語を同梱していることと、その結果としてのプログラマの多さがある。言語を使用できるハードウェアは多様である。採用ソフトウェア分野が広い。言語が拡張可能であるため、あらゆる分野に対してある程度対応可能であり、現実的な選択肢として用いる。場合、大抵のことがスクリプト言語・マクロプロセッサやフィルタやそれらの組み合わせで処理できるため、うまく分野の棲み分けができていた面があった。言語が使われている場合もある。低水準な記述が出来る高級言語とも、高級言語の顔をした低級言語とも言われる。コーディング上の自由度が非常に高い。そのため良くも悪くも何でも出来てしまう強力さは多くのプログラマの支持を集める一方で、セキュリティー脆弱性や潜んだバグによる想定外の動作、コンパイラによる最適化の難しさがあり、それゆえにコンパイル速度が遅いなどの欠点の原因ともなっている。自動車分野ではMISRA-CというC言語部分集合(subset)を定義して、C言語の弱点を補っている。言語向けのエディタが豊富で開発環境が整備しやすい。現行のプログラミング言語から初心者がAVRのためにプログラムを覚えるなら、やはりC言語かな、と。いったプログラミングが超苦手だ、今まで本当にこういうのやったこと無いし拒否反応がすごい、という場合は、BASICにしておいた方がいいのかな、とも思います。まーゆっくりあせらず、1日1歩という感じで、騙し騙しでも続けていけば何とかできるようになるもんです。他人と比べたりしないことですね。正直に言うとすでに心が折れかけてる【自分が】過去の自分と比べてほんの少しでも前進できればいいんです。他人と比べることには何の意味もありません。そんなことをして落ち込んでもまったく無駄です。その他人はあなたの代わりに人生を豊かにしてくれるわけではありませんからね。自分が、自分のために、自分で、自分自身を前進させるしか無いわけです。それが生きてるってことですから。まー、とりあえずちょっとずつやっていこうと思います。関連記事PICAXE(ピカクス)も楽しそう。■あなたのお名前、又はニックネーム記入欄(無記名でもOKです。)■コメント書き込み欄(スパム対策のため、コメント内容は管理者が確認してからしか表示されません。)「コメント非表示」管理人しか閲覧できないコメントにする。んきかいでんプロフィール:思い付いたら追記予定。思ったことを書く:gplus.denkikaiden.netでんきかいでん.comコメント、質問、お気軽にどうぞ。このブログはリンクフリーです。「役に立ったよ!」って思われたら1クリックお願いしたいです。ランキングには興味ありません。「内容が役に立った!」と思ってくれた方がおられることを知りたいだけなのです。方で質問して下されば、私のわかる範囲のことであれば可能な限り答えたいと思っていますので、遠慮なく話し掛けて下さい。お気軽にご質問どうぞ。回答はTwitterで流しますが、長い説明や画像が必要な場合はブログ記事にすることもあります。(03/14)最新コメントおおおQIにします。「Majestouch2のテンキーレス青軸」でもそうなのですね。同じように感じる方が居られるのですね。貴重な体験情報ありがとうございます。リンク全ての記事を表示する検索フォームこのブログ内で検索する。