このサイトでうまくまとまってます。
public int add(int a, int b) {
int c;
c = a + b;
return c;
}
add(a, b) {
let c;
c = a + b;
return c;
}
こっから細かい話になるけど。
静的型付けー>CPUで可能な演算に縛られる
整数値だとビット長。2,8,16,32,64
浮動少数だと16,32,64
計算はメモリーから演算器(論理回路)に入れて行う。
演算器の数が多いほうが効率よく処理できる。コンパイラの出来次第。
文字列の認識は演算部には無い。
クロックサイクルを守るために演算器同士か演算器とメモリ間の演算や転送しか出来ない。文字列処理はコンパイラー言語がでっち上げた論理回路(ソフトウエア)。
1バイト、2バイト、4バイトの組み合わせで管理。
今はこんな窮屈なメモリ管理はしてないでしょうが野放図にやるとこうなる。
メモリーアクセスはキャッシュで高速化。今は3段階が普通。
CISCであるX86でもメモリーコピー命令はサポートされてない。
世の中にはメモリーコピーを実装したCPUアーキテクチャがあります。
これだとメモリーコピーが多い現代のアプリに最適だと思います。
でもこれを個人レベルのCPU価格で実現するのは不可能。
なのでRISCにしてCPUのクロックを上げて、メモリーのクロックを上げて、ぶん回すことで高速化してる。
これから深堀りしていくと、
動的型付けと静的型付けは機械語とコンパイラー言語の関係性に似てます。
CPUが本来持ってる演算機能に依存してるのが静的型付けのコンパイラー言語。
それを使いやすいように拡張したのが動的型付けのスクリプト言語。
スクリプト言語になるとCPUの演算器の事なんて全く考えません。
自由気ままに型を定義する事が出来るのです。言わば異世界。
コンパイラー言語の型はこんな感じ。
pythonで使える型。
私が作ってるアプリはコードのほとんどが文字列操作とメモリーコピー。
それには相性が悪いX86のCPUを使ってるわけです。
命令を単純化し高速動作させることで安くて高性能なCPUを作る。
その試みが今のデジタル社会を支えてますが無理がある。
動画や静止画、大量の文書を扱うこれからの需要を考えると力不足です。
これからはAIの大義名分でCPUやらNPUやらGPUが進化していくんでしょう。
いろんな演算器を作ってもメモリー転送がネックになっては高速化は望めません。
これからインテルもAMDもDRAM内蔵のアップル路線に踏み込んでいく事になるでしょうね。CPU+DRAM+グラボのPC三点セットがCPUに集約される。
見て理解して話せるコンピュータ。まずは認識と言語翻訳でしょうね。
AIはいくら金かけても終わりが無い。底なし沼に向かって大変革が始まる。
AI時代がは動的型付けでさくっと処理したいですね。
それを新しいハードウエアでアシストして高速で安価に作る。
AIやるなら古い柵のコンパイラー言語使ってはだめでしょう。
ハードもソフトも進化して新しいパラダイムを作っていく必要があるのです。
今は企業規模の開発になると静的型付け言語を使いたくなるね。
現場監督の思いは分かります。
でも将来はpythonベースのコンピュータが出来てくる思う。
パソコンの中で独自に進化していくなんて素敵。
pythonは自己拡張できる特徴があるので変化し続けるAIには向いてる。
陳腐なハードウエアに縛られるプログラム開発は牢獄である。
動的型付けで自由自在。これは楽しい。