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

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

2010-02-25

ありがとう、プログラム言語に詳しい方々

返答ありがとうございました。

頂いた意見を参考に、身の振り方も含めて考えて行こうと思います。

http://anond.hatelabo.jp/20100224235723

ある意味で一番欲しかった回答かもしれません。

>基礎さえできちゃえば、言語による違いなんて方言みたいなもんだから

心強い言葉を頂けました。この部分に関する確信が無かったので心配だったもので。

資格取得を目指して勉強する、というのは目標設定としてもよさげですね。

仕事で実際に使用する言語に関しては

確かに働き始めてから学ぶというのでもいいのかもしれません。

何にせよずっと勉強が続く分野では有るのだと思っています。頑張ろう。

http://anond.hatelabo.jp/20100225001728

>でも、本気で知りたいなら、死ぬ気でアセンブラをやれ。それがすべての始まり。

そこまでの本気が自分の中に有るかと言うと、ちょっと違うかもしれません。

今のところサイトデザインでメシを食うのが目標なので。

ですが、何が起こっているのか良くわからないままに

他のサイトから引っ張ってきたコードを手探りでいじくり回す様な事はもうしたくないので、

何がしたくてその為には何をどう使えばいいのかが分かるようになりたい、

せめてそれを考えられるだけのよすがとして知識が欲しい、という思いがまずありました。

>金がほしいなら、むしろ技術力より営業努力

お金持ちになりたいか、と問われるとそこまでの情熱は無いのですが、

自分ひとりの食い扶持を稼ぐだけの力を付けたいとは考えています。

>ちなみにWeb系といわれたから、ライトウェイトな言語を中心に考えたけど、つぶしが効くのは意外とJavaC++であることも。書いておく。

となるとやはりJavaC++を学ぶ事自体は無駄ではない、と考えて良さそうですね。

因みに並行してデザイン論もさらい直して、サイト作成技術に関しては専門書を購入して独習する事を考えています。

ソフト類は一応一通り扱えるので。

3つ全部を同時進行出来るかは微妙な所なので時期をズラしつつ1年計画くらいでどうにかできれば。


そして、

http://anond.hatelabo.jp/20100225000159

>でも、Javaに慣れちゃったら、PHPなんて一番触っちゃいけない言語だよね

すみません、そこら辺もう少し詳しくお願いできますか!

何か致命的なセキュリティホールとかブチ開けてしまう可能性が有ったりって事?

(ハンパなPHP問題点としてよく挙げられているので当てずっぽうで書いてみました)

http://anond.hatelabo.jp/20100224234229

JAVAを最初に学んでその後に現場で実際に用いるであろう言語(例えばPHP+SQL)を習得するといったルート現実的なのだろうか?

できはするけど、最初からPHPいいんじゃない

いろいろ言う人はいるけど、PHPでも、問題ないよ。

ただ、欲をいえば、PHPモジュールC++で書く拡張機能あたりをちゃんと勉強しておいたり、ちゃんとコードチューニングして行けば勉強になると思う

SQLはただ使うんじゃなくて、データーの正規化やインデックスなんかをきちんとマスターしておくと、違う感じ。あとは、ストアードプロシージャ

 

>上記のケースで前段階として学ぶ言語はどの程度のレベルまで到達する必要が有るのか

というか、本気で学ぼうとすると、トランジスタから始まって、フリップフロップレジスタ、アキュムレーター、バスの配線、クロックというハードの構成がどうなっていて、

それに対応するマシン語があって、それがニーモニックに変換されて、

そこにスタックという概念が持ち込まれて、レジスタスタックに退避するという概念が生まれて、関数コールができて、C言語が生まれて、さらにそこにthisポインタコンパイラ自動補完して関数テーブルを保管することでオブジェクト指向というか、C++ができている。そこに(Cの世界に)BNFなどの構文があって、それを構文ツリーにするBisonなんかがあって、PerlPHPができている。

という、なぜC++オブジェクトポリモルフィズムができるのか?というソフトからハードまでを一貫して知る必要がある。

そこまで理解していると、コードレベルは確かにハンパないレベルにはなるけど・・・。正直、業務には必要ないというか、そんなクオリティーの仕事が少ない。

やりたければ、やってもいいけど、PHPからやったら?そして必要になったらPHPをCで拡張するという形でCに入ると良いと思うよ。

やりたい言語をやるのが一番だ。

でも、本気で知りたいなら、死ぬ気でアセンブラをやれ。それがすべての始まり。

わりといえば、普通に大学入って、授業を真面目に受けた方が早い。

 

>そもそも実際に現場で使用することを想定した言語で、今から学ぶのに本当に適しているのは何か?

PHPでいいでしょ。大差ない、むしろ、自分が気に入った言語で、どれだけコードを沢山書くか。日々の鍛錬。

もちろん、PerlでもRubyでもお好きなモノで。

金がほしいなら、むしろ技術力より営業努力

ちなみにWeb系といわれたから、ライトウェイトな言語を中心に考えたけど、つぶしが効くのは意外とJavaC++であることも。書いておく。

2010-02-22

http://anond.hatelabo.jp/20100222142547

オンラインで載っているプログラムしか組めませんでは実務では問題。

マニュアルから組めることもプログラマ査定能力の一つ。

いや、どちらかと言えば、きちんと設計できさえすればよくて、オフだけで(サンプル無しで)全部出来るかどうかは関係ない。

プラットフォームが変わろうが、言語が変わろうが、実装の仕方が変わるだけだし、それこそサンプルを調べてでも構わない。


問題なのは、サンプルをそのまま使うことしか出来ないやつ、だ。

きちんと理解してるかどうかなんて、レビューすりゃ一発で判るだろ。

本気で、何を評価したいか意味不明なんだけど。


俺だったらテトリス作らせるよりは、4bitマイコンの仮想環境を提示して、2桁の乗算とかやらせてみるけどね。

乗算命令なしとかの条件つけて。

アセンブラじゃなくて、フローを書かせるだけだけど、こういうのこそ「センス」が出るんだがなぁ。

2010-02-13

http://anond.hatelabo.jp/20100213011038

個人の趣味なら、問題なし

元請けプログラマーなら害悪

おまえ一人のために、他の何十人ものプログラマーが泣くことになる。

業界標準がなぜ、そうなっているのか ぐらいは覚えろ。

というか、あなたが複雑だと思っている方がシンプル

アセンブラは超シンプル

ライトウエイト言語は超複雑

2009-10-09

http://anond.hatelabo.jp/20091009170706

うーん、なんかやっぱり不正行為を前提として、配布と解析をごっちゃにしてる気がする。

例えにレスするのはごちゃごちゃしそうでいやだけど、

・「このコックさんが作った料理のみ、このレストランで食べることができる」

・「コックが作った料理レシピを調べることができる」←これがマジコン

・「マジコンによって複製されたデータ」←ここまでは解析・複製でグレーゾーン(これが違法だと、グルメレポーター研究家が他人の料理研究して、作ってみた、でアウト(デジタルだからちょっと例えに適さないが、それでもグレー))

~~~~~~~ここが壁~~~~~~~

・「同じ料理であっても食べてはいけない」←これはデータの配布ありきなので、壁の向こう側とイコールではない。

研究・解析した本人も「食べてはいけない」という話ではないはず。

その解析・研究結果はクックパッドにあげちゃいけないが、個人でやる分にはなんら問題なし、とはならないのか?

ちょっと訂正。

アセンブラしかり、「解析」自体がダメってのはアリか。

でも、世の中の常として、こういったツールの使用については、使用者にゆだねられるのであって、”ツール自体”を違法扱いするのは変だよね?>それこそWinnyと同じく

壁の向こう側である「配布」は置いておいて、マジコンの是非を考えるとやっぱりグレーでしかないんじゃないの?

2009-10-02

http://anond.hatelabo.jp/20091002141426

いや、いまの30代40代で、いわゆる一線で活躍している人は

U-20の頃にアセンブラやCつかって

OSいじくったり、デバイスドライバ書いたり、ゲーム作ったりしていたわけだよw。

中には、その収入大学時代マンション買ったりね。

でも、それをみても、別に天才だとは思わなかった、単なる努力家だとしか。

努力カバーできる範囲だよ。1日8時間~16時間、それ以外をすべて犠牲にしてやればできるレベル

1年みっちり勉強すれば、当時で言えばデバドラぐらいには手が届く。天才でも何でもない。

大抵この業界の場合 

天才と呼ばれている人は、実際はよく見てみると異常に練習時間が長くて人生の大半をつぎ込んでるレベル

僕はこの業界に関してはそう思ってる。

中には、何の勉強もしないでスラスラ作れる人もいるのかもしれないけど、ぜひ見てみたい。

HPぐらいあるだろうから、URLとか紹介してほしい。

2009-09-24

http://anond.hatelabo.jp/20090924180059

std::stringchar配列で話は変わってくると思うが

まぁchar配列のCだとますます発狂だわな

それがアセンブラだったら、、、、

結論

単なるメモリ操作

2009-09-01

http://anond.hatelabo.jp/20090831002727

IFワロタw

マジレスすると、昔のしょぼいコンパイラだとスイッチ文をアセンブラで言う所のジャンプテーブルに置き換えてくれないヘボコンパイラとかあって、中身がコンペアの嵐で笑った事がある(H!お前だw)

今はコンパイラ賢くなって、少々へんな場合でもきっちりジャンプテーブル生成してくれるので、見た目重視のスイッチ文主体でOK。

分岐命令ってアセンブラレベルで見るとジャンプテーブル生成するのが一番処理的に早くなる場合が多い。(でかすぎるとキャッシュに乗らないが)

コンパイラ任せではあるが、あまり長文のコード組むとコンパイラが変なコード吐く場合があるのでそこだけ注意。

2009-08-12

http://anond.hatelabo.jp/20090812143245

確かに。で、これまたエレガントではない対処法で、ループでかかってる時間を差っ引くのはどう?

予め空ループをブン回して、ループ処理にかかる時間を測定。

次に、測りたい関数を入れたループを回して時間を測定。で、予め測っておいたループ処理分を差っ引く。

フツーに詳しい人のご名答を待った方が勉強になりそうです、降参!

ってか、降参ついでにいぢけてみると、昔のDOSマシンマイコン/アセンブラ、遅っそいミニコン/WSならともかく、

イマドキの(パソコンでさえ)すっごい速い計算機マルチタスクOS上で、10ms以下のような小さいプログラムの実行時間を、

実験的に評価する意味があるのかと、ふと思った。むしろ、手計算であれ機械計算であれ、論理的にステップ数を計算した方がいいような。

だって、ループ処理でかかる時間が誤差に効いてくるぐらいなら、ループしてる間に他のタスクから受ける割り込みの影響も出てしまうと思うもの。これはどうなんだろう。

2009-08-10

http://anond.hatelabo.jp/20090810040048

アセンブラを長くやっていた身からすると、プリインクリメントはちょっとキモい

2009-08-09

http://anond.hatelabo.jp/20090809214956

なるほどコンパイラで同じアセンブラコードはかれるんですね。

じゃ、変数スコープ短く保つべきですね。

http://anond.hatelabo.jp/20090809041310

真面目なコンパイラなら1はどっちを書いても同じようなコードになるさ。

同じようなコードというのはコンパイラが吐き出すアセンブラコードの話??

真面目なコンパイラなら修正前のコードはforブロック抜けたタイミングでiの領域解放して

次のforブロックに入ったタイミングでiを再確保するんじゃないか?

メモリ無駄に使わないだろうけどint型の確保・解放回数が増える。

int型なんて4バイトなんで、メモリ確保・解放はたいして性能への影響ないから問題ないけどね。

2009-07-06

Python使ってみた

普段C++ばかり使ってる身からすると、メモリのこととか型のこととかほとんど考えずに済むのは凄く楽だ。

でもこういう言語ばっかり使ってると、プログラミングについてフワフワした理解で終わっちゃう気がするんだけど大丈夫なのか。

まぁC++知っててアセンブラ知らないって人も、それはそれでフワフワしてるんだろうけど。

2009-06-17

http://anond.hatelabo.jp/20090617144121

C/C++CPU依存性を減らしたアセンブラで、面倒くささを耐える代わりに速度を稼ぐという特殊用途言語なんだから、「プログラミングは面倒だ」の例としては局所的すぎるなー。大量のバッドノウハウを楽しんで乗りこなすマニアどもが、ゲーム組み込み検索エンジンあたりの開発に使うプロ向けの道具で、間違っても「プログラミングの細かいところが嫌い」なんていうライトプログラマが使うようなものじゃない。

もっとチャラい言語使いなよ。RubyとかActionScriptとか。よりによってPHP/C/C++とか選択がマゾヒスティック過ぎ。仕事だか学生課題だかで無理矢理使わされてるの?

2009-06-06

http://anond.hatelabo.jp/20090606151510

それは有るね、けどさ、その時に使うツールで使い勝手が悪い物は無いのか?

組み込みアセンブラみたいな所で腕が良いって事だと確かに厳しいかも知れない

でも、結局普段はPC使うだろ?解析ツールとして

なら解析ツールでも作って稼げば良いんじゃないの?

2009-03-14

ローレベルを理解してない奴の理解なんて所詮こんなもんだ

μiTRONなんてOSって言ってもファイルシステムもないし画面への表示もできないし本当に小さいものだよ

システム全体の共通ルーチンの1%にも満たないようなもの。

そこが出来合いだからと言っても他の99%以上が独自だったら、

そのシステムでの開発ノウハウを得たとしても殆どが他ではそのままでは使えない知識。

http://anond.hatelabo.jp/20090314120023

アセンブラオンリーじゃなきゃCPU制御できないんだから、OSにあたる部分は乗ってるんじゃないの?

・これはOSにあたる部分が何かが未定義なのでこの議論は結論が出ない。糞ったれな意見

CPU制御という言葉定義も不明。アセンブラでないとできない制御なんて殆どない

OSが全く載ってなくても普通C言語で開発するよ。

 スタートアップルーチンだけはアセンブラだけど

・そんなの誰でもできるだろ。どう書けばどうハードが動くかなんハードウェアスペックシートと回路図見ればわかるし。

http://anond.hatelabo.jp/20090312075947

もしも1から組んだ独自OSなら、それはそれでCPUなり何なりを直接いじってる部分まで見えるわけだから、かなりお得感溢れるし、それを盗んで独自OS作る技術持ったら、結構なひっぱりだこじゃなかろうか。

・独自OSが作れるくらいでひっぱりだこなんかにならないよ。

・「独自のものが作れる」程度のスキルは世の中に溢れていて所詮「誰でも出来る」

・「洗練されていて素晴らしい独自OSが作れる」というなら別だけど、

 そういうのは複数のものを見比べて審美眼を養う必要がある

http://anond.hatelabo.jp/20090312085553

アセンブラオンリーじゃなきゃCPU制御できないんだから、OSにあたる部分は乗ってるんじゃないの?

2009-03-01

http://anond.hatelabo.jp/20090301211254

Cが最もアセンブラに近いわけだからすごい人ならやはり知っとくべきでは?

2009-02-24

http://anond.hatelabo.jp/20090223224553

結局、なにがしたいか、なにが学びたいか、だろうな。

元増田も大元増田も、とりあえず言語を学んだ。てにをは挨拶は分かった状態。それでどうするのか、とりあえず小説を書くのか、言語学を学んでみるか、ラノベ研究してみるのか。

SICPだと、プログラミングとは何ぞや?とメタ言語学的になるのかな。あと、アルゴリズムとか、より抽象的、数学的な方向へ向かうのか。

ブックマークコメントに多いのは、とりあえず作れってやつ。しかし、現状で作りたいものがあるなら、もう作っているはずで、特にないから困っているのだろう。

ジャンル的にはWebアプリGUIアプリか。あと、サーバソフトウェアもある。

Webアプリだと、HTTPとかブラウザ側と、CGIとかapacheサーバ側とのインターフェースを知る必要がある。他にもデータベースマネージャーSQLに手を出すとか、railsとかフレームワークに手を出すか。

GUIアプリだと、ライブラリフレームワークOSとのインターフェースを知る必要がある。データベースを使っても良いし、ネットワークに手をだすならSOCKETとか。WindowsならWindowsの、XならKDEとかgnomeとかの作法があるし。

GUIアプリでもだけど、サーバソフトウェアならネットワークプロトコルの他に、スレッドだとかある。

これらも、一から自分で始めてみるか、既存の、例えば自分が使ってるOSSに機能追加してみるとか。

あと、アセンブラって出てたけど、コンピューターの実際的な構造とか、OS内部、ドライバの作りなんかへ進む手もある。

元増田は標準ライブラリを使ったプログラミングフレームワークの内部構造を把握すればよいんじゃないかな。

というわけで、よりフロントエンドライブラリフレームワークの方向か、バックエンドシステムコールOSへ向かうか、

より抽象的なアルゴリズムとか情報理論の方向か、実際的なネットワークデータベースなどの周辺要素へ向かうか、

どういう方向に興味があるのか分からない事には。

2009-02-17

http://anond.hatelabo.jp/20090216135204

オブジェクト指向で書かないと開発速度が10分の1になったけど、まぁ、よくね?って書いてあった。

いいわけないだろ?開発期間=>人件費に効いてくる。

ムーアの法則が勝つかアムダールの法則が勝つかではあるが。

開発期間を重視したプロジェクトが、数年後まで生き残れているか、という問題と。

開発期間を重視したプロジェクトが、数年後に同じ早さで動いているかwという問題がある。

たいていその手のプロジェクトは、追加開発でどんどん遅くなって、早くなったマシンスピードと相殺される。

東証の問題とかがなぜ起きるのか?といえば、そういう原因もある。

ちなみに、おおざっぱに言えば。速度の大小を決める要因となるのは、全体のコードの20%しかない。残りの80%は機能重視で十分。

その、最悪アセンブラ持ち出してまで高速化する20%と、オブジェクト指向だろうが、なんだろうが、とにかく動けばよい80%を分けるのが『設計』であり『上流行程

これが、出来ない奴が多すぎる。

全部のコード高速化するには、優秀なプログラマが不足する。全部のコードを凡庸に書いたら、まず実行速度が今のマシンじゃ足りないサービスになる。

会社では作ってみて、出来が悪かったら、プログラマじゃなくて、管理職を飛ばせって主張してるけど、この辺が理由。

2009-01-27

http://anond.hatelabo.jp/20090127144322

こういう、層の積み方をもっと工夫して圧縮できないかなとは思うんですよね。

全部アセンブラlispで書くとか。

http://anond.hatelabo.jp/20090127144322

ヒント: 高級言語と低級言語

元増田がどの世代のコンピュータから使ってる人かは知らないけれど、

MS-DOSアセンブラプログラム書いてた世代の自分でさえ、

現代のシステム仮想化抽象化を多重にやりまくって

ると思うよ。

じゃぁ、昔のアセンブラのノリで現代のプログラムを書くとしたら、

どんだけ手間でどんだけバラバラになるんよ?ってことを考えてみ?

ある意味で仕方のない流れだよ。


(追記)

極端な話、BIOSさえいらない。メモリ(スタートアップTOM)の0番地から

プログラムを、全く抽象化せずに(関数なんかも使わずに)書けと言われて、

書けないことはないだろうけど、・・・したくねーな。

2009-01-04

http://anond.hatelabo.jp/20081231194010

関数ポインタバッドノウハウになっているよ、確かに。

じゃぁ、何がグッドノウハウかというとC++継承、メンバ関数、Virtual関数

C++継承やVirtual関数は中身はvtableでvtableって何のこと?っていうと

関数ポインタの集合だから。

アセンブラがCALL命令

Cが関数ポインタで実装しているところを

C++ではそれをうまくオブジェクト指向継承という概念に持ち込んでいる。

ほとんど使われていないけど、いちおう、クラスのメンバ関数関数ポインタという概念

スタティック(メンバ)関数の中に素の関数ポインタは残ってはいる

だから、今でも関数ポインタを使うのは 本当に1部の残された領域と

高速化のために継承じゃ追いつかない所をハンドメイドで書くぐらいだと思う。

ただ、こうやって書くと他の言語も・・・といわれそうだけど、

インタプリタのメンバ関数呼び出しとVtableによるメンバ関数呼び出しは

見かけは同じように見えても、(実行速度とか含め)全く別物だからという注釈は書いておこうかなと。

ログイン ユーザー登録
ようこそ ゲスト さん