「機械語」を含む日記 RSS

はてなキーワード: 機械語とは

2020-09-10

そりゃぁ、機械語プログラムに直接パッチを当てることはできるけど

C言語ソースコードを書いた人間人格権はどこへいくの

 

悪魔はいった。

君がドラゴンだと、おもうものが、ドラゴン成るだろう。

ドラゴンとはそういうものだ。

きみが、ドラゴンだと、いったから、それは、ドラゴンであろう。 きみにとってはね。

2020-08-02

プログラムというものが分からない

以下、プログラミングは出来ない俺の認識が間違っている場所があったら教えて下さい。あと、疑問2つを教えて下さい。

【俺の認識

1. コンピューター(というかCPU)が実行する命令は【機械語】で書かれている。たとえばx86CPU場合、0x04ならば『imm8をALに加算する』命令、0x90ならば『何もしない』などである

2. 流石に機械語のままでは人間プログラムするには不便なので、機械語をそのまま人間にも意味が分かるように1対1対応で書き直した【アセンブラ言語】というのがある。0x04ならば『ADD AL, imm8 』、0x90ならば『NOP』と表記される。

3. アセンブラ言語のように機械語と1対1対応している言語を【低級言語/低水準言語】と言う(この呼び方、4で書く高級言語が出来てからまれレトロニムか?)

4. アセンブラのままでプログラムするのも困難である場合が多いので、機械語と1対1対応していないプログラミング言語もある。このような言語を【高級言語/高水言語】と言う。

5. 高級言語で書かれたものそのままでコンピューターには実行できないので、【コンパイラ】というソフトによって機械語に変換している。

6. 高級言語で書かれた状態を【ソースコード】と言う。このソースコードx86用のコンパイラコンパイルすればx86で動くソフトになり、SPARC向けにコンパイルすればSPARCで、PowerPC向けにコンパイルすればPowerPCで動くソフトになる。

【疑問】

a. 認識6が正しいのであれば、(サポートするファイル形式問題などを置いておけば)windowsmacは現時点では同じCPUを使っているのだから、同じコンパイラコンパイルしたソフトwindowsでもmacでも動くのではないか

b. たまに『コンパイラを書いて』と言っている人がいるが、そんなに簡単に書けるものなのか?

2020-06-15

並列処理CPU命令対応した標準箱型機械語集はC++17で使えますか?

2020-06-03

これは昔からあったんだが、

コンピューターC言語などを使うコンピュータープログラムという分野はマルチメディアと呼ばれる学問や、映像表現技術ではなく

電子工学である

というのが、若い子には勘違いされやすい。

電子工学電気工学の違いは、ものすごい大雑把に言うと、デジタルアナログということも不可能ではない。

電子工学というのは電子デバイスまり大雑把には半導体のことでありCPUなどのプロセッサなどの学問であり、コンピュータープログラミング内包している。

他方、映像分野からきたひとからすると、メディア学問でも当然プログラムは習うのだが、そりゃならうだろうが、学問的に分類するとC言語などのプログラミング電子工学なのである

Bitってなに?っていいだすと、電子工学をつきつめていくが、原則的には電気工学だろうなぁというのにちかい

C言語ってどうして>機械語機械語ってどうして>電子工学電子工学ってどうして>電気工学

2020-05-30

Manycoreという技術のものIntelもだしてる。さらなるManyはGPGPUでやってる。

他方シングルコア性能は上がってはいるが4Gぐらいで、議論を呼んでる。

議論を読んでいるのは、コンパイラ最適化と、マイクロコード最適化

そこはかなり疎結合からな。インタプリタで言うエンジン最適化ではないが

CPUでどう最適化されるか?をインタプリタがもうすこし制御すればインタプリタスクリプトコードをもう少し効率的な生成にできるのではないか?というアプローチJava的ではなくPython的にあらわれはじめていて、けっこう、興味深い

 

デフォルトPythonコーダー機械語の変換について学習させてあるPythonという考え方はとてもポケモン的で面白い

2020-05-29

anond:20200529134647

たとえば すこしちがうけど

i=10;

:label

if( i!=0 ) {

   i--;

  goto label;

}

こんな感じの命令だとthenになる可能性が高いから ということを前提に考える

そうするとこの処理はTHEN節優先のほうが効率よく機械語を処理できる

するとこういう書き方を多くサポートするコンパイラ場合

elseに書くとそれだけで遅くなることがある(めったにないけど)

そういうふうに考える

anond:20200529133925

コンパイラ実装による。THEN節優先とELSE節優先というルールがあって、THEN優先の場合特に指示がないと、THENになる確率が高いと考えて、機械語を生成することが多いから、普通は、そうであってほしい方をTHENに書くなど、処理系によって違う。

2020-03-15

anond:20200315122517

シェフがひとりに

エイターがいて

さらあらいがいる

さらあらいにレベル聞かれてもさいしょのうちは、楽な仕事ばっかで修行からどのレベルでもいい

上の方になれたらPython書くにも機械語知識がいるようになるその上は知らん

2020-01-01

多値返しに関する一部エンジニア見解ヤバない?

https://b.hatena.ne.jp/entry/s/jp.quora.com/hotondo-no-puroguramingu-gengo-de-kansuu-no-return-ga-1-tsu-shika-deki-nai-no-ha-naze-desu-ka を呼んだんだけど、回答・ブコメともにとんでもないことを書いている人がたくさんいてびっくりした。本質的に多値返しは直積型の返しと同じで、これはタプル・構造体と本質的に同じ、というのは多くの人が指摘している通りではあるのだが…。

配列返し

動的型付け言語に慣れてらっしゃる方が多いのかもしれないけれど、配列というのは「同じ型をまとめた型」であるべき。動的型でいろいろ突っ込める配列本質的には「直和型の配列」と思った方がいいよね。多値返しという意味では(記憶領域の面で)余分なコストがかかりうる直和型を選択する意味はないですよね?回答でもなんか配列返しに言及している某有名人がいたが、あれれ?という感じ。

もっとも、immutableな配列をtupleと呼ぶPythonという言語があるせいで引っ張られている感は否めないけども、配列とは本質的に異なる型が存在しているのは明らかですよね?配列構造体って違うよね…?(言葉定義問題と言われそうだけれど、型システムの分野での言葉定義存在しているわけで、反論になっているとは思えない。『俺は明日からこのわんわんなく動物ネコと呼ぶから』と言っているようなもんでは。)

CPUアーキテクチャについて

かにナイーブにはレジスタに入れて返すのが素直だというのは同意するけど、でもそれ構造体と一緒だよね?昔のCではこれはできなかったというのは知らなかったので勉強にはなりました(未検証だけど)。

あと構造体返しの関数がどう機械語実装されているのか知らなさそうな人がいるのにはちょっとびっくり。それでなんでレジスタがどうとか言えちゃうのかしら。構造体の値を返す関数ならばポインタは返さないですよ。そのポインタはどこを指してるんですか。実装しづらいとか何とか言ってる人たち、ちゃんアセンブラ読んだことあるんですか…?本質的に何の困難もないです(ちなみに少なくともlinux amd64ではスタック領域を確保してそのポインタ関数引数の一部として渡します。まあヒープに置く場合でも余計なmoveが出ないようにしたいとかあるかもだけど、そんなでかいデータ普通無名構造体では扱わないでしょう)。

多値は使いづらい

かに、返り値の型が(A, A)のような場合ドキュメント読まないとわからなくなってしまうので可読性が下がるし構造体を使うべしというのは(ほぼすべての場合において)同意(多値は使いづらいというのは構造体は使いづらいという意味ではないですよね?)。でもさ、某有名人goで挙げているけれど多値って普通(A, B)みたいに違う型の値を返したくなることの方が多くないですか。この場合どっちがどっちかは自明だよね?ただの無名構造体だよ。多値返しは設計が甘いとかわけわからんことを言っている人もいたけれど、なんかこちらが不安になってきた。

http://bleis-tift.hatenablog.com/entry/multiple-values

…本当に意味不明で驚いた。id:megumin1氏が言っているように、tupleのパック・アンパックに余分なコストをかける必要はない(まあアドレス渡しになるから複数本のレジスタで返すのと比べたら余分なmovが入りうるという話はあるけど、この人が多値返しというので何を想定しているかからないので何とも。)。何遍呼んでも多値返しとtuple返しの違いが判らなかった。おそらく前述のようにimmutableなlistのことをtupleと思っているのかな?と予想はするが…。

はてな界隈ってエンジニア的な印象があったんだけど、ここら辺の話ってそんななじみないのかな…?てか某有名人氏も型システムとかあんまりご存じないのかな…?むしろこれは増田無知なんだろうか…?

2019-11-23

Julia (プログラミング言語)なぜ僕らはJuliaを作ったか

それでも、pythonは非明示的な動的型付き言語であり、記述時のチェックも少ないので、文法さえ合っていれば、結構自由に書ける。クラスインスタンスや、数値などではなく、(その場の変数値込みの)関数なんかもただのオブジェクトに見えるので、どんどん関数引数変数に入れられる。戻り値しかり。演算子オーバーロードなどもできて、直感的な記述可能。ということで、使う側の直感に合うような運用可能になっているがゆえに、受け入れられているのだろう。

しかし、それは運用単体テストに支えられているものであって、ひとたびその集中力が途切れたりうっかり見落としていたりすると、それがどこにあるのか、というのは、それなりにレアなケースだと、発覚するのがだいぶ先になって、その解析、分析も大変になるという恐怖は常に隣り合わせである

もしかして、そういう状況がいやだったから、掲題のコンピュータ言語を開発しようとしたのか。

http://marui.hatenablog.com/entry/20120221/1329823079

ここに、原作者ブログの日本語意訳がのっていた。もう6年も前になっている。

(原文:Why We Created Julia)

2012年2月14日(火) | Viral Shah, Jeff Bezanson, Stefan Karpinski, Alan Edelman

端的に言えば、僕らは欲張りだからだ。

僕らはMatlabのパワーユーザーだ。LispハッカーPython使いやRuby使いもPythonハッカーもいる。髭が生える前からMathematicaを使っていたのもいるし、未だに髭が生えてない仲間もいる。常識的な人にはオススメしないくらい多くのグラフR言語で描いてきた。そしてC言語は僕らのユートピアだ。

いま挙げた言語は大好きだ。どれも素晴らしいしパワフルだけど、科学計算機械学習データマイニング、大規模な線形代数演算分散・並行コンピューティング、といった僕らがやるようなものにはどれも一長一短で、仕事完璧にはまる機能もあれば何とも使い物にならないものもある。どれもトレードオフなんだ。

僕らは欲張りだ。これじゃ十分じゃない。

僕らが欲しい言語はこんな感じだ。まず、ゆるいライセンスオープンソースで、Cの速度とRubyの動的さが欲しい。Lispのような真のマクロが使える同図象性のある言語で、Matlabのように分かりやす数学記述をしたい。Pythonのように汎用的に使いたいし、Rの統計処理Perl文字列処理、Matlab線形代数計算も要る。シェルのように簡単にいくつかのパーツをつなぎ合わせたい。チョー簡単に習えて、超上級ハッカーも満足する言語インタラクティブに使えて、かつコンパイルできる言語が欲しい。

(そういえば、C言語の実行速度が必要だってのは言ったっけ?)

こんなにもワガママを言った上だけど、Hadoopみたいな大規模分散コンピューティングもやりたい。もちろん、JavaXMLで何キロバイト常套句を書きたくないし、数千台のマシン分散した何ギガバイトものログファイルを読んでデバッグするなんて論外だ。幾層にも重なった複雑さを押しつけられるようなことなく、純粋なパワーが欲しい。単純なスカラーループを書いたら、一台のCPUレジスターだけをブン回す機械語コードが生成されて欲しい。A*Bと書くだけで千の計算をそれぞれ千のマシン分散して実行して、巨大な行列の積をポンと計算してもらいたい。

だって必要ないなら指定したくない。もしポリモーフィック関数必要な時には、ジェネリックプログラミングを使ってアルゴリズムを一度だけ書いて、あとは全ての型に使いたい。引数の型とかから自動的メソッド選択してくれる多重ディスパッチがあって、共通機能がまったく違った型にも提供できるようにして欲しい。これだけのパワーがありながらも、言語としてシンプルクリーンものがいい。

これって、多くを望みすぎてるとは思わないよね?

僕らがごまかしようのないほど欲張りなのは分かってるけど、それでもぜんぶ欲しいんだ。二年半ほど前、この欲にまみれた言語を作り始めた。まだ完成してないけど、そろそろ1.0のリリースの時期だ。僕らが作った言語名前はJulia。すでに僕らの無礼要求に9割方は応えてくれてるけど、ちゃんとした形になるためには僕ら以外の要求も聞かないといけない。だから、君がもし欲張りで理不尽わがままプログラマなら、ちょいとこいつを試してもらいたいんだ。

我儘な開発者を満足させるための原語、というのはなんとも意欲的な目標だろう。

そして、その我儘を言う開発者が、今はやりの機械学習でも使いやすいだろう mathematica や R の行列演算統計計算世界を使いまくった連中が入っているところが今風の要求となっているようにも思う。

ちょろっと名前を聞いただけなので、これからなのだが、開発者としては、品質生産の加速がpython の一歩先を行くような世界であればそれは大歓迎だろう。

julia 何て名前を付けているから、検索すると AV女優の方が目立って出てきてしまうのである

https://qiita.com/sadayuki-matsuno/items/fc5e9ec3894a4b7bfbfb

ここからプログラムコードの断片をもってこようかとおもったが、

そのままコピーしても、今一歩な感じ。

ほらほら、

数式が数学で習った感じで書けるよね。

行列もほいほいかけるよね。

とかそういう小技が書かれているような気がした。

このあたりは、python限界を超えているので、見栄えはよいかもしれない。

2019-08-07

anond:20190807190647

そうだそうだー8801mkIIに機械語で~ってそんなわけあるか~バシィ

2019-03-23

お前らプログラミングだけはやっておけ

もうこれからはどの分野にもITは絡んできて逃げ場はないぞ。

今年から農業にもドローンが普及するらしいし

介護にもロボットが使われてるし、交通自動運転が進むが、自動化=プログラミングからな。

しかしたら農家でも介護でもプログラミングできないといけないかもしれない。

もちろん、ドローンプログラミングなんてWeb開発とかと違ってバリバリC言語とか機械語だろう。

機械の基礎からちゃんとやっておけ。

別に学校かいかなくても本を買えば理解できるから

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-13

"なんとか関数"(組み込み関数)の根本的な仕組みを教えてください

https://teratail.com/questions/163664

レベル1:組み込み関数ソースOSAPIをどうやって呼び出しているかの仕組み

レベル2:OSは実際のPCにどのようにそれを処理させているかの仕組み

レベル3:機械語(≒アセンブラ言語)の仕組み

レベル4:AND回路などをどう組み合わせて計算ができるCPUになるのかの仕組み

レベル5:AND回路などはどういう電子部品の組み合わせで出来ているの仕組み

レベル6:電子部品はどういう物質でその電子特性を得ているのかの仕組み

レベル7:なぜその物質電子回路を作れるような特性を持っているのかの仕組み

レベル8:この宇宙物理定数はなぜ今のようになっているの仕組み

レベル9:なぜ何もないのではなく何かがあるのかの仕組み

 

どこまで説明すれば「根本的」なんだ?

たぶん自分知識の偏りのせいで、説明すべき階層スキップされている箇所あるから追加を頼む。

2018-10-15

anond:20181015174135

AI日本語を組み立てられるようにならないと、自動マニュアル作っても良くわからない機械語が並んで

日本語化して」って仕事が振られるだけになる。

2018-09-13

仕事では完璧にしようとか考えず動く程度に適当に作ればいい

面倒な上司がいろいろ文句をつけてくる

意味不明ものが多いし何かとケチつけないと気がすまない性格から面倒なことを一々と

直接のユーザから意見なら多少は変でもそのユーザ必要としてるなら納得できるし、イライラすることもない

依頼があったわけでもないのに謎の基準文句をつけてくる

社内でそんなことこだわったところで実際には気にされないことが多いのにだ

まだデザイナーデザインについてこうした方がUXいいねみたいなことをいうならわかる

専門の人の意見だし

そうでもないのに何かと文句をつけてくる

増田なのでwebで例をだそう

CSS すらまともに使いこなせずマージンもパディングもないような酷い作りのものしか作らないのにソッチのほうが良いという

色は red, green, yellow と標準のペイントのデフォルトカラーかよというような色を指定してくる

#fcfcfc や #0a0a0a なんて使おうものなら白と黒しろ

max-width を指定せずに画面の端から端まであるようなものがいいという

そのわりにグラデーション無意味につけたがる

一部例じゃなく本音が出たがまぁいいか

今の時代アプリサービスを全く見てないのか?としか言えないようなセンス

自社サービスなんて手を出したらこれは酷いと話題になりそうなもの

見た目にあまりこだわれない社内用サービスしか作ってないからと言って、その他サービスをみてる人からすれば明らかに

残念なしか時代遅れなものが良いと思ってる

しかデザインに限ったことではないがまだ序盤の時点で言っておけばいいものの完成後にいまから変えるなんて難しいのが

わかりきってるようなときになってからああしろこうしろ言い出す

先に書いたようにユーザ要望ならまだ仕方ないと言えるがなぜこんな無意味なことに付き合わなければならないのか


わりと自分完璧主義なところもあるので作るならちゃんと作ろうとしてるんだが

こういうのを相手にしないといけないせいで結局グチャグチャになってくる

色のバランスレイアウトを考えたところで一瞬でそのバランス無意味になるようなことになる

プログラムだって全然関係ないものを無理やり入れ込まないといけないようなことになることも多い

疎結合だとかグローバルをつかわないとかそういう作りやすくするためのことをしていても

それが維持できないような無茶で無意味な指示が出る

根本的に変えたり対処するためのものを作るとかすればなんとかできなくはない

しかしそんな時間はないので結局ひどい作りになるしかない

過去プロジェクトでもそういうのが多いか自分で作るのくらいは扱いやすくしたいと考えていたのだが

過去のもこういう経緯で酷いものになっていったのかなと思う


過去に言われたものだと速度を優先だとか言って自分で作ったものよりは遅くするなと言う

そしてそのコードは本人でしか読めないような酷いものだった

しかしながら関数は使わずコピペだわforeachなどは使わずループ変数を使って地道にやるなどメンテナンス

できる気がしないが速度においては早いと言えるもの

当たり前のようにグローバル変数がいっぱいあるしライブラリ使用箇所はカスタマイズするための仕組みがあるのに

ライブラリ自体をどんどん書き換えていく

便利で読みやすいような書き方だと速度的にはそれに劣る

だがわざわざそんな扱いづらいし見づらいコードは書きたくない

そんなに速度にこだわるなら勝手に一人で機械語でも書いてろよって思う

しかし速度に加えてメンテやすしろという

どちらか取捨選択すべきものなのに両方みたせとか無理なことを言う

ちなみに便利なライブラリは基本無駄が多い遅いものからライブラリ頼みのベンダはクソだとか

能力がないだとか言っていた


そういえば昔先輩社員仕事したときには変に凝ったものとか必要以上に作り込んだりはしないほうがいいとか

言っていてそれなりに手抜きでさらっと一応は動くようなものを作っていた

私はそういうやり方が嫌いだったのだが今ではこういう環境に長くいた結果仕事のものにこだわって作り込んでも無駄

ということがわかってそうなったのかなと感じた

自分でもサビ残休日無償出勤してまでいいものにしようと努力はしていたが謎の指摘に合わせていると

愛着もなくなってきたし後は適当に済ませてしまおうかなという気持ち

ちゃんとした自分なりの完璧ものを作ろうとするなら仕事ではなく趣味で作ってるツールライブラリ

やればいいかと思う


作ったもの次第でユーザが集まる自社のウェブサービスパッケージ商品ゲームなどは作り込む方が

良いと思うが先に値段が決まって受注して作るようなものだと最低限の要望さえ満たしていればあとは

どうでもいい

しろ不便な方が改修依頼が来て稼げる

さらには綺麗で完璧な作りで大抵の想定できる改修は1日とかからないようなものに仕上げるよりも

どこ変えればいいかや影響範囲すらわからいくらいモノのほうが実作業時間が多いのでそれだけ請求できる

先に作り込むメリットがない


ストレスが溜まってきたので発散がてら書いてみたけど疲れてるのかわりと分かりづらい文章になった

けどまぁいいか

そろそろ転職でもしたいなーと考え始めた










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言語が消えることを祈っています.

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