- 締切済み
CASLII アセンブラ (C C++ JAVA 等)言語 独学の短所に悩んでいます
現在CASLIIを独学で学習しています 独学なので、周りに教えて頂ける人もいなく困っております。 スクールで受講しているなら、講師に直接質問して解決できますが 独学で「解らないところを質問したい」時、どうしたら良いでしょうか? 参考書の問題に行詰る度に、ネット検索をして理解を進めてきましたが 独学の短所に 気持ち限界を感じています。 検索をして 言語(CASLIIやその他の言語も含め)の概要説明されたホームページ等は多く見受けられます。が、 直接質問できるところは 少なく 悩んでいる次第です。 そういった解らないところを質問できる場所を教えて頂ければ幸いです。 (掲示板 コミュニティ等) また、通信講座で良いところがあれば教えてください (ほとんどの講座で、受講するカリキュラムで解らないところを質問できると思いますが カリキュラム以外に、書店で購入した参考書の問題等について質問解答が可能な講座がありましたら教えて頂ければ幸いです)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- GOOD-Fr
- ベストアンサー率32% (83/256)
追加。 「音声入力ができる」という意味以上に、人が話している普通の言葉を解釈し、その意図を理解して自動的に動作してくれる、というような「話のわかる」コンピュータは今後30年や40年では出てこないでしょう。と考えれば、やっぱりプログラミングとは「コンピュータの考え方に自分の考え方を合わせるという作業」であり続けるわけです。 すでにお気づきのように、動作がおかしい/思ったように動作しない場合に「コンピュータが悪い」ということはほとんどなくて、人間側の勘違いや見落としに起因することがほとんどです。うまく動作しないコンピュータを見て「なんとか理解してやらなくちゃな」と暖かい目で今後も精進を続けてくださることを望みます。 さて、CASL というのは、いわゆる「アセンブリ言語」に属する言語である、と理解していますが、アセンブラというのは「低級」であるため、人の思考パターンから大きく乖離していることはすでにご理解できていると思います。これは杞憂だと思いますが、CASL 等のアセンブラを使い始める前には、いわゆる「高級言語」でコンピュータ的発想法の修練を積んでください。最近であればやはり C や C++ かと思いますが、Basic でも Pascal でも、なんでもかまいません。 おそらく、そのレベルはすでに済んでいるのだと思っていますが、もし時間的な余裕があるのであれば、それらの言語で書かれたソースをコンパイラがどのように「翻訳」しているのか見てみるのもいいかもしれません。たとえば VC++ は、Express Edition であれば、タダでダウンロードできますし、コンパイラオプションでアセンブリ言語を出力させることができます。ソースとコンパイラの出力を対比すれば、C 言語がどういうマシン語に翻訳されたのかを見ることができます。もちろん、これは「回り道」になりますし、理解できたとしても x86 になってしまいますが、まったくのムダになってしまうということはありません。(x86 は、16bit 仕様では、「かなり不自由な」命令体系になっていて、どちらかというと「生まれの悪さ」ばかりが目立つ CPU ですが、32bit 仕様では直交性もあり「普通」の CPU です。が、レジスタ数が決定的に不足していて、これが改善されるのは 64bit 仕様の場合に限られます。現在市販されている/入手可能なコンパイラは基本的には 32bit 仕様のコードを生成するようになっています) かなりの「大回り」になるかもしれませんが、もし余裕があるのであればこういう方法もある、ということで。(というか、CASL 自体は試験以外では使い道がないので、「本物のマシン語」を理解したほうが、役に立つのはまちがいないんですけどね) 最後に余計なことだとは思いますが。 野球選手になれなくても、サッカー選手にはなれるかもしれません。サッカー選手にもなれなくても、たぶん「エンジニア」にはなれるでしょうし、エンジニアには向いてなくても営業で力を発揮できるかもしれません。正直なところ、「プログラマ」というのは、面倒なわりに実りの少ない職業です。また、プログラミングの経験は将来プログラムをしないエンジニアになっても、営業になっても、役に立つ場面はあります。そのあたりも頭のかたすみに入れながら、「なるほど、コンピュータってこういうものなんだ」ということを理解して「概念」を組み立てていく努力を続けられるよう望みます。
- 2kaku34
- ベストアンサー率30% (101/329)
CASL2シミュレータ http://www.vector.co.jp/soft/win95/prog/se182050.html http://www2s.biglobe.ne.jp/~y-kusano/ アセンブラで学ぶコンピュータ基礎のキソ(仮想コンピュータ) http://itpro.nikkeibp.co.jp/article/COLUMN/20070404/267378/?ST=techskill CPUのレジスタとメモリーアドレスを書いて、確認しながら頑張って下さい。
お礼
1つ1つエラーを繰り返しながらやっております、有難うございます。
補足
url 有難うございます 紙だけではなく、シュミレータも使っております それと、…頑張ります。ありがとうございます。
- GOOD-Fr
- ベストアンサー率32% (83/256)
どのプログラミング言語に限りませんが、「誰かに教わる」「学校に行く」「わからなければ質問する」というのは、根本的には習得できるかどうかと関係ないと思います。 結局、プログラミングというのは、「コンピュータの考え方に自分の考え方を合わせる」という作業に過ぎません。コンピュータを概念化して自分の思考パターンの一部としてとりこめない限り、どんなに優秀な人に質問しても結局は理解できないものなのです。 人類最初のコンピュータから現代に至るまで、コンピュータを概念化し、プログラミング言語を習得するには、自分で納得いくまでプログラムをすることしかありません。参考書もネットもいりません。言語システムを入手して、なんでもかんでもプログラムして、動くまで1週間でも1カ月でも考え続けることをお勧めします。 私の経験では、CASL は「半日、本を読んだだけ」で習得できましたが、あくまでも他の言語がベースにあるからで、それぞれの言語の習得は数カ月なり1年なりはかけてきています。「動くだけでいい」プログラムなら、どの言語でも1日もかからないと思いますが、その程度の理解では言語ごとのいいところを活かしたプログラムもできませんし、プロを名乗るわけにもいかないでしょう。 ここのサイトでも「プログラムが動きません」とだけ書いて、「ソースがないと判断できないでしょう」と反論されて抜粋を載せている人を見かけますが、正直、見た瞬間に破って捨てたくなるくらい、ひどいものばかりです。「どこが悪いか指摘する」以前に、頭をかちわって人間を叩きなおしたいぐらい、どうしようもないわけですが、まだ概念ができていないので、「手の入れようがない」のです。 もし、質問者がこのレベルをすでに過ぎているのであれば、「独学の限界」などと言わないと思います。自分で悩んで解決したほうが楽しいですし、簡単ですからね。
お礼
>自分で悩んで解決したほうが楽しいですし 確かにそれは実感しました。失敗×n …出来たっ、の瞬間はとても嬉しいです。
補足
>結局、プログラミングというのは、「コンピュータの考え方に自分の >考え方を合わせる」という作業に過ぎません。 参考になりました。その解釈が当方には欠けていました。 >ここのサイトでも「プログラムが動きません」とだけ書いて… 当方も解らないところを投稿した覚えがあります。 「ソース(問題)」+「必ず自分なりに考えた回答を載せて」 その折、機会がございましたらアドバイス頂ければ大変ありがたいです 宜しく御願いします。
- eroermine
- ベストアンサー率18% (83/444)
CASLIIだったら エミュレータ-がいろいろ出てます。 http://www.chiba-fjb.ac.jp/fjb_labo/casl/casl2.cgi ..これは文字コードEUCなので注意 その他いろいろ。Windowsで直接使える奴もあったはず。 とにかくプログラムは自分で書いて実行しないと意味無し。
お礼
ご回答有難うございます、またアドバイス頂ければ幸いです。
補足
url ご案内有難うございます 購入した参考書のCD-ROM(シュミレータ)使って書いてます 実行結果「なぜそうなるの?」をテキストと何度もにらめっこ&ソース実行。です、そんな時 先輩諸氏に質問&アドバイスできたら…と感じます。
お礼
>野球選手になれなくても… ありがとうございます、励みになりました。アドバイス頂けて幸いです。
補足
回り道をしたくない。それは誰もが考える安易で短絡的な結論です 回り道と感じる = ("今"必要な知識だけ欲しい。紐付いている膨大な言語史の量を一見し気後れする。お手軽に、簡単に、無駄なく、ステップしたい) 回り道と感じない = それは、"好奇心"の一言に尽きると思います(当方の見解ですが) nヶ月を費やし…スプーン1さじ(小)ほど前進した 実りはあった。時間を費やし基本理解を深めた結果、 その後は、書籍ページがどんどん進む(基本が身について応用が可能だから) 俯瞰的に見渡すと異なる事(点)が散在してリンクしている その点(ALGOL58 CPL BASIC C C++ JAVA …andmore) リンク先も1つ1つを辿っていけば"何を言っているのか"が解らなくもない…という 少なからず当方もそれを体験し、血や肉になった実りがありました。 回答者様が仰る事は「回り道」ではなく貴重な一言です。 確かに、「わかりませーんっ 教えてください」…では、 >頭をかちわって人間を叩きなおしたいぐらい、 というのはその通りと思います(苦笑) 蛇足ですが、義務教育に言語(C C++ JAVA等)必修な時代になったなら、私達はもっと賢く豊かになるかもしれませんね。