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

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

2018-10-12

プログラミング本質カプセル化ブラックボックス

コンピュータマシン語命令文もデータも数値で表す。これは今も昔も同じ。

数値だけでは人間管理しづらいので命令文を mov や add のようなわかり易い単語に置き換えたのがアセンブラ

(わかりづらい数字人間理解やす英単語に置き換えた)

アセンブラも規模が大きくなると人間には管理しずらくなる。

そのため人間言語により近い高水言語が生まれた。

if や for などで制御をわかりやすくした。

複数の処理をひとまとめで扱うサブルーチン関数プロシージャ・ファンクション

いったものができた。

(処理の流れをわかりやすくした、構造化、カプセル化

複数データをひとまとめで扱うレコード型や構造体生まれた。

カプセル化

コードデータをまとめて扱うクラスができた。

カプセル化抽象化

アプリケーションからOS機能を呼ぶシステムコールAPIが生まれ

ブラックボックス化)

複数クラスコードデータをひとまとめにするにモジュールができた。

カプセル化

プログラムを外部から操作するRPC、CORBA、SOAPRMIができた。

リモートから操作ブラックボック化)

WebAPIアーキテクチャーを超えての疎結合が進む

さらなるブラックボックス化)

IaaS / SaaS / PaaS を使いネット上のサービスにつないでシステムを構築する。サーバ管理不要に。

ブラックボックス化)

CIツールサーバ数台〜数百台を1人で扱えるようになった

操作の簡略化)

DockerWEB/DB/KVSなどをまとめてコマンド1つで扱えるようになった。

カプセル化抽象化

プログラミングとはわかりづらいマシン語人間にわかやすくするのが本質

カプセル化ブラックボックス化・操作の簡略化は正義

2018-10-04

anond:20181004153239

LinusC++なんかで書いたらメンテナンス不可能なクソ設計になるってDISったのを、速度面でDISったと勘違いしてたんだよな?

不要アセンブラコード」なんて話じゃねーんだよ

ソースコード設計の話なんだよ

無意味言い逃れ相手が呆れるのを「言い分が認められた」って勘違いし続けてる老害ひどすぎる

anond:20181004151736

それを理解してるならなぜちゃん最初に突っ込まん。

linusは確かに「速度」という点でC++言及しているような話は直接的には無かったかもしれないが、基本的に彼のスピーチの中では「必要ねーアセンブラコード吐き出すぞアイツは」ってのが根底にある訳だろ。

そこを「C++は遅い」とするのは概ね正しいぞ。

2018-09-12

anond:20180910094331

なんか書いといたほうがいいような気がしたので書いておく。

組み込みといっても範囲が広く、

最初あなた相手にするのはRAM 1kB, ROM 4kB、クロック 20MHzなどというMCUである

なんてところもあれば、中身はARMLinuxですみたいなところもあるし、その中間RTOS使ってます。ということもある。

ただ、歴史的経緯として、マイコン制御などと呼ばれていたような時代から組込みソフトウェア開発がはじまって、

時代をくだるにつれて最終製品機能が高機能化、複雑化するにしたがってソフトウェア開発の規模も比例的に、

あるいは指数関数的に拡大しているわけで、NonOSアセンブラやCで書くという仕事相対的に減っている。

(なんせ、ある程度高価格、高付加価値製品を作らなければ国内メーカーは潰れるしかない)

なので、一番規模が小さいところの仕事はなくなりはしないし、働いている人は食いっぱぐれないとは思うけど、

わざわざ新たに飛び込むのは正直オススメしない。

で、問題は規模の大きい方で、当時マイコン制御をやっていたようなベテランやそれに薫陶を受けた開発者

勉強」をせずにこちらの方にコンバートするとどうなるかという話だ。

コンパイラC++11,C++14であるにもかかわらず、Cもどきコードを書くし、プロセスは巨大だし、

強烈に古臭いアーキテクチャを擬似的にOS上に構築してしまう。

その結果出現するのは、ひたすら肥大化アンタッチャブルになったコードと原因不明バグである

IoTがどうのこうのなんて言っていても、組み込みが専門じゃない人がラズパイセンサー買ってきて

一日半あればできるようなことを、ああだこうだやっているようじゃやっぱり生き残る道はないんじゃないかなー。

2018-09-10

anond:20180909073549

組込み界では今時のプログラミング界隈の常識の多くが通用しない。最初あなた相手にするのはRAM 1kB, ROM 4kB、クロック 20MHzなどというMCUである

使用する言語はC99かアセンブラである。幸か不幸かC++を使わされることもある。既にC++で書かれたプロダクトに係わってはならない。

当然フロントエンド界隈などのようなイミュータブルインスタンスを大量に使い捨て富豪的言語アプローチ採用は難しいだろう。

トラブルが起きたときプログラムだけでなく回路図を読んでハード側に問題があるこを示せないと極めて立場が悪くなる。

しろプログラムし易いコンポーネント選択や回路構成積極的に口を出していかないと動かない責任けがソフト担当者に投げられて割を食う。

開発環境Windows上のEclipseベース統合環境が使えれば上等であり、運が悪ければMCUメーカーお仕着せのクソIDEを使わせられる。Mac優雅に開発することはまずあり得ないだろう。

底辺企業バージョンコントロールシステムの導入のための意識改革簡単ではない。もし強行に導入しようとすればあなた孤立する。

誰かがIoTだ、機械学習だの言い始めても社全体として主力製品を作るのでなければ本気で取り組んではいけない。あなたがそのテクノロジー理解していても誰もサポートメンテもしてくれないのだから

2018-09-09

anond:20180909083801

組み込み系って、どこからどこまでなんだろう。

半田ごて使わないやつは組み込みにならない?

昔、アセンブラゲームボーイカラーソフトを作ってたけど、あれ組み込み系だと思ってた。

2018-08-08

anond:20180807205430

君は君のスマホがどのように情報をやりとりしているか理解できているか情報電波に、光に、導体に、どのように乗るか理解できているかOSが何をしているか理解できているかアセンブラから高級言語まで、どのように組み立てていくのか理解できているかネットワークがどのように構築され背景にどのような理論があるのか知っているか待ち行列理論を知っているか情報理論を知っているかエントロピーを知っているか統計的機械学習がどのように動くのか理解できるか。グレブナー基底を用いた数学証明コンピュータで構築できるか。君が情報に関わる者全てを工事現場の土方だと思うなら視野があまりにも狭い。君が土方なら私は君の何千倍も優秀な土方であり、そしてかつ何よりその前に建築家だ。

2018-08-02

anond:20180802203208

Javaの参照はJavaで覚えればいいんじゃない

Javaを極めるためにCのポインタをおぼえるってバカらしいと思うわ。

Cが日本ではやり始めたころは、Cを使いこなすにはアセンブラが使えないとだめだって言ってた人たちがいたらしいけど、それが正しいならJavaをやるために、アセンブラ→C→Javaの順番でやれって話になる。

2018-06-28

時代とともに変わるソフトウェア開発の基礎

コンピュータソフトウェアを開発、運用するエンジニアが持つべ知識スキルの基本セットとは何か?

例えばインテルCPUアセンブラが書けます!と言った場合就活で有利になる場面がどれだけ想像できるか。

UMLクラス図書ます!とか、暗号化理論バッチリだぜ!とか、相対性理論なら任せとけ!とかの場合

おうおうおう、だったら弊社のホームページをカッコよくしてくれよみたいな案件無難にこなせるのかというと

甚だ疑問では無いだろうか。

一昔前はソフトウェアハードウェアのおまけだったわけで、ハードウェアこそがエンジニアが抑えるべき基礎だった。

時代は変わり、ソフトウェアでできることはものすごく多くなった。スマホアプリを作るのに組み込み知識がなくても困らない。

からこそ、現代ソフトウェアのみのエンジニアは旧来のコンピュータ関連エンジニアと道を分かたれている事を自覚しなければならない。

自分キャリア自分デザインする必要があるということ。

古いエンジニアの教えに沿えば、自分も古いエンジニアになる。

今の時代の最適解を見つけるのは困難かもしれない。

だけど組み込み系やマイコン制御をしないのであればアセンブラC言語よりも優先して学習することはいくらでもある。

C#C++よりもPHPが優先される場面もある。

html,css,javascript をある程度自在に扱えるようになるのも長期間の訓練による積み重ねが必要になる。

コンピュータサイエンスネタが無いな……これはプログラミングに役立つネタももちろんあって、構造プログラミングオブジェクト指向プログラミングなんかもそうだけど、表層的に関数分けました、クラス分けましたとかしてもうまくいかない。ネストが浅けりゃいいってわけじゃない。プログラミング以外のネタもある。サラリーマン巡回問題とか。

2018-06-14

プログラムコメントを書かない派が増えている理由

第1の理由はもちろん、高級言語の普及により本当にやりたいことだけを書けば良くなってきたことだろう。

コメントを書かない派もCやあるいはアセンブラを書くときコメントが欲しくなるはず。

それともう一つ、最近エディタシンタックスハイライトにも理由があると思う。

Atomデフォルトテーマは黒背景で、コメントはグレーで表示される。

背景とコメントカラーコントラストが小さいので、「コメントの部分は重要でない」という印象を無意識のうちにユーザーに与えていると思う。

自分は適度にコメントを書いたほうがよい、むしろプログラム見出しの役目を果たすと考えているので、エディタ上でもコメントはもう少し目立つ色にしている(文章でも見出しは本文よりフォントが大きいように)。

2018-04-08

anond:20180408113715

最近のものって頻繁にあれこれ機能追加されるの多すぎ

のもの問題なく作れるんだからそのままでいいじゃん

じゃあ、元増田は今後アセンブラだけでプログラミングな?

本気で言ってるわけじゃなくて、プログラミング言語っていうのは過去に「あれこれ機能追加され」たもの

もしくはそういった機能追加をいったん整理して作り直したものに過ぎないんだよってことを言いたかった。

2018-03-16

ちょっと羨ましい

プログラマやってるけど、昔話を聞くに、本当に隔世の感があると思わされる。

だって昔のプログラマ仕事って、入念に机上デバッグされたフローチャートを、ただひたすらCOBOLFortranアセンブラ翻訳して、コーディングシートに書くだけの仕事だったんでしょ?

フローチャートで書ける程度のロジックなんて全然難しくないので、シートを書き終わった時点で事実上プログラムは完成したに等しいと。

あとはパンチしてもらって、テストは大抵一回動かすだけで全部問題なく通って一丁上がりと。

そうなると、これはもう気合と体力の問題って話になる。

そりゃ月残業300とか働くのも決して不可能じゃないし、それだってハイになった勢いでガシガシ書けるだろう。

そうやってカネがっぽり稼いで、日々のモヤモヤは酒タバコ麻雀パチンコ風俗スッキリさせて、そんでまた思いっきり働く。それが男だろ!ってノリだよな。

仕事懇意になってるパンチャーのお姉ちゃんと裏で仲良くなって、そのまま付き合って…なんてのも普通にアリだろう。

昭和は明るい時代だったんだなあと、少し羨ましくなる。


今はもう、あらゆることが複雑になりすぎて、設計だってUMLER図で対処できるかすら怪しくなっている。

言語だってJavaだけじゃなく、SQLやら、HTMLCSSJavaScriptと心得てないと仕事にならない。

そして何より、動かして試して、都度直していかないと分からないことだらけになっている。

プログラマの脳にかかる負荷は昔と比べ物にならない。当然あまりに長時間労働事実上不可能

俺は残業100まで行った所で帯状疱疹が出て、シャワーで腰をさすりながらココらへんが限界と思い知らされた。それが10年前。

勿論今はもっと無理が利かない状況。


でも、残業300可能時代を、色んな会社で現役として駆け抜け出世した幹部オヤジ達に、今のプログラマが抱えているアレやコレやらは、多分理解できない。

それくらい、時代が変わりすぎたのだろう。見えている世界が違いすぎる。

から今の若い奴らを根性無しとして完全に見下しているし、本音では「なんだよ急に辞めやがって使えねーなー」とか「アイツ死にやがった、ざまあwww」と思ってる、人でなしの老害ばっかり。

勿論FortranC/C++Javaみたくスキルを身につけてきた人は例外だけど、本当に例外中の例外でめったにいない。

それで「昔のままのノリじゃ、今の開発は絶対に稼げない」ということに思い至らない。

こんなブラック業界、やっぱり一度潰れたほうがいいんだろうと思わされる。

2018-01-14

anond:20180114173911

じゃあお前アセンブラやれって言われたらアセンブラやるのかよ

そういうとこだぞ

2017-10-25

anond:20171025202030

分かる奴は分かるんだろうけど、低級(アセンブラ言語とかの)な感じで、ものすごく直観的に理解難しいな、何もない状態からだと

ちょっと分かればすいすい行く可能性もあるが

2017-07-14

anond:20170714185305

なんとしっくりこないが、

アセンブラを書くと言うなニーモニックを書くと言え」と言われたのかもしれないって気がしてきた。

まぁ記憶などあてにならない場合もあるってことで。

https://anond.hatelabo.jp/20170714184657

アセンブラ言語、という言い方があったとしても、アセンブラ言語のことを「アセンブラ」って呼ぶのは間違いで、アセンブラ言語ではないって訂正されるでしょ

コンパイラ言語コンパイル言語って言い方は普通に通じるけど、言語のことをコンパイラって呼んだら怒られるのと同じでしょ

ただ一時期アセンブリ言語のことを「アセンブラ」って呼んでて、途中でおかしいって指摘が入って、「アセンブリ言語」に統一されたんじゃないの

そうかぁ?

wikipedia(英語版)ではあるが、

An assembly (or assembler) language, often abbreviated asm.....

って書いてあるぞ?

その昔に(今もか)アセンブラについて語っていた奴らには少なくとも

本当のバカはいなかっただろうからちょっと君の説は信じがたいな。

https://anond.hatelabo.jp/20170714183608

アセンブリ言語assembly languageの正しい、というかそのままの訳

assembly languageをアセンブラって呼んだ馬鹿がいて広まっちまって、その訂正が「アセンブラというのは~言語ではない」

anond:20170714182648

ニーモニックアセンブルしたものがオペコード(16進)」と習ったんだよ。

アセンブリ言語」という言葉自体がないように習った気がするんだけどなぁ。

アセンブルするものアセンブラというのはそういう認識でいる。

anond:20170714111723

その昔「アセンブラというのはニーモニックをオペコードに変換する手段ことなので言語ではない」と

習った記憶があるのだが、今ではアセンブリ言語とか普通に言われてるよな。なんだったんだろう。

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