はてなキーワード: コンパイルとは
まつほろひとゆきが作った日本産のコンピューター言語。パールというコンピューター言語を元に作られていてWebサービスを作るためのフレームワークを搭載している。代表的なWebフレームワークはtDiary
C
デニス立地さんがNTTで開発した言語。マルチクスというOSを作成するために作られた。わざと複雑な言語仕様にすることで自分の役職ポジションを守ろうとしていたが、思った以上に世の中の人間はこの言語を使いこなしてしまい、超有名な言語になってしまった。スーファミのゲーム制作にさえ使えなほどの超高級言語
おまじないと呼ばれるプリプロセッサでの書き換えが必要な謎の文字列を埋め込む必要があったり、言語仕様に曖昧な部分も多く、同じソースなのに実行環境によって動きが異なる、欠陥言語である。(32bit向けプログラムが64bit環境で動作しないなど)
オブジェクト指向言語。すべてのオブジェクト指向言語はこいつから始まった。
主にWindows上で動作するゲームを作るための言語。今ではUnityとか色々なゲーム開発の環境とかあるが、結局はパフォーマンスとか考えたらC++使うことになる。
代表作はOpenGL、DirectX、Window10、LibreOffice など
JavaScriptから派生した言語。読み方は(ジャワ。ジャワ島のジャワ。)。もともとはOracleの創始者の博士が趣味で作成して、現在のOracleデータベースの基礎となるテクノロジー。アプレットという実行するための専用プログラムをインストールしないと、Javaで作ったプログラム(.classファイル)は動作しない。マークはコーヒーだと思われがちだが、紅茶(ジャワティー)である。
アンドロイドOSを作成するためにも使われており、アンドロイドのOSカーネルはJavaで制御されている。そのため定期的にGCが走るので、アンドロイド端末は定期的に動作を停止することがある(いわゆるプチフリーズ)。
対策するためにはGC戦略を見直してヒープ領域のサイズやメモリに乗せるキャッシュのサイズなどの調整が必要であるが、げんざいのGoogleにはこれらを調整する人員はすでにいない。
このように業務用データベースから携帯電話まで幅広く使われているので、Javaの技術があっても市場価値は殆どないと言われている。(みんな使えて当たり前)
晩年政界への進出を目論んでいた松下幸之助が、未来社会を見据えて開発した言語。主にWebアプリケーションを作成するために使われている。PはパナソニックのP。を略してPHP
かんたんにシェルコマンドを実行できたり、クエリストリングに代入した値を直接グローバルで評価できたりするなど、洗練されていてとても便利な言語である。
HTMLやメール本文の中にもPHPの処理を書き込むことができる。
この世のすべてのサーバーに実行環境が存在するので、PHPのコードさえあれば、コンパイルも不要でどのような環境でも動作する。
C言語の100倍生産性が高く、Wikipedia、Facebook、Slackなどの超一流のサイトやサービスで大量のアクセスを捌いている。
WardPressと呼ばれるフレームワーク(全世界のWebサイトの3分の1以上はWardPressで作成されている)を作成している言語であり、この言語なくして今のWebは存在していない。
データベースとも親和性がある、などと言われることもあるが特に根拠はない。
韓国人棋士を倒したAIに特化したプログラム言語。Googleが開発しており、もともとはDartという名前だったが、汚いという理由でなまえがGoに変わった。そのため現在はDartという言語は存在していない。
AIに特化しているというだけあり、低レイヤむけの実行ファイルを作成する必要があるため、コンパイルが必要ではあるが、だいたいどの環境向けのバイナリも生成することができる。
デフォルトでディープラーニングを使うための機能を持っていたり、プログラムを並列実行するための機能が備わっているので、コア数の多い環境で高速に動くプログラムを作りやすい。
JavaScript
Javaの元になったプロトタイプベースのオブジェクト指向言語。読み方はジャワエスクリプト。W3Mというブラウザの上でインタラクティブにWebサイトを動かすために作成された言語。もともとブラウザの上で動くための言語だったが、後にSafariブラウザに搭載されていたV6エンジンというJavaScript言語の実行エンジンを分離してNPMというJavaScriptを直接実行できる環境となった。
それ以降JavaScriptはブラウザ以外にVRゴーグルの中などで動くようになった。
並列プログラミングが不可能な作りのため、コールバックを多用して、スパゲッティーコードを量産することができる。
NPMを使う奴らは、JSがブラウザ環境で使われる言語であることを全然考えてないため、WebpackとかBabelといった謎の開発環境をシコシコ積み上げている。いつかその塔は爆発し崩れ去ることになるであろう。
Javaと同じくJavaScriptから派生した言語。Javaとは互換性は無いが、JavaScriptの上位互換があるため、JavaScriptのコードをそのまま実行することができる。
$マークから始まる命令のみで構成されているとても縁起のいいプログラミング言語。おもにパララックスなどを実現するために利用されていて、WardPressなどのドライバとしても使われている。
JavaScriptの改良版であり、現在JavaScriptと言われているプログラム言語の99%はjQueryのことである。そのため現在慣習的にJavaScriptと呼ばれているもののほぼ全てはjQueryである。
jQueryを覚えればJavaScriptは覚えなくても良い。などと言われるが、正確にはjQueryを覚えた頃にはJavaScriptも覚えている。というのが正確である。
JavaやjQueryなどと同じくJavaScriptから派生した言語。Microsoftが開発した関数型言語。開発時はF#(エフシャープ)というコードネームだった。
型に特化した言語であり、Microsoft製のVSCodeというIDE環境でしか開発、実行が出来ない。(ただしMacやLinux上でも動作可能)
TypeScriptを動かすにはサーバーにVSCodeもインストールする必要があり、言語やIDEのバージョンアップも多いため、メンテナスンスが困難である。
前進となるObjectiv-Cという言語が、気持ち悪い構文であったため開発者が不足しており、このままではOSのメンテナンスもままならない、という理由で最初のバージョンがわずか14日間で作られた言語。
ソートアルゴリズムを例にすると N=1,Bigが典型的な特殊解となる (ように アルゴリズムには特殊解となる組み合わせがある)
N=1のときはN*Nが1となることで2*Nよりもコストが少なくなる。
N=Big BigDataなどで有名だがメモリがSSDに落ちるなどN次記憶装置の問題や分散処理の問題に式がシフトしていく
COM DLL HELLを解決するDLL検索とAPI検索の規格を統合したDLL呼び出しの規格(これを抑えておくことが重要)
DirectXや.NETもCOMをベースにしている部分が多いためCOMを抑えておけばほぼ使える。
DCOMなどは別解
Androidは古いバージョンが手に入りにくくなってきているので保存を忘れないこと。テスト環境にあるAndroidを誤ってVersionUPしないように
コンパイルチェックまでしたったで
C++で11行のコード書いたよ!ブラウザ上でプログラミング・実行できるよ! コードは https://paiza.io/projects/XDXoXTklarKuOTbWdzo5Kw?locale=en-us #paizaIO via @paizaIO_jp
// Your code here!
printf(" ");
}
printf("***\n")
;}
各種書名検証、連鎖証明、まんがいち秘密鍵が漏洩した場合の対処
さまざまなコンパイルフラグ DEFINE、アセンブラレベルでの柔軟性、ヒープ対処
レアケースだし、環境に依存するから特定のメーカー向け意外にはOFFになっている
引継ぎ先のチーム
問題出るも、ほとんど、自分たちのチームの時に出ていてリリースに含めなかったレアケースばかり
機能を有効にするためのコンパイルオプションを入れてもらったり程度で対処可能だった模様。
会社に与えた損害はなし、ひきついだものが稼いでくれれば利益が大きい ま とりぶんないだろうけど それもまた人生 いいなぁ
★
ソートがまさにそうだけど、バブルソートの特異領域N=1,Bigがそうだけど(例示)
ソートアルゴリズムも1つじゃなくて、テキストでもあれだけ教えている。
現場ではどうするか?といえば
採択されたものがソースコードに書かれる。それいがいはブランチに合ったりする。
これらがあるので、いわゆるバイナリやリバースからはソースコードの複雑さは推し量れないし
こういう膨大なテストがあったりするので(俺の場合は少ないが)
リバースだけから学ぼうとするな、ソースコードとアセンブリ結果から学べ
というのはそういうこと
いくつかいったけど、コンパイラの最適化を期待したりしてソースを書いたりするので
そういう書き回しをまなんでいくことも重要
ソースだけになw