アセンブラ言語やマシン語は覚えておくべきですか?

1仕様書無しさん
垢版 |
2009/06/12(金) 19:54:03
c言語だけ、理解していれば、プログラマーとして、大丈夫なのでしょうか?
2009/06/13(土) 23:11:07
WEB系の仕事するときでも、Java,PHP,JavaScript(AS含む),Rubyくらいは出てくるなぁ。
(一つのプロジェクトで全部使うわけでもないけど)
マスタメンテなどの管理アプリ欲しいっていわれればC#あたりで作ることになるし、

会社としてはWEB系以外の仕事も請負ってるんで、そっちはまたべつの技術使うし。
2009/06/13(土) 23:42:34
おれも情報処理技術者試験のCASL勉強したけど全然覚えてない
でも先にこれやっとくとCのポインタが理解しやすかったと思う
2009/06/14(日) 01:02:37
つまり複数言語を沢山使う人は、みんな無駄に改行を入れるということですね。
2009/06/14(日) 01:15:10
引数をスタックでわたすかレジスターで渡すかの違いがわかるのは大きい





わけねーだろ!
55仕様書無しさん
垢版 |
2009/06/14(日) 01:28:29
知識はただじゃない
けど、オープンソースが僕の技術力を高めてくれた
プラマイ0
2009/06/14(日) 01:49:37
>>51
そんなバラバラで作っちゃって、メンテナンスどうしてんの?
同じ言語や環境で揃えて、誰か辞めてもメンテナンス出来るようにしないと
のちのち面倒くさいだろ。
二次受けで元請けの言いなりみたいな会社だったらそうなのかもしれないけど、
自社開発の所は環境揃えるもんだぜ。
2009/06/14(日) 02:19:27
>>56
言語が違うくらいでメンテナンス不能になるようなことはないって。
新人でも一ヶ月くらいで新しい言語使えるようになるから。
2009/06/14(日) 03:13:51
言語よりコンピュータで何ができるかわかってる方が大きい。
Cでもjavaでも.NETでもちょっとしたアプリなら誰でもできる。

でもスレッドをつかったプログラミングとか、異機種間通信で文字コードの違いを
頭に入れて作らなきゃいけないとかはまた別次元の問題。

大切なのは前者より後者
2009/06/14(日) 06:02:38
一ヶ月やった程度の新人に、動いてる客のシステムいじらせるとか正気ですか。
2009/06/14(日) 08:15:51
バラバラの言語で作っていたものを社内で統一するってことはよくあるね。
うちもJava,PHP,Perl,ASPってあったけど、一部の大規模なのをのぞいて、
新規案件は基本PHP+Symfonyに統一になった。
Webの場合は、言語の使い分けって技術者の自己満足でしかないんだよね。
HTML出てくればそれでいい。
61仕様書無しさん
垢版 |
2009/06/14(日) 08:50:27
>>59
結局、その程度の規模なんでしょ。
10万ステップ級の業務プログラムとかいじることはないでしょ。
所詮、使い捨てプログラムレベル
2009/06/14(日) 09:07:51
小規模システムを作り切りで納品するだけの下請なんじゃね
だからメンテナンスは考えないで、
目新しい言語に次々手を出すと
63仕様書無しさん
垢版 |
2009/06/14(日) 09:14:26
>>62
怖いよね。そーゆー会社。
プログラムが使い捨てってことは、それを作っているプログラマも使い捨てにできるってことに気づいたら、さっさと転職考えるよな
2009/06/14(日) 09:50:11
> 10万ステップ級
すいぶん小規模なんだなw
2009/06/14(日) 09:58:52
>>64
ひとつのファイルが10万ステップだお
2009/06/14(日) 10:03:15
それは拷問だ
67仕様書無しさん
垢版 |
2009/06/14(日) 10:30:27
>>64
でけぇよ
厨房はひっこんでろ。
OSですら500万STEPだぞ。
業務系で10万STEP規模なら、相当なもん作れる
2009/06/14(日) 10:33:38
>>59
お前の会社は、新人に仕事投げっぱなしなのかな?
69仕様書無しさん
垢版 |
2009/06/14(日) 10:35:35
>>67
どうせ1000ステップ20ファンクションくらいのプログラム作成に1ヶ月くらいかけている素人でしょ。
10万ステップ、医療系ならレセプトシステムが作れるな
2009/06/14(日) 10:38:50
>>59
ちゃんとテストして動けばだれがつくっても同じだろ
2009/06/14(日) 10:48:47
>>65
>ひとつのファイルが10万ステップだお

1行に平均40バイト書かれてると仮定すれば、ファイルサイズは4メガバイト足らずか。
そんなソースコードが存在してる時点で会社のレベルが知れるね。
新人をいれるとかいれないとか以前の問題だと思うぞ。
2009/06/14(日) 10:50:42
保守できないじゃん。
2009/06/14(日) 10:54:00
業務系には蛙がたくさんいるようだな
2009/06/14(日) 11:04:14
アセンブラが出来ない奴らがスレ違いの話を延々とw
2009/06/14(日) 11:15:25
>>74
もうその話は結論でたからいいじゃん
2009/06/14(日) 11:23:41
結論出てんのなら、このスレ終了でいいじゃん。
なにスレ違いな話を延々としてんの。
2009/06/14(日) 11:25:49
>>76
>>1 読めよ。
>c言語だけ、理解していれば、プログラマーとして、大丈夫なのでしょうか?

この問いに何と答えるのか
2009/06/14(日) 11:30:42
>>1への答えとしては
「まずその前に、日本語をもっと勉強しましょう」。
2009/06/14(日) 11:44:58
Cを理解してるっていってもねえ。
理解してると思ってるのは自分だけって奴もいっぱいいるしな。
static関数のプロトタイプ宣言をヘッダに書くみたいな狂ったことして
「Cわかります」って威張られても笑っちゃうだけだよ。
関数のポインタが嫌でifをずらずら並べたり、プロトタイプ宣言がわからなくて
ボトムアップ順で関数記述したり、ローカルでしか使わない関数なのにstatic
つけなかったり、分割コンパイルがよくわからないから1個のソースに何でもかんでも
入れたり・・・「なんちゃってCプログラマ」は無数にいるよ。
2009/06/14(日) 11:47:25
>>78
は?>>1の日本語のどこに問題あるんだ?
2009/06/14(日) 12:17:13
>>80
日本語ネイティブは、あんなに読点を打たない。
2009/06/14(日) 14:33:08
ま、アセンブラの次にcは最後まで生き残る言語だからな。
コンピュータという機械がある限りアセンブラは存在し、
アセンブラが存在する限りcは存在する。
2009/06/14(日) 16:49:29
>>82
それはフォンノイマン型コンピュータの話だろう。
いずれちょびっツに出てくるようなパソコンが主流となる。
そうなれば機械語は終わりだ。
2009/06/14(日) 16:56:17
>>83
生きてるうちにちょびっつが完成したらいいなー
無理だろうなorz
2009/06/14(日) 18:36:05
>>83
intelがあの調子じゃ今世紀一杯(あと91年)は無理だろw
2009/06/14(日) 18:45:21
アセンブラぐらいマニュアル見ながら読めるのが普通だろ。ユーザーレポートのレジスタ値見ても障害解析できねーじゃないか。

何も上級シスアド受かれとか言ってるわけじゃないし、基本だけ知ってれば何とでもなる。2日で覚えれるさ。
2009/06/14(日) 18:50:26
C言語「覚えた」の基準は、構造化やモジュール結合度の概念が身についてないと何の意味もないよね。
2009/06/14(日) 20:34:04
>>85
つまりドラえもんの時代まで待てということか
2009/06/15(月) 23:07:49
簡単なアセンブラぐらいできないんだったら、
プログラマやめたほうがいいだろ。
アセンブラでアプリ1本作るというのなら、大変だけど。
90仕様書無しさん
垢版 |
2009/06/16(火) 08:12:49
>>67
 >> OSですら500万STEPだぞ。

君ねー、OS書いたことないの、バレバレだよーん。
その君の言ってるOSって、まあ、基本的なドライバは
含めるとしても、ExcelやWordは入ってないよな?(笑)
2009/06/16(火) 10:04:26
つーか、マイコンやれば簡単な電子回路も学べるし
アセンブラも学べるしドライバが何やってるかもよくわかるし
PCだけやってても技術者にはなれない
2009/06/16(火) 10:35:19
>>65
糞ソースwwwwwwwwwwwwww
2009/06/16(火) 22:37:58
つーか、自分でCPU作ってCコンパイラを作らなければいいんだよ
2009/06/16(火) 22:39:55
>>54
> 引数をスタックでわたすかレジスターで渡すかの違いがわかるのは大きい
> わけねーだろ!

組み込みだと結構気にしますが。
関数の第一引数はint型であれば、レジスタ渡しを優先的に選択するマイコンとか。
知らないと損をすることがあるので違うマイコンをはじめて使う時は
このあたりのことから勉強してます。
2009/06/16(火) 22:47:52
>>94
それはマイコンがどうとか言うより、そのマイコンのCコンパイラの癖じゃないのか。
9694
垢版 |
2009/06/16(火) 22:49:59
>>95
> >>94
> それはマイコンがどうとか言うより、そのマイコンのCコンパイラの癖じゃないのか。

そうですね正確にはそういうことです
2009/06/16(火) 22:57:48
-O -fomit-frame-pointer -fforce-register
ってやれば出来るだけスタック渡ししてくれるでそ
2009/06/16(火) 23:01:17
まちがえた 出来るだけレジスタ渡し、ね
99仕様書無しさん
垢版 |
2009/06/17(水) 02:45:46
組込みマイコンでもGCC使えないのは、もうモチベーション出ないな。
2009/06/17(水) 02:50:16
GCCがあってもむしろアセンブラでガリガリ書きたい石もある。
ColdFireとか。
101仕様書無しさん
垢版 |
2009/06/17(水) 04:47:33
>>1

アセンブラはプログラマーとして必需言語です。
主にSIMDを使った最適化や、難読化に使います。
102仕様書無しさん
垢版 |
2009/06/17(水) 05:29:38
>>65
10万ステップの内、実際実行されるステップ数が1000行で残りはゴミとか容量気にしないアホが作るとこうなるんだな
あとオブジェクト指向言語から始めた奴なんかも容量まったく気にしてないしな
携帯500万行っていってっけど、ゴミがわんさかwww
103仕様書無しさん
垢版 |
2009/06/17(水) 08:00:33
アセンブラなどは、大工で云えば「カンナ使った面仕上げや、カナヅチ使った釘打ちの技など」だよ。

今の住宅建設では、ほとんど使わないだろ。
工場で面仕上げ済みだし、釘は電動釘打ち機で打つ。
プレハブ方式で、ユニットを組み上げるイメージで建設してる。
だから、ド素人に近い大工でも使えてる。

ソフト業界も似たことやってるよな。
素人の若いの集めて、生産性の高い最新言語を即席で教え込んで
バカスカとアホなコード粗製濫造して、何とかシステムを完成に持ち込んでいる。

やっぱ、カンナも使えない釘打ちもできないじゃあ、大工じゃないよな。
細かな調整や裏技のためには必須だろ?
2009/06/17(水) 10:08:02
>>103
きわめて同意。
なんだか自分たちが頑固オヤジになった気分だなあ。
でも、ほんとうに速度やメモリ効率を重視される時が来たら、出番があると信じてるが。
105仕様書無しさん
垢版 |
2009/06/17(水) 10:08:21
昔話 まだ仮想記憶でなかったメインフレームの頃

初心者〜低レベルプログラマーの書くCOBOLプログラムが原因不明のアドレスエラーで
落ちるケースが続出した。
ソースを読むと、一見落ちる理由がない。
あるとすればテーブルの添え字がゾーン形式であることくらい。
ま、やってみよう、とその添え字をパック形式やバイナリー形式に直すと、OK。
初めのうち首をひねった。落ちないプログラムもあるのだ。

落ちたプログラムのオブジェクトリストを出して追跡してみて、ようやくわかった。
FILE-CONTROLの4番目以降に記述したファイルのフィールドに対してゾーン形式の
添え字を使うとレジスターのやりくりがつかなくなって落ちるということ。

すぐにメーカーに現象を連絡し、各プログラマーにはゾーン形式の添え字を使うなと厳命。

仮想記憶コンピューターが入った頃転勤したので、その後どうなったかは知らない。
2009/06/17(水) 15:04:32
コンパイラも同時進行で作ってるような出来立てのホヤホヤの石とかで
新規で構築するとかなら、アセンブラ必要だな。
2009/06/17(水) 17:26:20
マシンの性能が良くなり、メモリもいくらでも使える時代なんだから
アセンブラなど不要。

…と思ってる馬鹿はおらんか?w
108仕様書無しさん
垢版 |
2009/06/17(水) 17:47:20
新しい石ができれば最小限誰かがどこかで機械語を使わなきゃならんのだがな
2009/06/17(水) 18:10:15
新規の石はむしろコンパイラの不具合が出切ってないから、実地で修正でバッグしなならん。
コンパイラの吐き出すコードが正しいかどうかを検証する事もしばしば。
2009/06/17(水) 23:55:09
オープン系のもれにはなんで枯れたコンパイラがあるCPUを使わないのか
不思議でならない。
2009/06/18(木) 01:44:21
>>110

組み込みだとそういう理由でハードを選定しないからかと。
大概、基盤の搭載性とかコストでほぼ決まる。
11299
垢版 |
2009/06/18(木) 03:07:12
組込制御系だけど、>>110みたいな理由でGCCの使えない案件(石)は
もうヌルーすることにしてる。GCCだけでなく、gdbやmakeも含めて。
石に依存した新しいIDEの突っつき方ばかり次々と憶えるのが馬鹿らしい。
アルゴリズムやOS, TCP/IPとかのプロトコルの使いこなしをマスターする
方が学習コスト/パフォーマンスが良い。

>>103
>工場で面仕上げ済みだし
今は工場も派遣のド素人がツールやライブラリ作ってるんだぜw
それをド素人の派遣SEにOOPで組立てさせるorさせたことにする
などという粗製乱造に拍車が掛かってる。
2009/06/18(木) 07:17:16
>>104
>でも、ほんとうに速度やメモリ効率を重視される時が来たら、出番があると信じてるが。

組込では無いが、マルチスレッドで作ることを強制される時代が近いはず
高級言語でも俺達の持つ枯れた知識の出番も近づいていると思うんだけど。


あ、異動してPGではなかったonz
2009/06/18(木) 07:25:18
マルチスレッドなんてもう使いまくりでしょ業務系は
2009/06/18(木) 09:04:51
DBとかのミドルウェアでは使われてるだろうけど、業務系プログラミングではほとんど使ってない。
というか、使う場面が無い。

>>113
並列処理の知識って、あまり広まってなくね?
教科書とか論文とか読み始めてはいるが。。
2009/06/19(金) 00:16:08
組込制御系でも、32bitの石を使うような案件だと、
もうマルチスッドレぐらい使いまくり。
空ループ禁止とか、mutexやセマフォなんかの排他/同期
手法ぐらい理解しといてくれ。
2009/06/19(金) 04:03:53
>>114
なんかのサーバープログラムではマルチスレッドなしでは無理。
でもクライアント画面とかにマルチスレッドが必要?
2009/06/19(金) 08:36:29
>>117
クライアントでもストレスない操作性を実装しようと
思ったらマルチスレッド使うよ。
何かするたびにユーザーを待たせてもいいなら使わないけどね。
2009/06/19(金) 18:20:34
マルチスレッドなんて使わなくても、実装方法一つで幾らでも解決できるのにね。
2009/06/19(金) 18:46:28
でもマルチスレッドのほうが楽でしょ?
2009/06/19(金) 18:50:08
目的による。
マルチスレッドにするコストってのはあるからなぁ
むしろ単にループを工夫するだけで目的達成できればそっちの方が楽なのはある。
2009/06/19(金) 21:32:30
>>110
このページには聞いたことないCPUの名前がいっぱい出てくる
http://it.nikkei.co.jp/mobile/news/index.aspx?n=MMIT0f000017062009&landing=Next
2009/06/20(土) 00:44:28
全部ARMだろう。
2009/06/20(土) 06:00:03
モバイルはだいたいARMかSHの互換だな
全く独自ってのはまずない
2009/06/20(土) 07:06:27
>>117
PC-機器とのタイマー監視アプリとかで必要でね?

2009/06/20(土) 08:35:55
リアルタイム性が重要なのはマルチスレッドにしてプロセス数上げるより
シングルスレッドで安定性重視なんじゃないのか
2009/06/21(日) 22:01:12
>>126

いまだにRTOS乗ってない案件やってます。
2009/06/23(火) 16:06:39
OSの不要な組み込み機器はいっぱいあるぞ。
だいいち、RTだけが必要でOS部分なんて不要なんだよな
2009/06/24(水) 08:41:47
っていうかOSがあるほうがめずらしいだろ
2009/06/24(水) 13:08:56
>>129
そこまで言うと無知丸出し
2009/06/24(水) 14:01:59
ちっこいのしか相手してなきゃそうなるんでないかい。

俺も自前マルチタスクモニタ持ち出す方が多いかもしれん。
最近はめっきり減ってしまったが…
2009/06/25(木) 01:32:24
汎用機を使用した開発では、COBOLやPL/Iブログラムの性能が出ない時にアセンブラをコンパイラに出力させて、ホットスポットの解析を行うことがあります。

ソースコード上は問題無いようにみえても、アセンブラのステップ数がかさんでいたりする問題などを検出するためです。

※コンパイラが出力するのは、正確には擬似アセンブラです。コンパイルリストと呼ばれています。

なにが言いたいかというと、汎用機の開発ではまだまだアセンブラが現役のスキルとして重宝されているので、そっち系の仕事をするならば勉強して損はありません。
2009/06/25(木) 04:38:07
組込作ってる会社でもアセンブラできない人は結構いる.
チーム(開発)違うのに解析・最適化頼まれる事も ;P

おまいら!

別に自分がアセンブラできなくても,
好きな奴がやってくれるからイイヤって思ってないか?

「アセンブラ扱える」
=「アセンブラでハァハァできる奴」
=「お金と時間とアセンブラコード渡せば
喜んで解析・最適化してくれる」
と勘違いしてないか?

・・・いや確かにそうかもしれないが,
本見ながら, 読める程度にはなろうぜ!
2009/06/25(木) 12:11:46
汎用機でアセンブラソースをメンテした事が2回ある
可変長レコードファイル出力と単なる帳票出力
後者でCOBOLを使わなかった理由は知らん
2009/06/25(木) 17:19:10
処理速度をウリにしてたんだろうきっと。
136仕様書無しさん
垢版 |
2009/07/01(水) 07:08:45
昔話だが、俺のいた電子計算室ではCOBOLを開発言語と決めていた。
ところがあるチームが室長に黙ってアセンブラで業務を書き換えた。
発覚したとき「これはアセンブラでなければ書けない」と言い訳をした。

その後、他のチームの人は2〜3年でどんどん人事異動で入れ替わってゆくのに
そこは5年間人事異動なし、10年後にCOBOLで書き換えられるまで
半数が異動できなかった。
2009/07/01(水) 08:36:17
俺もC++とアセンブリ言語併用してそういうことやってるよ
他の人間には理解できないように作るのは保身の基本だと思ってる
138仕様書無しさん
垢版 |
2009/07/01(水) 10:49:16
それは止めとけ。 

「策士策に溺れる」「上手の手から水が漏れる」って昔から云うだろ。
バグを誘引して、自滅する。
2009/07/01(水) 10:56:06
アセンブリって一番簡単な言語なのになぁ
140仕様書無しさん
垢版 |
2009/07/01(水) 11:03:42
アセンブリって一番原始的な言語なのになぁ
2009/07/01(水) 11:07:50
原始的だから一番簡単なんだよなぁ
2009/07/01(水) 11:14:02
簡単過ぎて難しい
何をやってるかが理解出来るまで少し読むだけでは理解出来ない
143仕様書無しさん
垢版 |
2009/07/01(水) 11:25:26
FORTRANでやればなんでもない超多元配列など
アセンブラでどうやって書けっちゅうんだ!
2009/07/01(水) 21:46:32
>>143
[10][10][10][10]の多次元配列なら、
各最大要素 10*10*10*10 のメモリを確保しておいて、
[i1][i2][i3][i4]をアクセスするときは
basePoint + ( i1 * 1000 + i2 * 100 + i3 * 10 + i4 ) の中身を参照すればいいんでないか?

2009/07/02(木) 04:05:16
メモリ参照する度に乗算命令なんかコスト高すぎて使ってられねえ。
2009/07/02(木) 04:32:22
10は、(2*2+1)*2
2回シフトに元足して更に1回シフト。
4ステップだけど、いまどき乗算なんて1サイクルだからなぁ…
2009/07/02(木) 10:58:59
>>145
だから普通はループの外でアドレスレジスタを設定し
ループ内ではインクリメントで済むように書くわけですが。
2009/07/03(金) 00:26:36
デバッガによるx86プログラム解析入門 こういう本を理解するにはアセンブラやc言語をマスターしておかないと理解できないものなんですか?
2009/07/03(金) 03:11:36
そもそもプログラマ辞めろ
2009/07/03(金) 11:02:57
そうだそうだ
プログラマは少ないほうが俺の給料はよくなる
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況