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

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

2021-01-25

anond:20210125104512

アセンブリレベルではgotoなのだから

なんてことを言ってるのは30年くらい古い。

今どきの最適化コンパイラが処理すれば、ループ構造であることが構文上はっきりしてるforの方が、構造が分かりづらいgotoよりも速いオブジェクトコードを生成できるハズw

branch predictionとかspeculative executionとか色んな仕組みがあるでなw

For文よりgotoのほうが速い

アセンブリレベルではgotoなのだから直接使うほうが速い

gotoを使いこなせずfor文のような余計な処理を使うのはプログラマ能力が低い

https://anond.hatelabo.jp/20210125095954

2021-01-02

anond:20210102190852

INCとADDもつISA場合アセンブリコードは変わってくるし。

最適化により同じになるって話が理解できないアホ

anond:20210102190253

今どきのコンパイラっていうかCPUISA次第だろ。

INCとADDもつISA場合アセンブリコードは変わってくるし。

マルチスレッド環境では後者場合排他制御意識しなくてはいけない。

2020-07-27

Go ToはいいんだけどGOTOって書くのやめろ

アセンブリをシコシコ書いてた時代を思い出すんじゃ

2020-07-21

anond:20200721010543

長すぎて所々しか読んでないけど、昨今珍しい真っ当な努力家で草生えた

アセンブリから勉強する人は珍しいねw

2020-07-15

Qiitaとかで下らない記事を書いている人は、だいたい他の記事も下らない

Qiitaで下らない記事を見つけたとき、その投稿者プロフィールを見てみると、高確率で他も下らない記事ばっか書いている。

しかも、そいつらの記事を書くスピードは早い。息するゴミ製造である

学者学習メモ投稿しているのではなく、当の本人は彼なりの「理解」と「拘り」に基づいて書いていることが伝わってくる。だから、余計に痛々しい。

ゴミ記事の例は以下のようなもの

目立つゴミ記事の特徴は、とにかく実質的に何も説明していないこと。そして、キーワードキーワードをつないで、技術的なトレンドを把握したような気になっていることだ。

たとえば、明らかにCPUコンパイラの仕組み、アセンブリ等の知識のない人たちが、「コンピュータ二進法で動いている」みたいな表面だけの全く内容のない記事を量産している。

もちろん「まだ学習途中で、大雑把な仕組みは知っていますが、詳細は分かりません。より詳しく知りたい人はパタヘネとか読んで下さい」とでも言っているなら、まだ好感が持てる。

しかし、ゴミ記事は内容を説明せずに、とにかくたとえ話や関連キーワードの羅列に走る。書いている本人にとっては、それこそがコンピュータ技術勉強することなのだという気迫と拘りだけは伝わる。それだけに、傍から見るとすごくイタい

これは検索エンジンのしくみ上仕方ないのだが、そういう記事SEO効果がめちゃくちゃ高い。何せ、人が検索するようなキーワードが散りばめられているし、馬鹿でも読めるので多くの人がアクセスするから。だから余計に目立つ。本当に迷惑

こういうのは現実にもいて、色々知っててすげえなあと思って実際会ってみたら、バブルソートクイックソート計算量の違いも説明できない人だったみたいなことが幾度となくある。

もう、こういうのやめませんか?誰の得にもなってない。

2020-05-27

コンビニ店員さんのレジ対応

まるで、話に聞くセル生産方式工場の発展版だね。

客が材料BOMを持ってきて、たばこだの唐揚げだのストローだのアセンブリして、一定時間内に仕上げねばならない。

コンビニセル生産方式工場も実際に働いたことないのでわからないけど、どちらがハードかしら…

2020-05-22

windowsってやっぱりすごいんだな

アプリケーション開発のために勉強始めたけど、

ふぇ…頭がパンクしそうだ。

Webアプリケーションだとソフト部分の事だけ考えていれば良かったけど、Windowsアプリは思いのほか大変だ。

型だけでかなりの数あるし、OSやら繋がってるデバイス制御するためのドキュメントを見てもすごいページ数。

コンパイルやら、バイナリやら、アセンブリやらなんたらかんたら…

エロゲするだけのPCしか思ってなかったけど、実は何でも出来るすごいOSなんだな…。

近所のお兄さんは実はすごい人だったみたいな感覚だ。

anond:20200521225730

プログラミング言語を印象批評している記事に触発されて、自分も印象批評してみようと思う。

JavaScript以外にもブラウザ上でぐりぐりするのにはJava AppletとかFlashとかSilverlightかいろいろあったけれど、結局標準化を成し遂げたHTML5に淘汰されちゃった感じがする。LiveScriptからJavaScript改名されたり、規格を話すときECMA Scriptだったりといろんな別名を持つ。一応、プロトタイプベースオブジェクト指向言語なんだけれど、それを意識してコードを書く人がどれくらいいるかは謎。

Pythonは小さいコードを書くのには楽だけど、これで大きなコードを書くと思わぬ変更で思わぬことが起きるのでつらい。しばらく使うとPythonイヤイヤ病にり患し、goを使うようになるらしいとか、ならないとか。pythonで大規模なコードを万一書こうと思うなら、カバレッジが高いテストを書いてくれと思う。

Javaは初期のころオートボクシング / アンボクシングもなく、ストイックオブジェクト指向言語だった記憶がある。ただ、staticを多用してオブジェクト指向とは程遠いコード簡単に書けるので、Javaで書いているからと言ってオブジェクト指向だと思うのは禁物である

PHPWebネイティブ言語で、初期のころHTTP POST/GETなどで渡された変数がそのままプログラム中に出てくる機能初期化していない変数最初に使うと空文字列あるいは0で初期化するという機能があった。また、文字列数字臨機応変に切り替える機能もあり(今もそうかは知らん)、数字文字比較比較演算子(==)でシームレスにできる。パスワードチェックみたいなコードで===ではなく、==を使っているとPHPを知らないバカ扱いされる。

C#Hello Worldくらいしかいたことないから知らん。monoのような互換環境があるのは知っているけれど、わざわざPC Unix上でmonoを使う気分にはなれなかった。

C++黎明期に使った感じと、C++11以降に使った感じが驚くほど違う言語。今はかゆいところには大抵STLで手が届くし、autoを使えばイテレーション腱鞘炎になることもない。PC Unixにも最初から環境インストールされているか簡単インストールできるので毛嫌いせず使うとよいと思う。

Rubyはぎょっとする変更をよくやるというイメージ。これで書かれたプログラムを長年愛用してきたが、ぎょっとした変更を入れられて動かなくなったのでgoで書き直した。その点ではpythonも3でおいていかれたので嫌い。

CSS...はプログラミング言語なのか?そうか。

TypeScriptは書いたことないから知らない。JavaScriptだと大規模コードを書くとつらいのでTypeScriptを使おうという人がいるのは知っている。大規模なコードを書くとしたら、インタフェースに合った呼び出しかコンパイル時にチェックしてくれるような強く片付けされた言語のほうがよくなってくるというのはわかる。

Cは片付けし、構造化したプログラムを書きやすくしたアセンブラ...というイメージだったんだけど、C99くらいから便利機能がいろいろ入ってそうでもない感じになった印象。昔はCのコードを見たら最適化した後のx86アセンブリが見えていたんだけれど、最近は見えなくなってしまった。子供のころ、本屋で秘伝C言語問答 ポインタ編に出会ったのがこの業界に入るきっかけだったのかもしれない。ほかの言語でいろいろ楽に書けるからカーネルをいじるか、システムコールをたたくかするときくらいしか自分の中では出番がなくなってしまった。

これ以下のランキングのもその気になったら書こうかな。

2020-02-09

俺の中での2大言語

母国語C言語

 何と言っても安心感自分が書いてるコードがどんなアセンブリになるか想像できる。

 コンピュータを掌握できる圧倒的支配感。

便利屋python

 こいつは思考のままにコード化できる優れもの

 ライブラリ豊富なのも良い。

この2大巨塔がいれば一生困らない。

2020-01-14

ソートがまさにそうだけど、バブルソートの特異領域N=1,Bigがそうだけど(例示)

教科書どおりにならないことがあるから

ソートアルゴリズムも1つじゃなくて、テキストでもあれだけ教えている。

現場ではどうするか?といえば

何種類も書いて、データを取って、比較検討して

採択されたものソースコードに書かれる。それいがいはブランチに合ったりする。

いくつかは、排他的だったり選択的だったりして

コンパイルオプションソースコードに残る

これらがあるので、いわゆるバイナリリバースからソースコードの複雑さは推し量れないし

こういう膨大なテストがあったりするので(俺の場合は少ないが)

ソースコード価値はなかりしれなかったりする。

 

リバースだけから学ぼうとするな、ソースコードアセンブリ結果から学べ

というのはそういうこと

 

いくつかいったけど、コンパイラ最適化を期待したりしてソースを書いたりするので

そういう書き回しをまなんでいくことも重要

ソースだけになw

2020-01-11

バブルソートのNが1の場合特殊回答となるのは

計算時間がN~2の単純解というのは2LogN+2Nよりも高速になりえるという驚愕理屈だけではなく

for(int i=0;kess(i,N-1);i++)が

for(int i=0;less(i,1-1);i++)となるために

実質初回が偽 i<0 0<0となるため1度も成立しない、となり

コンパイラ最適化されるため、そもそもforループが0バイトアセンブリコードになるという驚愕理屈による

当然0バイトなのだからなこれほど高速なコードはない 実行時間が真に0

2019-02-09

大学に通っているが不安

僕はアメリカ大学Computer Scienceをundergraduateで専攻しています

大学自体レベルTOEFLスコアが80あれば入れるぐらいです。

今は2年次ですが各学期に専攻のクラスを一つ以上取っている状況です。

基礎教養に当たるクラスが60単位ほどあるのでそれと並行して進めています

先にアメリカ大学に入った経緯を話します。

中学高校とまともに学校へ通わずに、だけど高校通信制だったので欠席分の課題を何とか終わらせ無事に卒業しました。

大学担任に勧められるまFランに入ったのですが友達も作れず一年も続かずに退学しました。

それからフリーターしながらダラダラと生活していて、二十歳を迎えます

高校友達担任とその辺りのタイミングで再開した時に自分人生方向性を深く考えられました。

唯一英語だけは人生のいろんな場面で触れる機会があり、それを活かしたいとも考え留学に決めました。

両親に掛ける負担一般的学生に比べて半端ないと思いますし、それは一生を通しても清算できません。

なのでせめて、失敗だけは絶対にしないという心構えで取り組んでいます

話を戻します。

入学当時プログラミングに関して、僕はスッキリわかるjava入門を通読した程度で、他の知識は皆無でした。

今まで取ったコンピューターの基礎クラス2つはjavaが主で、試験選択+プログラミング問題(これは10行に満たない簡単もの)でした。

もう一つのソフトウェア開発はc++を用いて、後はlinux基本的なsyntaxを覚えました。

基本的にどの講義で習うこともネットで調べれば(geeksforgeeksなど)独学は可能で、

特に日本人なら良い日本語書籍に恵まれているので学費コストを考えたらUdemyでかなり節約できるだろうなと思いました。

それ以外の雑多なクラス(日本の基礎教養カリキュラムはあまりからないのですが、歴史生物学英語理系文系関係なく取らされます。)

も新しい知識を得られる意味では楽しいと思えるのですが、それが大学を出た後にどう自分を助けてくれるのかは想像できません。

Computer Science自体カリキュラムざっと眺めると高水言語からアセンブリなどの機械語に近いもの必須クラスで学び、

後はOS機械学習プログラミン言語のprinciples、など選択で取る流れになっています

これはどの講義でも言える事だと思うのですが、1セメスターで一つの内容に対する深い理解を得るのって時間的に厳しい所があります

上辺の理解でも試験対策さえすればAを取るのはそう難しくなく、そのまま次の学期に移行してしまます

僕が懸念しているのは、このまま卒業すると間違いなくただのジェネラリストになってしまうんじゃないかって事です。

自由時間を使って書籍なりUdemyなりで技術を身に付けるのが最善策ですが、要領よく課題と並行してやるのは難しいです。

まだコンピューターに対する理解が浅く、注力したい分野を定められていないのも不安を抱く要素なのだ理解しています

ただ、モチベーションの為にも現状の学業に対する認識を改めたいという考えが強くあります

最後まで拙い文章すみません

2018-12-23

SECCON国内大会供養

SECCON国内大会お疲れ様でした

以下ツイッターなどから拾った我々の反省点となります

以上、来年もっと頑張ります

2018-05-29

クラウドのみにするって

最近クラウド流行ってるからって全部クラウドに移行するなんていうのをたまに聞く

自分で面倒なことしなくていいから楽だとは思うけど、それってインフラ面をできる人がいなくなるということじゃないの?と心配になる

ほとんどの人がクラウド使うのが当たり前になった頃に、AWSなどが値上げしても、もう1から環境作れる人がうちにいないから高いけど払うしか無いみたいなことになりそう

他にもクラウド提供してる会社がなにかの理由でやめたりしたらすごく大変そう


からクラウド使うにしても全クラウド頼りってなんか賛成できない


でも考えてみたら、今って高級言語かばかりでCとかアセンブリ書ける人は減ってると思うし、IT系会社でもC言語とか低レイヤー系を扱える人が全然いないところだって普通にあるわけだ

私自身それらの言語あんまり詳しくないが、必要になることがないから困ってはない


同じようにクラウド化もインフラの設定や環境作りなんて専門の人に任せておいて、それらに興味がある人でもなければ基本は知る必要もないことになりつつあるのかな





2018-04-02

ゲーマー友達が欲しい!!!

友達欲しい!!!!!ゲーマー友達欲しい!!!!!

ちなみにコンソール派です!!!!!PCゲーはゲーミングPC無くてプレイ出来ない!!!

ゲーミングPC欲しい!!!!!ゲーマー友達もっと欲しい!!!


どうしたらゲーマー友達できますか。別にオンラインで一緒に遊ぶとかしないでもいいんです。最近出たオススメタイトルを互いに紹介し合ったりレビューし合ったりゲーミングバー行くような関係友達が一人や二人欲しいんです。

友達別売り?いやお金で買えないよ。プライスレス

ーーーーーーーーーーーーーーーーーーーーーーー

こっちでも追記

みなさん優しくて本当に感謝感謝です。ありがとうございます

トラバに関して、少しだけ返信します。

ゲームやってる人の後ろで見ていたい

→喋りが下手くそなので多分プレイ動画の垂れ流しになるんですがそれでも需要あるならやってみようかなぁ

・ゲーミングバー?そんなのあるの?

https://goo.gl/dxvfVb こんな感じで色々ある

ゲーセンいけ

ゲーセン特有コミュニティ、ほんと憧れてる。でも貧乏なんで通えないんだわ。

コンソール派ってはじめてきいた

→語弊を生んで申し訳ない。あなたの言うコンシューマー派で捉えてもらって構わない。

 他の人も言及しているがコンシューマーというのは和製英語で、英語だとコンソールゲームと言う。

 自分職業海外情報に携わることが多くどうしてもコンソールと言ってしまう。

・俺と友達になろう 積みゲー多いけどな

→是非なって欲しい id教えてくれればコールするし、嫌だったらブクマから私のidコールして欲しい。もしくはTwitterに連絡くれても可

自分オールタイム・ベストと好きなゲームジャンルに関して

書いてくれという方がいたのでとりあえず3本書きます

◯桜国ガイスト

ポケモン流行った当時量産された、いわゆる「ポケモンlikeゲー」の中でも個人的に良作と思えた一本。

相棒であるモンスター武器に変化させ、トレーナーも一緒に闘うというゲームシステムが斬新だったのと、それ活かしたラスボス戦が最高だった。妖怪和風)とSFを融合させたかのような世界観も秀逸で、小話付きなサブミッションなどやりこみ要素も豊富。色々と惜しいゲームだったが、作品を購入した当時の自分は狂ったように遊んだのを覚えている。リメイク版とかでないかなぁ

メタルギアソリッド3

戦争×歴史×SFロマン大作『メタルギアソリッドシリーズ』の第3作。東西冷戦の中に生きた伝説特殊部隊を描いたスニークアクションゲームストーリーラインこそシンプル王道スパイ映画のような筋書きだが、小島監督ならではの演出も相まって噛みごたえ抜群の味わいを誇る。スネーク〜イーター♪〜や「人生最高の10分間にしよう」以降の演出は今でも忘れられない。

いわゆるメタ演出というものゲームで触れたのも私はこの作品からだった。文字通り腹筋が崩壊したのを覚えている。

合わない人は合わないが、合う人はドハマリすること請け合いゲームだ。ちなみにこの作品のおかげで、私はスニークアクションゲームが大好きになった。アサクリシリーズ、HITMANシリーズDishonoredetc

アーマード・コア for Answer

ロボット3DSTAG「アーマード・コアシリーズ」4作目続編。個人的には集大成という感じでシリーズ内で一番好き。安易に語らないことで自己矮小さと対する世界の壮大さを無意識に感じさせる物語プレイヤーの選択次第で変化する世界と、それでも全てが明らかにならない真実。爽快感抜群の超高速戦闘自由度の高いマシンアセンブリゲーム難易度を上げるとそれに応じて物語真相に近づくという演出もよかった。これ以上好きの気持ち文字に起こすとなんだか安っぽくなってしまうように思えてならない。言葉不要か…


こんな感じです。基本的アクションアドベンチャー大好物です。最近遊んだものだとアサクリオリジンズやニーアオートマタベヨネッタ2スイッチ版)とかですかね。あとはいわゆるコマンド選択JRPGADVも大好きです。FFドラクエポケモンLIFE is Strange、テキスト主体ポイント・アンド・クリック系(シュタインズ・ゲートさよならを教えてマブラヴオルタネイティヴなど)。FPSエンジョイ勢。Dota2とかやってみたいがPCが無い。ソシャゲグラブルハースストーンしてる。

2017-09-30

C言語最初に学ぶべきではないが最初に学ぶことのメリット

私は今とある大学の4年生です.

本格的にプログラミングを始めとしてコンピュータ科学を学び始めたのは大学入学してからです.

今では幸運なことにインターン都内ベンチャー企業golangpython, scalaを用いた大規模なシステム構築に携わっています.

給料日本大学生にしては破格といえるのではないでしょうか. それも大学で真面目に勉強したお陰であると胸を張って言えます.

大学の方の卒業研究では組み込み系のセキュリティに関して研究しています. 正直テーマ選びに失敗したなと思っているので大学院にいったらシステムプログラミング系の方にシフトしようと思っています.

無駄話が過ぎました. 表題に関して話しましょう.

私が大学の授業で初めて習ったプログラミング言語C言語でした. 理由教授に聞くと, 並行して座学で教えるコンピュータ科学系の専門授業全般と結びつけやすいからだそうです.

最近TwitterQiita, StackOverflowなどでは「初学者最初に学ぶべきプログラミング言語はなに?」という質問に対して, JavaScriptPythonから入るのがベストだと言う人を沢山見かけます.

私自身こういった意見には賛成です.

JavaScriptブラウザというものが有る限り20年は消えなさそうですし, Python機械学習を始め, Webシステムでも使え, 非常にクレバー言語です.

javaオススメだと思います. 30億?ものデバイスで動く言語ですしドキュメント豊富です. 色々な分野にも応用が効くでしょう.

さて, そんな中でC言語という悪い評判しか聞かない, でもやたら色々なところで使われているらしい言語最初に学ぶメリットとは一体なんなのでしょう.

一つ, 私が思いついたのはコンピュータと仲良くなれる.

というのもC言語アセンブリ機械語に比べれば, 人間にわかやすく, かつコンピュータ側にも近いという顔をもちます.

真面目にプログラミングしようとするとどうしてもそのコンピュータの仕組み(主にメモリ) について学ぶ必要が出てきます. これらの知識現代の開発に置いて役立つ分野比較的限られると思います.

しかし, それらは思わぬバグ特定意図していない動作改善に役立つことがあるかもしれません(実際に私もいくつか出会いました)

二つ目は他の言語を学ぶ時のハードルが非常に低くなる. これはどの言語を学んでも同じだとは思います.

そして, 他の言語の高級な機能に思わず涙ぐみながら感謝すること間違いなしでしょう(javaのsplitとか他の言語にもあるHashとか)

ただ, 私はC言語構造体やポインタのお陰でオブジェクト指向プログラム言語を低レイヤ実装的な面と概念的な面ですんなりと理解することができました.

そしてよく挫折ポイントとなるポインタ(ダジャレじゃないですよ?). これもメモリの住所だと考えればそれほど難しくはないのです.

メモリ管理を適切に設計した時あなたプログラムボルト並みに早く走ってくれるかもしれません.

他の言語では味わえないやりがいがあるのもこの言語の魅力でしょう.

書いているとこれぐらいしか思いつきませんでした.

それでもコンソールに初めて Hello World! が出力された時の感動はやはり忘れられません.

昨今, 高機能言語が沢山ありますが, あなたプログラミング生活ささやかアクセントとしてC言語を学び直してみてはいかがでしょうか?

きっと今使っている言語普段言わない感謝言葉を述べること間違いなしです.

それではこんな駄文に付き合っていただきありがとうございました.

一刻も早く世界からC言語が消えることを祈っています.

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