アカウント名:
パスワード:
「プログラムは手段」と言っている人に、「プログラムは目的」と繰り返し言っても無駄でしょう。
あと、プログラムそのものが目的というのはどういう事でしょうか?
あ,いや,あんまりまじめにそれらを勧めているわけではなくてw
そういった,プログラミングそのものや研究が目的な世界を紹介するのも面白いんじゃないでしょうかといいたかっただけです.
CHRs [kuleuven.ac.be] 宣言的にプログラムの満たすべき性質を記述すると解を探索してくれる.(と思う) 命令ってなぁに?な世界 Tiger本 [princeton.edu] SMLでコンパイラのつくりかたを説明した本. 最近日本語訳も出たみたいですし,内容としてはかなり分かりやすく書かれています.(講師は必要ですけど)
これらCHRやSML(の性質の保証)はアセンブラ(やC)を幾ら極めようと到達できない世界だと思います.
実際に研究してい
>こういう議論で「アセンブラ」を出す奴からは教えてもらわないほうがいいと思います。
なんか「おじいちゃんが買ってくれるご本」な話だなニーズギャップが大きいしマンガばっか読んでたよでも本は好きな経験からすると国語の授業のおかげかしら
たぶん重要なのは「正しい知識の吸収順」より「正しい?はじめのきっかけ」なのかね?
アセンブリ→C
という順は、分かりやすいと思う。「C=構造化アセンブリ」ですし :-pでも、Cありきのプログラミングが初心者向きのプログラミングとは思えない。
BASIC/PASCAL/FORTRAN/COBOL/LISP/CAP-Xしかなかった時代、処理系の入手もままならなかった時代は、BASIC→アセンブリ→Cしかできなかっただけのことでしょう。
それでもアセンブリというならば、EDSAC [warwick.ac.uk]を学ぶべきでしょう。
分かりやすいとしてもニーズギャップが大きいという話では
12歳はともかく
最近の新入社員研修では、汎用機のマニュアルを渡されて、0から1ヶ月でOSを設計&実装する研修はやってないんでしょうか?# 当然、チームマネジメントも受講生がやります。
使わされたのが、DIPSなんでAC
> これだけ意味不明だと質問の意図すら分かりません。
あなたがアセンブラを理解すれば、質問者の意図も判りますよ。
もうそんな時代じゃないのよ
そうだね。でも8051はまだ現役なんだ。
そのくらいの子供でもアセンブリ言語くらい、その存在を教えて適当な環境与えといてやれば放っといても勝手にやるよ?その手のものに適性のある子供ってのは「地図上の空白」を許せないからだ。
そもそも、トイエミュなんて目的不明なモン、やらされる方にとっては穴掘って埋めるようなモンだぞ?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
プログラムは手段だから (スコア:2)
人生経験の少ない子どもに、実務的なものはハードルが高いだろうから、
ゲームとかツールみたいなものになるでしょう。
そうすると結果の見えやすい、イアンタプリタのBASICあたりが入りやすいと思います。
昨今なら、JavaScriptでもいいでしょう。
しかし、高級言語は基本部分をライブラリに下請けに出してしまうので、
コンピュータの原理を学ぶために、アセンブラは勉強しておくのがいいと思います。
そこで、BASICからアセンブラを呼ぶといった方法が役に立つでしょう。
大切なことは、プログラムは、何かを実現するための手段であって、
目的ではないということです。
そこを理解してもらうことが肝要でしょう。
Re: (スコア:0)
curryやCHRを勉強したり, tiger本読んだりしてもいいと思います.
目的がはっきりしているなら自ずと使用言語も絞られるでしょう.
Re: (スコア:0)
何をしたいかが重要でしょう。
Re: (スコア:0)
何をしたいかが重要ですけど,プログラムそのものが目的ではなぜだめなのでしょうか?
Re:プログラムは手段だから (スコア:2)
「プログラムは手段」と言っている人に、「プログラムは目的」と繰り返し言っても無駄でしょう。
あと、プログラムそのものが目的というのはどういう事でしょうか?
Re: (スコア:0)
自分がガキの頃を振り返ってもると、プログラミングそのものが目的だった、と言えるかな。
もちろんマイコン(当時はパソコンという言葉もまだ無く)なんて持っていなくて、ひたすらノートにBASICで自作ゲームのプログラムを書いて、秋葉原に行ってはそれを慣れない手付きで打ち込んで、デバッグして、そしてようやくできあがったゲームは1〜2回やって、おしまい。夕方になってリセット。もう帰る時間。
そんなゲームは遊んでみてもそれ自体がすげ〜面白いというわけではなく、それを作る事自体が楽しいんです
Re: (スコア:0)
> 「君が作っているプログラムは誰の為のものなの?」
> なんて事を、プログラムを作っている12歳の子供に問うのでしょうかねぇ。
マイコン少年あがりの本家タレコミ人が弟の意向を無視して自分を投影しようとしているからだよ。
Re: (スコア:0)
とても初心者向きでないことは想像できますが(^^;
Re: (スコア:0)
あ,いや,あんまりまじめにそれらを勧めているわけではなくてw
そういった,プログラミングそのものや研究が目的な世界を紹介するのも面白いんじゃないでしょうかといいたかっただけです.
CHRs [kuleuven.ac.be] 宣言的にプログラムの満たすべき性質を記述すると解を探索してくれる.(と思う)
命令ってなぁに?な世界
Tiger本 [princeton.edu] SMLでコンパイラのつくりかたを説明した本. 最近日本語訳も出たみたいですし,内容としてはかなり分かりやすく書かれています.(講師は必要ですけど)
これらCHRやSML(の性質の保証)はアセンブラ(やC)を幾ら極めようと到達できない世界だと思います.
実際に研究してい
Re: (スコア:0)
アセンブラの使い方を勉強しても原理は分からないので、
アセンブラの中身を勉強するんですよね :-p
ソースを読み込んで、オペコードとオペランドに分割したり、
ニモニックから表をひいて処理を振り分けたり、
命令を展開するバイト数を計算したり、
データ定義命令を実装したり、
アドレス疑似命令でベースアドレスを決定したり、
ラベルにアドレスを割り付けたり、
相対アドレスと絶対アドレスを計算したり、
マクロを実装したり、
週一の講義を3か月続けて理解できるだけでもすごいけど、
実装できるくらいなら、ほとんど天才かも :-p
こういう議論で「アセンブラ」を出す奴からは教えてもらわないほうがいいと思います。
Re: (スコア:0)
>こういう議論で「アセンブラ」を出す奴からは教えてもらわないほうがいいと思います。
なんか「おじいちゃんが買ってくれるご本」な話だな
ニーズギャップが大きいしマンガばっか読んでたよ
でも本は好きな経験からすると国語の授業のおかげかしら
たぶん重要なのは「正しい知識の吸収順」より
「正しい?はじめのきっかけ」なのかね?
Re: (スコア:0)
アセンブリ→C
という順は、分かりやすいと思う。「C=構造化アセンブリ」ですし :-p
でも、Cありきのプログラミングが初心者向きのプログラミングとは思えない。
BASIC/PASCAL/FORTRAN/COBOL/LISP/CAP-Xしかなかった時代、
処理系の入手もままならなかった時代は、
BASIC→アセンブリ→Cしかできなかっただけのことでしょう。
それでもアセンブリというならば、EDSAC [warwick.ac.uk]を学ぶべきでしょう。
Re: (スコア:0)
分かりやすいとしてもニーズギャップが大きいという話では
Re: (スコア:0)
という前提で、
Cを理解するのにアセンブリが必要→どうせ必要ならば先のほうが楽?
予備知識がいろいろあったほうが理解が楽なのは確かだけど、
コンピュータの原理だのアセンブリだの、
『プロカメラマンを目指すわけでもなく家族写真を撮るためだけに、
写真学校に通ってからプロカメラマンの弟子になる』
くらい大げさな気がするんですけどね(^^;
Re: (スコア:0)
12歳はともかく
最近の新入社員研修では、汎用機のマニュアルを渡されて、
0から1ヶ月でOSを設計&実装する研修はやってないんでしょうか?
# 当然、チームマネジメントも受講生がやります。
使わされたのが、DIPSなんでAC
Re: (スコア:0)
アセンブラからライブラリを呼ぶだけというのは、アセンブラの勉強とは違いますし、
例示されているようなのは、アセンブラの書き方の勉強であって、アセンブラの勉強ではありません。
Re: (スコア:0)
「アセンブラが書けるようになる」→アセンブラを実装する?
「アセンブラからライブラリを呼ぶ」→??
「アセンブラの書き方の勉強」→アセンブラの設計?実装?
「アセンブラの勉強」→?
これだけ意味不明だと質問の意図すら分かりません。
Re: (スコア:0)
> これだけ意味不明だと質問の意図すら分かりません。
あなたがアセンブラを理解すれば、質問者の意図も判りますよ。
Re: (スコア:0)
# あなたを含む :-p
Re: (スコア:0)
FortranでもC++でもいいから、置き換えて考えればワカルでしょう。
C++言語なんて言うか。
「アセンブラ」推進者のみなさん、どうぞ! (スコア:0)
C++やFORTRANならば、コンパイラ(システム)に相当。
ふまえて、意味を説明してください。
>アセンブラの書き方の勉強であって、アセンブラの勉強ではありません。
→Fortranの書き方の勉強であって、Fortranの勉強ではありません。
→C++の書き方の勉強であって、C++の勉強ではありません。
====
アセンブラが違えば、CPUが違えば、言語仕様は違います。
仕様の違いは、CやLispの方言のレベルではありません。
どれがおすすめなんでしょうか?
Re: (スコア:0)
どんな言語でも最後は機械語に落ちるわけで、アセンブラの知識があるかどうかで
他の言語でも効率のよい速いコードを書けるようになります。
私は2冊位しか本を買わず、殆ど独学でZ80(MSX)のアセンブラを12歳頃から始めて、
15歳位にはM80やL80を使ってフルアセンブラでコードを書けるようになっていました。
ブートセクタのブート部分から自分で書いたり、未定義命令もオペコードの組み合わ
せから自分で探してマクロ登録したり、描画系とかよく使うサブルーチンはライブラリ
化したり色々やっていました。
日高徹氏のマシン語秘伝の書シリーズは面白くてためになるのでおすすめです。
今のプロテクトモード(32bitや64bit)なx86は命令数が多すぎるので、リアルモード
(16bit)なx86や、エミュレータを使って68000,Z80,6502,6809辺りで始めるのがよろしいかと。
Re: (スコア:0)
もうそんな時代じゃないのよ
Re: (スコア:0)
そうだね。
でも8051はまだ現役なんだ。
Re: (スコア:0)
要素数が65536の配列を作る。アキュムレータ、レジスタなどを用意する。配列を1つずつ読み取り、読み込んだ要素に対応するコマンドを実行させる。
今のPCなら、余裕でしょう。実用的ではないが、バイナリのデータでバイナリのデータを変更するというのは、それなりの楽しさがあると思う。アセンブリはその過程で覚えるもの。最初から、アセンブリで何かを作ろうとしても無駄。
20年前なら、高速化というお題目があり、BASICの延長線上にアセンブリがあったが、今はそうではない。
Re:プログラムは手段だから (スコア:1)
そのくらいの子供でもアセンブリ言語くらい、その存在を教えて適当な環境与えといてやれば放っといても勝手にやるよ?
その手のものに適性のある子供ってのは「地図上の空白」を許せないからだ。
そもそも、トイエミュなんて目的不明なモン、やらされる方にとっては穴掘って埋めるようなモンだぞ?