「アセンブラ」を含む日記 RSS

はてなキーワード: アセンブラとは

2008-03-18

http://anond.hatelabo.jp/20080317233150

http://anond.hatelabo.jp/20080317233150

トンデモ環境懐疑主義者かよ。もっと勉強しろ。

最近、ITがコモディティ化してきたことに危機感を覚えた既存ITベンダーが、システムを複雑にするために作り上げた新しい技術

省電力が売り物になるのはグリーンであろうがなかろうが当たり前。昔から工夫されてる。ノートPCを何だと思ってる?

なお、ITインフラの消費電力から二酸化炭素排出量を算出する数式があるが、もちろんこじつけ

パソコン二酸化炭素を出してるわけじゃないから要注意

どこがどうこじつけなんだか。火力発電所ってのを知らないのかね。電気がどこから来てると思ってるんだか。火力発電所を他の発電所事実上原子力以外選択肢なし)にリプレースするのにどんだけ時間コストがかかると思ってるんだか。

グリーンITの流れについていくのは素人にはお勧めできない

レガシーな技術に束縛されるおそれあり

何がレガシーで何がそうでないかってのはかなり予測が難しいんだよ。アセンブラなんてレガシーだと思ってたら組み込み全盛のこのご時世だ。

そもそも一つの技術分野にしか対応できないモノカルチャー人間エンジニアを名乗ること自体片腹痛い。そんな軟弱な「エンジニア」が他の分野にいると思ってるの?COBOLが使えるなら一週間かそこらでCも使えるようになるはずで、ならないんだとしたらCOBOLが理解できてない証拠。こんだけ本が出てるご時世で勉強する時間も手段もなかったとは言わせない。

2008-02-28

http://anond.hatelabo.jp/20080228152620

「私、プログラミング好きだよ」と言うプログラマに、好きな言語や開発ツールを聞いて「C/C++/C#」の名前があがってくるとげんなりする。心底がっかりする。C/C++/C#は俺も大好きだし、素晴らしい開発環境だと思うけども、臆面も無く低レベルプログラミング言語を挙げる人のほとんどが、それ以外の低レベルプログラミング言語を知らないんだもの。それどころか、IA-32仕様書があることすら知らないし、興味が無い。せめて4004の基本構造くらい理解してから言ってもらえませんかね。

要するに「プログラミングを理解する知識の深い私」を演出するために、いちばんてっとり早くて優等生な回答なんですよね。C/C++/C#は。あと、アセンブリ言語や、機械語もこのカテゴリに入る。

確かにUnixを記述したC言語として鉄板なことは間違いないけど、本当にプログラミングが好きならもっとたくさんの名前が挙がってもいいと思う。もっと書けよ!インテル系以外も!最近のも!「C」「アセンブラ」「MMX」「SSE」「3DNow!」のコンボはもう飽きました。

1度だけ悲しきAdaという回答が返ってきて、土下座せんばかりに感動したことがあります。あ…この方、本当にプログラミング趣味でやってるんだ…と思ったよ。


ごめんなさい、僕、嘘をつきました。

2008-02-24

プログラミング言語なんて単なる道具

http://anond.hatelabo.jp/20080224122041

推薦図書については末尾に書くけど、その前にちょっとお話。うざいと思ったら読み飛ばして末尾に行ってね。


どの言語がよいか、というのは「ゴルフクラブで一番よいクラブは何か」という問いと同じなので、正直意味のある問いとは思えないなあ。言っちゃ何だけど、言語を覚えて満足してる奴は、高いクラブを買って満足してるだけの奴と同じだよ。大事なのは「何をやりたいか」で、それさえ明確になれば後は単なる慣れの問題に過ぎないし。

一つや二つの言語を扱える以上になれない奴は、ごくごくごくごく少数の例外を除けば、所詮人に使われるだけのやつにしかなれんよ。そんなの、大学出てまでやる仕事じゃない。営業並みの対人能力があるとか半導体の回路を引けるならまた別だけど、それはもはやプログラマと呼べる仕事じゃないしね。


ゴルフだったら、ショートホールもあればロングホールもあるし、バンカーに落としてしまうこともグリーン上のヨセもある。プログラマも同じ。大事なのは、

「適切な言語を選ぶ能力

「必要が来たとき最小限の勉強時間どん言語にも対応できる能力

じゃないかなあ。これがあれば、その時点で知っている言語が一つだろうと十個だろうと大した問題にはならんよ。

世の中にある言語は、アセンブラとか C みたいに低水準(機械に近いところ)でやるのに適したものもあるし、C++Java みたいに大規模なビジネスアプリの開発に向いてるものもあるし、VB とか Perl みたいに細々とした作業を処理するためのお手軽ツールもあるし、Lisp とかみたいに、実用よりも理論的理解を指向したといえるようなものもある。だけど、アセンブラLisp みたいな特殊なものを除けば、どれも基本的な考え方は同じだ。確かに C++Java に出てくる「オブジェクト指向」は多少取っつきは悪いけど、きちんとした本を元にして勉強すれば一週間で理解できるよ。あとは処理速度と書きやすさ・手軽さを天秤に掛けての判断にすぎない。ゴルフでいうなら、パターを除けばどのクラブも基本的には原理が同じみたいなもんだ。ウッドとアイアンとウェッジという区別はあるけれど、基本的には飛距離とコントロールバランスだろう?


どの言語を選ぶかなんてのは所詮は小手先のことなのさ。大事なのは、何をしたいか、何のためにプログラマになりたいかということだ。そのためには、いろんな素養が必要になってくる。

もし、半導体コンピュータOSみたいな低レベルな話に近いところ興味があるなら、電気工学とか形式言語理論とか数理論理学とかそういう知識が重要になってくる。ロボットを作ったり生体認証をしたり他の機械システムを制御したりというような高度な話に興味があるなら、数学とか統計とか信号処理とか制御工学をきっちり勉強した方がいい。業務で扱われる大規模なシステムを扱いたいのなら、理系の知識よりもむしろ世の中の仕組みを広く浅く知っといたほうがいいだろうね。


もはや、「プログラムが書ける」なんてのは、「ワープロ表計算ソフトが使える」というのに毛が生えた程度の技能でしかないんだ。十五年前なら、「一太郎Lotus 1-2-3(当時は WordExcel なんてのはあったのかどうかも微妙)が使える」といえば「即戦力」だったかもしれんが、今更そんなの当たり前の技能でしかないだろ?

大事なのは、「他の奴が簡単には追いつけないもの」を持つことだ。大学での数年間はそのために使うべきだよ。目標を持って真面目にかつ気楽に取り組むことだ。がんばりたまえ。


注意 この文章中でわからない言葉が出てきたらまずはぐぐってほしいが、わからなくても気にすることはない。それらの中身を知っていることは大した問題じゃない。大事なのは全体的な雰囲気だから。


推薦図書その他

まずは、この本をお薦めしたい。

やさしいコンピュータ科学 (Ascii books)

プログラマ(というよりコンピュータ)が関わるあらゆる分野を、本質を押さえて入門程度に書いた本。「やさしい」という題名だけれど、高校生の基準で考えると「難しい」と思う。大学では、「やさしい」「難しい」の基準が何段階も格上げされるから気にしないように。これが「やさしい」と思えるようになったら大学卒業レベルと思っていい。だから余り気負わず、頭から読もうとせずに適当に面白そうなところを眺めて、興味が出たら他のところも拾い読みするという感じで十分。

その上で、興味を持った分野の本を探したいと思ったら次はこれがお勧めだ。

改訂新版 コンピュータの名著・古典100冊

これを見て、適当にぱらぱらめくって、読みたいものから読めばいいよ。この辺の本なら大学図書館にはあると思うし。ただし、ここに出ている本はどれも本格的だから、難しすぎると思ったら適当に放り投げていい。そうやって、いろんな分野をつまみ食いしていく間に全体像が見えてくるはずだ。

あと、それとは別に基本情報技術者試験を受けるのもいい。大学の授業についていくための基礎力としては十分なはず。これが易しすぎると思ったら、ソフトウェア開発技術者試験でもいい。もっとも、これに通るぐらいなら大学2年か3年ぐらいの力はあると思うけどね。

2008-01-05

スーツギーク作業着

オレはスーツなんてカッコいい服も着れず、ギークみたいなスマートな考えや自己表現もできず、

工場勤務の「作業着」な組み込みソフトウェアエンジニアだった。

何となく地味な感じがし、それが嫌で組み込み系の開発から離れ、Web系とかオープン系?的な仕事に移った。

From マイコン上でC/アセンブラ To Windows/Unixサーバ上でJava/C#/VB/Perl...+色々なライブラリフレームワーク

スーツを着て直接お客さんに会う機会も出来たし、瑣末なモノだけど自分が利用したオープンソースに対してパッチを送ったりもした。

でも、なんか違う。本当のスーツには敵わないし、ギークみたいにいろんな事を知らない。なんか仕事の達成感も少ない。

今になって思ったよ「作業着」を着て開発してた時がすごく楽しかったって。

何時も「作業着」を着てコードゴルフをしてた気がする。(必要に迫られてだけど)

Webアプリ作りなんかより色々と考える時間が多かった。独自の制御アルゴリズムとかね。

上で書いた地味な感じというのは、着てる服が「作業着」で工場勤務だからオレって土方だよなぁって当時は自分で思ってたから。

でも、今やってる事の方がよっぽどIT土方だなぁって思ってる。

なんかここ↓見てたらモノ作りしたくなった。

http://monoist.atmarkit.co.jp/

いや、そんだけです。

2007-09-28

[][]私はこれで perl から乗り換えました

OO, Perl, Ruby

Perl から Ruby への移行メモ

INTRODUCTION OF RUBY

class

404 Blog Not Found:coders.each{|you| you.get(this) if you.langs[0] != 'ruby' } # - 書評 - 初めてのRuby

1章 ようこそ、Rubyのある生活へ

1.1 Rubyの特徴

1.1.1 オブジェクト指向言語

1.1.2 より良いPerl

日本 Ruby 会議 2007 - Log0610-S5

ある研究によれば、生産性はそれぞれのプログラマでそれぞれ違う。

でも、あるプログラマに着目すれば、

そのプログラマ時間あたりに書けるコードの行数は、プログラミング言語によらず決まっている、

たとえば一年に50,000行なのだそうだ。

行数が決まっていたら、

どの言語で一番多くのことを達成できる?

そう、Rubyだよね。

どうしてそんなに Love Ruby ?

例えば C のプログラムより 50 倍遅くなったとして、実行時間はどのくらい変わるだろうか?

もし C のプログラムが 0.01 秒で終わる としたら、

Ruby 版は 0.5 秒。あなたのプログラムは 0.49 秒速くす るために C で書く価値があるのか?

プログラムは開発の時間よりも保守時間のほうがかかるというのはもはや常識だけども、

Ruby で書いてあれば例えば、

C で書いたプロ グラムよりも楽に保守できるはずだ。

そういう点でも Ruby は非常にいい。

だいたい、スピードに対してごちゃごちゃ言うなら C じゃなくアセンブラで書けばいい。

それをなんで C で書いてるのかって言えば、

それはもちろん「コードがわかりやすい」とか、「早く書ける」って のが理由だろう。

そして、Ruby は C よりわかりやすいし速く書ける。

ということは、「C よりも Ruby」というのは非常に自然な選択では ないだろうか?

Perl, Python, Ruby の比較

404 Blog Not Found:「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い

実行速度より実装速度(前編) - Object Station

ポール・グレアム「プログラミング言語が解決するもの」 - らいおんの隠れ家

Rubyが解決: Perlはその場しのぎだし、Lispの文法はおっかない。

2007-09-18

http://anond.hatelabo.jp/20070918181611

書ける。

つってもアセンブラCPUと1対1の命令だから石によって全然違ってきちゃうんだよ。

自分が書けるのはz80,masm,emoti(ry,ARMだな

2007-09-14

今の子供達にどうやってプログラミングの楽しさを教えたらいいのか?

うちはとても貧乏だったというのに、なぜか俺が小学三年生のときに、親父がパソコンを買ってきた。

親父は電気工事屋をやっていたから電気製品が好きだったんだろう。

当時小学六年生だった兄貴機械いじりが好きだった。 電子ブロックなんてのが家にあった。

とはいえ、二十万円もするパソコンコンビニウーロン茶を買うかのように買ってきた親父が、あとでオカンになんて言われたのか、いまとなっては知るよしもない (いや、親父もオカンもまだ生きてるので、聞こうと思えば聞けるが) 。

ともかく、俺が小学三年生の時には家に MZ-2000 というパソコンがあった。

三年生のときはそもそもパソコンとはなにかも知らなかったし、親父も兄貴も壊れものを扱うかのように大事に触るので (実際壊れものだ) 、俺には触らせてもらえなかった。 親父や兄貴の背中越しに見ているだけだった。

当時はパソコン用のソフトなんてのがそこらに売っていたわけではないし、 DSソフトのように気軽に買えるようなものでもなかったので、付属BASICポチポチ入力しては RUN する、これしかなかった。

それでもなにかすごいことがこの銀色の箱の中で起きているということは、子供ながらに理解した。

そのうち学年が進んで小学五年生になるころには、俺も兄貴といっしょにプログラム入力したりしていた、と思う。 六年生ぐらいだったかもしれない。

当時はベーマガという雑誌があった。 毎号買ってきては、短いプログラムだけ選んで入力した。

そういえば、 MZ-2000付属していたオレンジの本も、子供知的好奇心をおおいにあおった。 中西さん挿絵が絶妙だった。

ベーマガには、「アルゴリズム」という単語がわりあい頻繁に登場していたと思う。 体操じゃないよ。

高度な関数も使えない、グラフィックもろくに扱えない当時のパソコンで、おもしろいゲームを作るにはアイデア勝負、とりもなおせばアルゴリズム勝負みたいなところがあった。

サイン関数を使って放物線の動きを表現したり、 X 軸の動きと Y 軸の動きを入れ替えて物体の反射を表現したり。

いまではなんてことはない小手先以下の技だけど、そもそも当時のパソコンではそんなことぐらいしかできなかった。

パソコンサンデーでもアルゴリズムという単語がわりとよく出てきていたと思う。

そんななかで、パソコンというのが魔法の箱ではなく、ちいさな処理を組み合わせてなにかをするものだということを理解した。

そのころすでに親父はパソコンさわりもせず、兄貴と俺のオモチャと化していた。

グラフィックボードと G-RAMカラーディスプレイまで買ってくれたんだから、親父の無駄遣いもここに極まれりというもんだ。

数十しかない BASIC の命令を組み合わせれば、色つきのグラフィックや音まで出せた。 BASICプログラミングは楽しかった。

兄貴夏休みを数日使って I/O に載っていた「フォボス」のダンプリストを打ち込んだりした。 ひとりがリストを読んで、もうひとりがそれをひたすら打ち込んだ。 ダンプリスト呪文雑誌数十ページ分打ち込んだら、ものすごいゲームができた。 楽しかった。

中学に進んで、 Oh! MZ を読んでアセンブラや他の言語にも触れ合えた。 あまり深入りはしなかったけど。

高校商業高校情報理科に進んだ。 校内のホストTSSログインして、 COBOLFORTRAN なんかを習った。 情報処理二種も取った。

で、いまはシステム開発の会社にいる。

さて、現在、俺にも子供がいる。

今年の四月で小学三年生になった。

子供には家の PC はさわらせてない。 たまにマウスで絵を描かせるくらい。

現代っ子らしく、 DSポケモンなんかして遊んでいる。 Wii もある。

さて、この子にプログラミングの楽しさを教えるとしたら、どうしたらいいだろう?

いまの PCBASIC付属してない。 ベーマガもない。

あったとして、今の PC で、当時のような短いリストでなにができる?

エミュレータで古いパソコン環境を再現してプログラムさせるか?

それは、周囲に表現力豊かなゲームがあふれている現代の子供楽しいと思えるものか?

アルゴリズムというものをどうやって説明したらいい?

コンピュータが内部でどうやって動いているか、どうすれば簡潔に説明できるだろう?

そもそも現代の子供は、これだけソフトウェアがあふれているなか、コンピュータプログラム入力して、それを動かすことをおもしろいと思わないのではないか?

子供プログラミングを理解するのに、取っつきやすい本やサイトなんかがあったら、誰か教えてください。

いま、プログラミングを楽しんでいる中学生から高校生くらいの若いひとは、どうやってその世界に入っていったんだろう?

2007-09-07

http://anond.hatelabo.jp/20070907020726

ふむなるほど…。確かに組み込み系は今ものすごく人が足りてませんからね。アセンブラとCとバイナリコードの世界は需要があるのに誰もやりたがらない。僕もあんまりやりたくない(苦笑)下のレイヤーハードウェア込みで理解するのはとても重要だと思うのですが、同時にWebレイヤーキャリアパスとして持っておくのは悪い手じゃない。視野も広がりますしね。

そういった経験談は非常に参考になります。ありがとうございます。

2007-09-06

http://anond.hatelabo.jp/20070906112628

コンパイラマクロアセンブラを記述展開機構(文脈を導入することで名前空間の冪をとれる!)と捉える観点は面白いし有益だと思うのですが私は以下のような偏見を抱いています。

  • G. Chaitin が自己顕示欲ばりばりで怪しい pop science 本を書く上に Kolmogorov を dis るなど態度が悪い
  • 確率論が数学として単純にむずかしい(私は伊藤清の本を開いて3minで寝ました)
  • Chaitin の停止確率Ωは計算機構に依存した値になる、というけど、計算機構の特徴付けに使えるわけではない

2007-08-07

http://anond.hatelabo.jp/20070807040214

ニコニコの場合、プレーヤのコードに細工してあるんじゃないですか?

まだ具体的に調べた訳ではないから正直自信がないですけど、今のニコニコのプレーヤとニコニコサーバの間で通信しているデータ自体、表のルートコメントつけたり特定のコメントにシークしたりする奴)以外に、バックドア的な感じで、別のポートあけているか、プレーヤからニコニコサーバへの表向きの通信データの隙間を使ってニコニコ純正サーバからダウンロードしたプレーヤから見ているかどうかとか、色々とチェック入れるようにしたんじゃないですかね。

通信量が爆発的に増えていて、回線などが逼迫していて云々と言う理由でお金とるようになったし、TVアニメの録画とか放送から一時間するかしないかで平気で流れているあたりを考えると、幾ら「いけにえ」的に削除をしていても、権利者たちが納得する訳ではないだろうから、権利者団体から訴えられないための「担保」として、その手のDRMと言うかコピープロテクトをかけていておかしくないと思いますよ。

最終的にはコネクションどうしてるか見るのと、プレーヤ自体を逆アセンブラにかける必要が出るような気がしますよ。

2007-08-04

情報

学生のとき計算機科学をちゃんと勉強して

CPUを一から設計してアセンブラコンパイラを書けるのは確かに偉いけど、

せっかく東大京大にいったんなら

既存の産業構造の中で金儲けてのしあがっちゃるとか

作業を自分でするの人にさせるのとかだけじゃなくて

情報科学情報工学のフロンティアの誰もまだ知らない理論発見・証明したり

まったく新しいコンピュータを作っていばって欲しいよ。

現状だとロシア東欧ユダヤ系の出で数学にめちゃくちゃ強いやつとかに

敵う日本人が居る気がしないよ。

みんなナイマン・ヤーノシュの手のひらの上で走ってるだけじゃんか。

そのへんが京大東大の違うところなのかな

あ、「昔」って言ってるけど21世紀突入してからの話なんで、もっと前がどうだったかは知りません。

http://anond.hatelabo.jp/20070802231430

1980年代後半から1990年代前半にかけての話。

・3回生の前期の実験の前半部分にCPUを作る実験がある

・5人でチームを作って、期間は3ヶ月

TTLを200個くらい使って自分で配線して動くものを作る

・命令セット例は示されているが設計は全部自分たちでやる

・その前期の実験の後半3ヶ月は、

 そのCPUソフトウェアシミュレータとアセンブラとリンカとデバッガを1人で作る

まあ、要するに似たようなことやってたみたいなんだが、俺の部署でも

京大卒の人たちは現役プログラマーで、

東大卒の人たちはプログラムを書かない。

給料は同じだ。

東大卒の人たちがプロジェクトの説明のパワーポイント資料を作っているのと同じ期間で、

京大卒の人たちはプログラムを書いて実証してしまう。

東大卒の人が

プログラムなんて誰が書いても同じだから、俺はやらない」

と思っている一方で

京大卒の人は

「どうせプログラムを俺が書くんだったらパワーポイントや設計書なんて誰が書いても同じだから、俺はやらない」

と思っている。

あくまで俺の会社の話だよ。一般的にそうだってわけじゃないよ。

anond:20070804023741

イマドキの富豪な開発環境だと1のアプローチの後、必要に応じて2を行うのが主流という気がする。

パフォーマンス限界コンパイルのクセを意識したり、インラインアセンブラを用いて突破する人ってすごいなぁとは思う。

ただ、個人的な興味が湧くか?と聞かれれば、NOだけど。

2007-08-02

理系文系

http://anond.hatelabo.jp/20070802014512

理系の頭の良い人は、なんでも要素分解してゼロから構築できるアセンブラプログラマ文系で頭のいい人は、既存のフレームワークを組み合わせて問題解決をするのが上手いアーキテクト、というイメージがある。

理系論理ゼロから自分の脳で構築されるため、説明する時のロスが大きい。文系論理は、既存の知識=文字としてエンコード済の知識、をベースにしているため、言葉に直して説明する際のロスが小さい。説明の上手い下手はこの辺に起因する。

理系は自分の脳ひとつで考えているから見落としが多い。文系は、既存のフレームワークに欠陥が発生するような、前提条件が変わってしまう事態に弱い。

理系は全数探索をしたがる。文系ヒューリスティックな方法を好む。

共通属性は、物事の枠組みを捉えるスピードの速さ。頭がいい人は、初めてのゲームを何回かやっただけでどこにキモがあるかをすぐ見抜く。最小の情報から全体像を描き出すのが上手い。

まあ、理系文系という切り分け方がだいぶ古いけどな。

2007-08-01

京大いっとけ

http://anond.hatelabo.jp/20070801222001

ちなみに俺が京大に居た頃のカリキュラムだとC言語を習得するための授業なんて0%だった。

C言語とかアセンブラとかコーディングスキルみたいなのを大学で教えてもらおうと思ってる人は来ちゃだめだろうと思ったよ。

工学部に進学してくる連中にとって、そういういうのは、高校生の時点で既にある程度理解してるもんだったんだ。

じゃあ大学で何をやったかというと、実践だった。

基礎がわかってても実践ができてなかったら戦力にならんからな。

最近はヌルくなってコーディングとかも教えてくれるらしいけどな。

あ、実践ってのはhttp://anond.hatelabo.jp/20070802021749にある

CPUの設計ができて、プログラミング言語を設計し、コンパイラが書けて、OSを載せて、

その上で例えばレイトレーシングを動かせるくらいの力量がつく。

こういう奴な。

2007-05-24

実務向けなのか知識欲を満たしてるだけなのか

http://anond.hatelabo.jp/20070524111812

うちとこが良い情報工学科なのか悪い奴なのかは判らんが、

情報数学(っていうのかな?)が結構な部分を占めてたと思う。

微積代数学の基本的なところから

計算機における数値表現の方法、それによる誤差や精度保証の仕方。

離散数学とか統計とか諸々、プログラムを組む上で

必要になってきそうな部分を一通りかじってた。

レベルな部分だとフリップフロップ論理ゲートの仕組みから始まって

パイプラインCPUの仕組みを網羅して

クロックずつ手で書きながら追ってみる、っていうのが面白かった。

その後アセンブラ、C、Javaなんかを順次やっていってたから

http://anond.hatelabo.jp/20070524004238

その後に集積回路の使い方を覚えるんだ。単に電子回路を集めてモジュール化しただけのものだから簡単なはずだ。

そうしたらCPUの作り方がわかってくる。CPUを動かすには機械語が必要だけど、どうして機械語CPUが動くかがわかるはず。

そこまでいったらあとはアセンブラC言語Javaとだんだん高レベルな世界に行けばいい。

これを地で行ってるのかもしれないね。

本当に最初のところ、「0と1で何でコンピュータが動けるの?」「プログラムってどういう仕組みなの?」っていう疑問を

持ってた自分としては凄くマッチした学習方法だったと思う。

http://anond.hatelabo.jp/20070524004238

そこまでいったらあとはアセンブラC言語Javaとだんだん高レベルな世界に行けばいい。

CコンパイラソースコードもJavaVMのソースコードもタダで手に入るんだから見てりゃわかるだろ。

この二行の間にはおっそろしいぐらいの溝があるな。慣れてる人だとその溝をすっかり忘れてしまいがちだが、冷静に初心者の姿を想像してみるとよくわかる。

レベルなものばっかりやりすぎなんだよ最初っから

http://anond.hatelabo.jp/20070523230747

C言語ruby中途半端学校で習って、よく判らないまま単位だけとって卒業して、その後でJavaやらHaskellやらを最初だけ齧ってしまって結局全部混ざってしまい消化不良みたいな感じです。

まず電子回路の勉強しようぜ。0Vと5Vで電流が流れるだけだから簡単だ。物理的な裏づけもあってわかりやすい。

その後に集積回路の使い方を覚えるんだ。単に電子回路を集めてモジュール化しただけのものだから簡単なはずだ。

そうしたらCPUの作り方がわかってくる。CPUを動かすには機械語が必要だけど、どうして機械語CPUが動くかがわかるはず。

そこまでいったらあとはアセンブラC言語Javaとだんだん高レベルな世界に行けばいい。

CコンパイラソースコードもJavaVMのソースコードもタダで手に入るんだから見てりゃわかるだろ。

2007-05-11

fizzbuzz.com

http://anond.hatelabo.jp/20070508170219 こいつをアセンブラで書こうとしていたが、

すでに

http://anond.hatelabo.jp/20070510170511 にそれっぽいものが書かれていた。

しかしデクリメントした直後に判定するならフラグですむがそうじゃないときtest命令入れないといけないのでうまくいかんと思った。

とりあえず8086アセンブラで書いてみたが長くなったので実行ファイル(fizzbuzz.com)をBase64で下に書いておくよ。

~) ls -al fizzbuzz.com
-a--rwx       98 May 11 03:28 fizzbuzz.com*

~) base64 < fizzbuzz.com
uwUDuQoJvl0B/s91ErcD/st1BrpSAesOkLpLAesWkP7LdQi6VgGzBesKkLg6OivBiQSL1rQJzSH+
zXXNtQr+yXXHulYBzSG0TM0hRml6eg0KJEZpenpCdXp6DQokVU0NCiQ=

数字の表示の処理で10で割った余りを使っていたのでまずいと思って修正した。ついでに98バイトまで縮めてみた。

こんなことに時間を使っている俺はバカだ。

ソースも載せとこう。8086なんてほとんど初めてに等しいので汚いだろうけど。


CODE	SEGMENT
	ASSUME	CS:CODE,DS:CODE
	ORG 100H
START:
	mov bx, 0305h
	mov cx, 090Ah
	mov si, OFFSET NUM
LOOP:
	dec bh
	jnz skip1
; 3の倍数だった
	mov bh, 3
	dec bl
	jnz skip2
; 3の倍数で5の倍数だった
	mov dx, OFFSET FIZZBUZZ
	jmp loop5
skip2:
; 3の倍数で5の倍数じゃなかった
	mov dx, OFFSET FIZZ
	jmp loopend
skip1:	
; 3の倍数じゃないとき
	dec bl
	jnz skip3
; 3の倍数じゃなくて5の倍数だった
	mov dx, OFFSET BUZZ
loop5:	mov bl, 5
	jmp loopend
skip3:	
; 3の倍数じゃなくて5の倍数でもなかった
; 数字を表示する。2桁でいい
	mov ax, 3A3Ah
	sub ax, cx
	mov [si],ax
	mov dx, si
	
loopend:
	mov ah,9
	int 21h

	dec ch
	jne loop
	mov ch,10
	dec cl
	jne loop

; 最後のBuzzを表示する
	mov dx, OFFSET BUZZ
	int 21h

	mov ax, 4c00H
	int 21h

	
FIZZ:		DB	'Fizz', 0dh, 0ah, '$'
FIZZBUZZ:	DB	'Fizz'
BUZZ:		DB	'Buzz', 0dh, 0ah, '$'
NUM:		DB	'UM', 0dh, 0ah, '$'
CODE	ENDS

	END START

2007-05-02

プログラミング言語ヒエラルキーにおける罵倒

http://www.geekpage.jp/blog/?id=2006/12/13

プログラミング言語ヒエラルキーにおいて、上位が下位に対してどう見下してるのかを書いてみた。詳しくない言語も無理して調べながら書いてある。あと、言語に理解の無い人みたいで生々しいかと思って、刺激的かつあまり真っ当でない内容ばっかにしてみたよ!((FORTRAN から Java に「GO TO も実装されてないんですか?」とかそういう、馬鹿にすることを目的とした偏狭で的外れな発言ってことだよ!))((ここにある中では、C# に多重継承が無いことを馬鹿にする C++ プログラマーが真っ当でない指摘のわかりやすい例かな))

みんなが普段どういう不当な見下しをしてるかも教えてね!

Lisp → C

「いつまで経っても言語仕様が貧弱で大変ですね」

アセンブラ → C

「結局アセンブラ翻訳してるだけじゃん」

C → C++

C++ の難解な仕様と戦うぐらいなら C で関数ポインタを使ったオブジェクト指向の方がスマートだね」

STL は糞」

C++C#

中途半端ポインタを隠蔽して何がしたいの?」

「多重継承したくなったらどうするの?」

C → Perl

CPAN 見たって C でコア部分を書いてるライブラリばっかじゃん」

「なんでわざわざ use strict なんて書かなきゃいけないの」

PerlPython

Python って明示的に object継承した場合としなかった場合で挙動が違うって本当なの?」

「インデントブロック(笑)

Python → OO PHP

ライブラリ環境が全然整備されてなくて最悪じゃん。C や C++ で書かれたライブラリをラップしてるだけのはずなのに機能が減りまくってるのも多いし」

OO PHPPHP

ベタ書きしてて楽しい?」

PHPAjax

ウェブブラウザでしか動かないプログラム書いてて楽しい?」

AjaxJavaScript

「簡単な処理をコピペで実装してるだけだね」

JavaScriptVisual Basic

As とか書いてて混乱しない?」

C# があるのにまだ使ってるんだ」

FORTRANCOBOL

「冗長でわかりやすいですね(笑)

「DIVISION の概念って本気で言ってるんですか?」

COBOLAda

「航空宇宙産業専用言語でしょ」

「記述がわかりづらいね」

JavaScriptAda

ペンタゴンで使われてるだけじゃん」

「ガベージコレクタが無い……?」(あるらしいです><

AdaPascal

「昔 Apple で使われてただけじゃん」

「Del…phi…?」

PascalJava

コンパイルも実行も遅いらしいけど何に使うんですか?」

JavaHTMLプログラミング言語であると主張する人々

「処理も記述できないのに何言ってるの」

おまけ

マイクロソフト・ジョークス/プログラミング言語が女性なら

2007-02-22

アムス

らぴゅたの滅びの言葉ですか?

http://anond.hatelabo.jp/20070222154202

なるほどアセンブラか。拡張子みたことなかった。なるほど、ふごふごふごという老wizイメージでけた。

http://anond.hatelabo.jp/20070222154132

ありがとう。みどりく光ってる印象があったのだが、ニュマだったね。アムスは白色ぼわわだった。

これが通じてしまうほど以外と癌蓄人口は多いのだろうか。まぁ多そうだな。

アスム=asm

アセンブラの事。アセンブラ拡張子は[.asm]でアスムって呼んで…たりもした。

2007-02-13

80年代と00年代の温度差

景気が悪いとあらゆる場面でより制約的にならんといかんのだね

昨今の富豪的プログラミング環境だと複数の仮想マシン上でRubyやらPythonでウハウハだけど、組み込みとかのプアな環境だとアセンブラやCで組まないと使い物にならないみたいな。しかもシリアルケーブル転送で。

でも、そう言うよりハード(リアル環境?)よりで学ば無いと獲得できない事があるとか、散々人生経験積んだ人が、やっぱりしないで良い苦労はしないほうが良いって言ったりとか。

うーむ、奥が深い

「深いものか!」待ち

2007-01-11

http://anond.hatelabo.jp/20070111213243 さんへの返歌

http://www18.ocn.ne.jp/~jgm_comp/newpage3.htmによれば、現在でもパチンコパチスロの出目や大当り判定をする根幹部分はZ80・あるいは6809といった8ビット互換CPUで動作しているようです。よって、プログラミングではC言語などの高級言語ではなく、アセンブラなどの低級言語を使う事になると思われます。(音楽液晶演出といった要素は、いわゆるサブ基盤と呼ばれる別部分で表現しているので、これとはまた別の部分での問題)

技術者が見るべきNHKアーカイブス

NHKアーカイブス番組ではなく、NHK放送局にある過去番組を見られる施設の方)では、様々な番組無料で見ることができます。その中から、特に技術者向け(特にソフトウェア技術者)の番組を紹介します。

NHKは何を伝えてきたか NHKスペシャル 放送番組全記録一覧+番組公開ライブラリーリスト

パチンコ店の歴史や仕組みがよくわかります。サーバコンピュータにどんな機種をつかっているかは分かりませんでした。筐体は見たのですが、聞いたこともない会社のものでした(SGIとかでもなかったです)。大きさは一般的なパソコン並みでしょうか。OSMS-DOSかな?

また、パチンコの制御プログラムソースコードが写る場面がありますが、アセンブラで書いているようです。ICチップに書き込んでテスト打ちをしているそうなので、当たり前といえば当たり前かもしれません。最も放送されたのは12年前ですから今はCくらい使えるようになっているかもしれませんが。

NHKは何を伝えてきたか NHKスペシャル 放送番組全記録一覧+番組公開ライブラリーリスト

未視聴ですが、おもしろそうです。今のところ、新・電子立国シリーズで見られるのはこの2作品だけのようです。電子立国シリーズは全部見られるようですが。

生徒にグループを作らせて、その中で試行錯誤しながら、おもしろいゲームを作っていくというストーリー。提案する→問題が出る→解決する→問題が出るというスタイルで、分かりやすくて構成がうまいなと感じました。

安藤百福追悼として。

以下は私の趣味ですが

15年前の若者現在30??40代)はこんなデートをしていたのでしょうか?ジェネレーションギャップを埋めるためにもいまどきの若者にこれを見せましょう。もちろんこの番組だけで当時の若者を語ってしまうのは危険ですが、話のネタ程度にはなるでしょう。

未視聴なので特にコメントなし。なぜかYOU関係は充実しています。

なお、視聴するときの注意点をいくつか

  • NHK受信料を払っているかどうかの確認は当然ありませんが、視聴する際に、名前や住所、電話番号を書かされるケースがあります(そうでないケースもあります)。この情報は何に使われるかの説明は受けませんでしたが、後ろ暗いところのある人は見ないほうがよいかもしれません。
  • 視聴する際に、年齢、性別、都道府県を選ばなければなりません。これは全国どこでも一緒だと思われます。
  • ネットで番組検索(視聴は不可)することも可能ですが、なぜかここでも年齢、性別、都道府県を選ばなければなりません。
  • IDパスワードを登録をすれば、お気に入り番組リストを保存することができます。(追記:WEB上ではできません)
  • 地方によっても異なりますが席は2席ほどしかなく、視聴時間は1回につき1時間から2時間のようです。
ログイン ユーザー登録
ようこそ ゲスト さん