アフィリエイト広告を利用しています

2025年01月13日

初心者必見:なぜC言語を書かないといけないのか?解説します(参考)


》全サービス一覧《


初心者必見:なぜC言語を書かないといけないのか?解説します(参考)

情報・話題・検索・動画・画像・履歴
<真相探求>


『参考動画』


初心者必見:なぜC言語を書かないといけないのか?解説します(参考)
2025/01/08


良かったら!評価お願いします
[詳細・外部リンク]

00:00 はじめに
01:16 C/C++とは
04:08 プログラムの成り立ち(5層まで)
15:50 プログラムの成り立ち(6層、7層)
25:04 コンパイラ層のコードを書かないといけない理由


【類似・参考・関連・検索】

【検索一覧集(中)】

》duckduck検索《

》》Bing検索《《

》》google検索《《


『適当機械文字起こし』

※機械なので文字起こしが間違っていることがあります。それから検閲によりワザとNGキーワードを避けるために他の表現や文字が使用されてる場合もあります。

初心者必見:なぜC言語を書かないといけないのか?解説します(参考)

文字起こし

動画内を検索
はじめに
0:00
はいこんにちはえ今回の動画ではCC+ plusとはという話をしようと思ってい
0:05
ます具体的にはえなぜ書かないといけない のか何のために使うのかという話をしよう
0:12
と思っていますなのでえっとこの動画の 対象者はですねえCC+plusを触り
0:17
始めの初心者の人またはえなぜC言語が今 も使われているのかというのを知らない人
0:24
ですねあと3つ目にですね初めて プログラミングをやってみたい人でC言語
0:31
が気になってる人ですねえそんな人いるの かというのもあるんですけど結構今でも
0:36
ですね大学でC言語教えてるケース多いん じゃないかなと思ってですねあのC言語 使うのをやめましょうというのが僕の主張
0:44
なんですよねでまず初めての人はですねえ Pythonからやりましょうあのもう 本当に初めてでC触るのはやめた方がいい
0:51
ですねでその理由をこの動画で説明しよう というのが趣旨になりますこの動画結構長
0:58
丁場になると思うんですけど この動画見ればですねそもそもえ プログラムとは何かなぜえあなたがえ
1:05
プログラムを書いているのかそれがどう やって動いているのかというのを一通り 理解することができます初心者の人ほど
1:12
ですねえこの動画見て欲しいと思っており ますでまずC言語とはということで基本 情報なんですけどえプログラミング言語
C/C++とは
1:20
ですねえ1972年にアメリカのデニス氏 とブライアン氏が開発したということで
1:28
だいぶ古い言語ですよよねで特徴はですね 手続き型のプログラミング言語で構造化の
1:35
プログラミングに適している プラットフォーム依存の言語使用がないの で移植性が高いとで実行速度が早いとか
1:42
リソースが少なくて済むとかそういったえ 特徴がありますでえっとC+plus略し
1:48
てCプラという風に言うこともあります けどえこれもですねだいぶ古いですよね
1:54
1番最初は1979年のようですけども 最初の商用リリースはえ1985年という
2:01
ことですねでCプラはですねえC言語を 拡張した言語になってますでC言語では
2:08
できない高度な処理を実現することが できるという言語で大まかにえCと一緒
2:13
ですよねなのでえっとこの2つを一緒にし てえこの動画では話を進めていきますで
2:18
ですねえっと本題というか先に結論お伝え しますえCCプラをなぜ書かないといけ
2:24
ないのかえ何のために使うのかという ところでえ答えはですね現状を自動化でき
2:30
ないからということになりますもちろん これはあくまでも僕の見解なんで他にも
2:35
ですねえ専門家の皆さんいろんなご意見を 持ちたと思いますがで自動化できない理由 なんですけどそれはえメモリ消費を少なく
2:43
計算時間を短くしたい要求を自動化すると 満たせないからなんですねでもちろんです
2:51
ねえケースバイケースなんで満たせる場合 もありますで満たせる場合はえ実際えそう
2:57
いうケースではC言語を書いていません 例えば最初にえ僕はPythonをお勧め
3:03
すると言いましたけどPythonでやり たいことが全部できるのであればえそれで
3:09
オッケーでえC言語わざわざ書く必要は ないんですねそれはえPythonで メモリ消費を少なく計算時間を短くした
3:16
要求を満たしているからなんですよでこれ が満たせない領域っていうのはマイコン ですよねこのチャンネルのメインテーマと
3:23
して存在してるマイコン実装というところ ですねえその領域でこの件を満たすことが
3:30
できないのでマイコンではえC言語を書 ざるを得ないということなんですね補足で
3:36
書いていますがソフトウェアの領域で ハードウェア操作を抽象化するCPUの
3:41
メモリ管理処理の最適化を行うという目的 もありますこれをしたいのでえC言語を
3:47
使うと理由にもなっていますでは続けて ですねえプログラムの成り立ちという話を
3:53
していきたいと思います皆さんが動かして いるプログラムですねどうやって動いて いるのかというところをですね理解してい
4:00
ないと僕の言いたいことが伝わりませんの でえそこをですね保管していこうと思って
4:06
いますただ本気で全部説明していると何十 時間もかかりますんでだいぶ走りますが
プログラムの成り立ち(5層まで)
4:11
まずですねえOSI3勝モデルというもの がありますこれ何かと言うとプログラムと
4:17
はちょちょっと違うんですけどこういう風 にレイヤー分けするとネットワークの分野
4:23
で設計がやりやすくなりますよというそう いう話なんですねで下からえ物理的実際の
4:30
物理的なシステムですねで上に行くにすれ てどんどん宇宙症化していきますで1番上
4:37
はですねもう通信のことなて考えなくても 良いアプリケーション層を置いています
4:43
こういう風にえレイヤー分けしていってえ 上の方により抽象的な分野を持っていくと
4:50
設計しやすくなるということでこういう 分け方をしますでこのモデルって非常に 優秀でしてこういう風にですねモデルを
4:57
分けるとこういうモデルの分け方って いろんな応用ができるんですよこのえ通信
5:04
の分野のOSI3勝モデルをですね今回は プログラムの領域に持ってこようと思い
5:10
ましたというわけで僕がですねこれ オリジナルなんですけど僕のオリジナルで こんなえレイヤー分けをえ考えています
5:18
まず1番下は物理層これ物理的なシステム ですねプログラムではえトランジスタとか
5:24
大王そういったものになりますいわゆる 反動体ですで2番目がですねロン2回路と
5:29
かオアとか全加算機とかそういったものを 置いていますこれらが実際に計算を行って
5:36
いるわけですね実際の計算回路を 組み合わせてプロセッサーというものを 作っていてでそのプロセッサーを
5:43
アセンブラー機械後が動かしていますでえ その上にあるコンパイラ層というところで
5:50
CCプラが出てきますねえつまり何が言い たかったかていうとCCプラはえこの
5:55
レイヤーの言語だとこの関係性ですねこ この全7層におけるこの関係性を概ね理解
6:04
しておけばなぜC言語がなぜあんな感じな のかなぜあんなめどくさいのかというのが
6:10
分かると思いますあとちょっと補足なん ですけどこの7つのレイヤーですねこのえ
6:16
第3層プロセッサー層と第4層 アセンブラー層の間に切れ目があります
6:23
こっから下がえハードウェアですねこっ から上がソフトウェアになりますでですね もう1つ境い目がでこの第5層と第6層
6:31
ですねこの間の境い目がハードウェア依存 のあるプログラムなのかハードウェア依存
6:39
のないプログラムなのかという違いがあり ますこれも意識しておくと良いと思います
6:45
ではまず順番に説明していきたいと思い ますまずは物理層ですね1番下のある条件
6:51
によって電子を通す物質のことを反動体と 呼んでいまして反動体を使うとオンオフ
6:58
状態を電気エネルギーで制御したり維持し たりできるんですねそれがまず出発線とし
7:04
てありますいう話ですで参考のページ載せ てるんですけどえこの反動体ですねこれの
7:10
仕組み解説してると時間がいくらあっても 足んないんであのとりあえず読んどいて くださいねまこんな感じでま電圧をかける
7:18
とま電気が流れたり流れなかったりする わけですよでオンオフの状態を作ることが
7:24
できるようになったんですねこのオンオフ 状態というものがえ全ての始まりですその
7:29
状態を制御することでプログラムが 成り立っているという風に思ってください で次論理回路層ですここの技術領域として
7:37
は反動体を使った論理演算を実現すること でえ四則演算条件分岐を実現するという
7:44
ことをしてますで参考としてですねこちら のページを貼ってるんですけど例えばここ
7:50
ではえ加算機ですね加算機を作るという 説明がありますで加算機を作るにはですね
7:57
こういう風にアド解除とかですねXとか ですねそういった論理演算の回路を
8:02
組み合わせると作れるわけですねすいませ ん論理演算の説明してなかったんですけど ま見ておいてくださいあのアとかですね
8:09
オアとかノトとかそういう演算を先ほどの 反動体を使えばできるわけですねでそれを
8:16
組み合わせていろんな演算を作ることが できるようになりましたというのがここの 技術領域ですで次の第3層がプロセッサー
8:24
層ということで入力出力制御演算記憶置を
8:29
組み合わせてコンピューターというものを 実現していますで参考のページとして こちらのページ貼ってるんですけども
8:35
こちらのページもですね結構参考になるの で是非ですね読んでおいて欲しいと思い ますあの長いんで全部は紹介しませんけど
8:43
例えばこれですねこういう風に5つの装置 がありますけどこういう装置というものを
8:50
組み合わせて一連の動作を実現できるよう にしてるんですねこの1個1個の装置があ
8:56
先ほど説明しました論理回路ですね論理 回路を使っていろんな動きができるように
9:03
作り込まえているわけですねあと具体的に はここですねこちらの図を見て欲しいん ですけどコンピューターというものは
9:10
CPUとRAMを持っていますでlamの 中にですね命令とかデータというものが
9:16
一通り格納されていますまずこの命令を 読み取ってでそれを情報として処理してえ
9:24
実際の演算を行いますで演算を行ったその 結果をデータとしてラムにまた置きますラ
9:31
ムっていうのはメモリですよねこれも反動 体ですよ反動体のオンオフ状態を表現する
9:37
デバイスですこの中にデータとして格納さ れてるわけです結局この層でやってる ことって割とシンプルで命令を読んで計算
9:46
して結果を外部にするあるいはラグに書く のということをやってるだけではあります
9:51
ただこの技術分野ってかなり深いんですよ で僕もあんま詳しくないんであんまやら そうに語れないんですけど例えばCPUの
9:58
ですねクロックがいくつでとかlamのが 何GBでとかえそういういろんなデータ
10:05
シートを見たことがあると思うんですけど そういう話がですねえここのレイヤーの話 ですで非常に重要ですよこの図の一連の
10:13
動きをですねさらに上のレイヤーの プログラミング言語が動かしているんです
10:18
ねなのでここのレイヤーが何をしているの かというのは理解しておくと非常に参考に
10:24
なりますえ続いてえ第4層アセンブラー層 ですねここではですですねメモリの
10:30
読み書きIOとの入出力CPU内部での 演算プログラムの流れの制御を
10:36
ソフトウェアで実現するということをして ますでその時に使うのがまアセンブラ言語
10:41
とかま機械語というものですそういう文字 情報と言いますかま最終的には機械後に
10:48
なるので機械後というのは01の1連の 数値データになりますそれがえ機械の動作
10:54
を表していますでその機械の動作っていう のはちょっとさっきの図に戻るんですけど こですよねえこの図の通りですアンブラで
11:02
えlamから情報を読むとかえCPUの 計算をするとかあそういったことを書い
11:08
てるわけですねなのでえプログラムとして はこのアセンブラが作れれば終わりですえ
11:16
これができれば全て完結するんですけど このアセンブラってですねかなり難しいん
11:22
ですよあの言語の要素としてはそんなに 多くはないんですけどここに書いてる通り
11:28
ですねメモリからCPUへデータを 読み込むとかですねえこういうのがあるん ですよねこの3術加算とかですねロンリー
11:36
加算とかですね直接その演算装置でやる 演算の中身をですねえ命令できるんですよ
11:43
でこういうのがあるのでままっすぐかけ るっちゃ書けるんですけど何か複雑な処理 を作ろうと思うとアセンブラだとだいぶ
11:50
きついんですねなのでえC言語というもの ができたんですねというわけで一気にえ
11:55
飛ばしてきたんですけど第5層コンパイラ 層に行きますえこの層の言語がCCプラに
12:02
なります結局この層ではですねやってる ことはあんまり変わらないんですねメモリ のみかIOとの入出力CPU内部での演算
12:10
プログラムの流れの制御というのをやって ますでその上でえ理解しやすく汎用性の
12:16
高い高水準言語で記述しえコンパイラを 使って機械後に変換するということをして
12:22
ますつまりアセンブラでやりたいことを より人間が書きやすいことで書けるように
12:30
した言語ですねえそれを用意してえそれを 使って書くことで難しい動かし方をでき
12:38
実現できるようにしているというわけです というわけで参考で貼ってるのがこちらの ページですねC言語と機械語の関係いう
12:46
ページですあの詳しくはこのページ読ん どいてもらいたいんですけどC言語の コードというのはただの文字列ですねで
12:55
その文字列をなんやかんや変換してええ つまりこのラムに書き込むための01
13:02
データに変換をしてるわけですこういうC 言語のコードがあった時にそれをですね
13:08
アセンブラにで書くとこういう風になる わけですねさっき説明してなかったんです けどアセンブラこう見ると結構ややこしい
13:15
ですよねこういうような書き方をしてです ねC言語に比べるとかなり記述量が増える んですよねでこのえC言語のソース
13:23
プログラムをアセンブラーそして機械後に え変換することをしてくれているのがはえ
13:29
コンパイラというアプリですねコンパイラ というのはですね無料で使えるようにして
13:35
くれているものが多いですねなので皆さん がですねえ好き勝ってダウンロードして
13:40
コンパイラーを使ってC言語のコードを 機械後に変換することができようになって ますはいというわけでダート説明しました
13:47
けどえここまでですねえ第1層から第5層 まで説明しましたけどこれら全部ですね1
13:55
個1個がめちゃくちゃ技術分野として深い 話ですここまでの話をまとめるとこのCC
14:01
プラはアセンブラのコードを分かりやすく 書けるようにした言語でえコンパイラーを
14:09
使ってえアセンブラーつまり機械語の コードを出力していますでその機械後の
14:14
コードはこのプロセッサーをどう動かすか を決めている01のコードになりますこの
14:20
01のコードがメモリーに保存されている のでそれを読み取ってプロセッサーは動き ますでそのプロセッサーの各部品の中身は
14:29
とかオアとか論理回路で構成されているの でその論理回路がガチャガチャ動いて計算
14:35
が進んでいくわけですねでその ガチャガチャ動くことができてるのはなぜ かと言と反動体というものがあって反動体
14:42
がオンオフをえガチャガチャ切り替え られる物理構造になっているからですね
14:48
よろしいですかねここまではというわけで ですねC言語で書いているプログラムの 例えば変数はですね中身は全部ビットなん
14:56
ですよねビットつまり0か1か例えば不動 小数点という数値のデータ型があります
15:03
けど例えばフロート型だったらえ32ビッ で作られていましてこの32ビットの内訳
15:10
は1番上がえプラスかマイナスかを表現し ているビットで次の8ビットが指数ですね
15:18
2の何乗かを示している指数部で残りの 仮数部が細かい数値の部分を表現してると
15:24
これらを組み合わせてえ実数のようなです ね柔軟なえ数の表現を実現しているという
15:31
わけですなのでC言語を書くにあたっては こういう変数がビットであるとかですね
15:38
プロセッサーがどう動くかとかメモリに どういうデータが置かれているかとかそう
15:44
いったことをきちんと分かった上で書か ないといけない言語なんですよでそういう
15:49
のをですね考えながら書くって大変なん ですよなぜかと言うともっと上の抽象的な
プログラムの成り立ち(6層、7層)
15:56
レイヤーのところで皆さんが実現したい何 かがあるんですよねというわけでさらに上
16:01
の層に行きたいと思います第6層 インタープリター層ですねここの層の言語
16:06
を使えばえハードウェアのことを考えなく て良いのでだいぶ楽になりますえこの層で
16:12
はですねえデータの構造流れ条件分岐状態 繊維を設計するとでこれらですねその
16:20
データがどういう構造になっているか システムがどういう講座になっているか データの流れがどうなっているか状態が
16:27
どういう風に遷移するかでこの並列って いうのはタスクが並列に動いてるかどうか
16:32
とかそういうのを表現してますけどそう いうの実際にプロセッサーがどうなって
16:38
いるかって関係ないんですよ今言ったプロ セッサーっていうのはこの第3層の プロセッサーのことですよこれがどうなっ
16:44
ているかって関係ないんですよね端的に 言えばなのでえこの第6層ではですね純粋
16:50
にソフトウェアのアルゴリズムとしてどう いう動きになれば良いのかというのを書く
16:56
だけで済むように仕組みを整えているわけ ですなのでえこのレイヤーにいるpyon
17:02
ですね例えばですね初めての人にとっては 非常に使いやすいですえなぜならこのえ5
17:08
層以下ですねハードウェアのことを何も 知らなくてもある程度書けるようになっ
17:14
てるからですでそのインタープリタ層の 言語の特徴なんですけどインタープリタ層
17:20
ですね実はあの2つに分けることができる んですねまこういうの言い出してるときり ないんですけどま例としてえ1つ上げたい
17:27
と思って今てますでインタープリタソの 上位にえpyonとかえマトラボとかが
17:33
ありますでインタープリタソの回はですね えCSとかJavaあとSIMLINK
17:39
なんかもそうですSIMリンク言語では ないんですけどモデルを作ることでえ機能
17:44
を記述できるということで一応 プログラミング言語の区に置いています このインタープリタ層解とコンパイラ層の
17:51
違いはメモリ操作ができるかメモリ操作が できないかですねでコンパイラ層では
17:56
メモリ操作ができるんですけどそれより上 ではえできませんでもう1つですねえっと
18:01
上位と会の違いでえっとコンパイルをする かしないかというのがありますコンパイル
18:07
というのはさっきも解説しましたがこのC 言語の文字列からこの機械後のコードを
18:13
生成するための自動翻訳機能ですねで コンパイルなしでやれるっていうことは
18:19
プログラミングの工程が1つ省略されると 思っていいですあとついでにもう1つ言う とえデータ型が同的に変わるかもしくは
18:29
データ型が変わらないかというものがあり ます何らかの変数を定義する時にですねま
18:34
A=1とかいう風に定義する時にですね この解の言語だとデータ型を決めて例えば
18:41
ina=1とかいう風に書かないといけ ないんですけど上の方の言語だとえデータ
18:46
型を決めなくてもA=1という風に書く ことができますでその後にそのAに対して
18:53
ですね例えば文字列を代入することも できるんですねデータ型が明らかに違う
18:58
ものを後からボンと入れることができます そういう風に柔軟にデータ型を変えること
19:03
ができるということは要するにえ抽象的と いうことなんですよまそもそもこのデータ
19:09
型ってどっから来てるかと言うとここです よねえビットから来てるんですよもちろん
19:14
インタープリタ層の言語でもその中身を 突き詰めていくとビットの列になりますよ
19:21
なのでデータ型というものはあの存在して いますデータ型を決めないとこのビットが
19:26
何を表現してるのか分からなくなります からでもそこを全部抽象化して見なくても
19:33
いいように仕組みを整えているのがこの インタープリタ層の言語なんですねだから
19:38
Pythonは落ちなんですねまちなみに もちろんインタープリターソの言語C#と
19:44
かJAVとかもえコンパイラーはついて ますでそれらの言語ではコンパイラーを
19:49
使って最終的な機械語との生成はしてます あのちなみにコンパイラの仕組みをですね
19:55
より深く知りたい人はですねあのこちらの ページとか見てもらうと分かりますま もちろんもっと勉強するとですね果てし
20:02
なく深い領域なんであのもしま興味のある 人はですね是非勉強してもらえると良いと
20:07
思いますが繰り返しになりますけどえなん でコンパイラーがあるかと言うと上の方の
20:13
レイヤーの言語を介護にするためですよね でアセンブラで書くとですね人によって
20:19
あの性能にばらつきが出すぎるんですね なぜなら複雑なシステムを書くのが難しい
20:25
からで複雑なシステムを書き出すとえ科性 がなるっていデメリットがあるので
20:30
やっぱりコンパイラーというものは必要に なってくるというわけですねちなみにです ねちょっとここに参考に載せてるんです
20:35
けどllvmというものがあってですねえ コンパイラってやってることをいろんな
20:41
言語で同じことしてるよねとそれを全部 共通してるところをまとめてえ違うところ
20:47
だけ分けよう分けて管理しようよという ような枠組がありましてまそれがlvm
20:53
ですねちょっとこれ説明しと長いんであの もし興味があればですね見てみてください
20:58
で次ですねえさっき説明はっていたこの インタープリターですねコンパイルしなく
21:04
ても良い状況を作ることができますという これどうなってんだという話なんですけど
21:09
このインタープリターというものがあると 記述したソースコードを1行ずつ変換して
21:15
命令を処理実行できますえ実行前に事前に コンパイルを行う工程を省略できるとでえ
21:21
汎用的なんでま厳格な最適化はできないん ですけどえ気軽に試せるというのが
21:26
メリットですという風にまとめてます 詳しくはですねあのこちらのページにえ Pythonのインタープリタについて
21:32
まとまっているんでえこれも是非読んで おいていただきたいんですけどあのC言語 だとですねまず全部のコードを書いてそれ
21:40
を全部コンパイラで読み取って機械後に 変換するということをしてますが インタープリターだとえフインを書いたら
21:48
その1行1行を都度読んで実行ということ ができるんですねPythonのアプリ
21:54
から見た時にこの仮想CPUというものを 使ってるんですねで1行読んでそれに該当
22:01
する何らかの控のコードをとりあえず読ん で実行するとでまた1行読んで別の機械後
22:07
を実行するというような動かし方をしてい るっていう風に考えれば良いですねなので コンパイルは最初から終わってるという風
22:15
に見るのが良いかもしれませんでその インタープリタの中身っていうのがこれ ですねこの仮想CPUというのが実際の
22:23
CPUに何をするかをま決めてくれてるん ですねなのでpyonから見てそのCPU
22:30
っていうものがどうなっているのかを知る 必要がないんですよだからさっきも言い
22:35
ましたがこのインタープリター層の言語と いうのはハードウェアのことを何も知ら なくてもいいんですね逆にこの
22:43
インタープリターの仕組みCPUを仮想化 する仕組みというのが最初からないといけ
22:49
なくってこれがまあ大変と言えば大変なの で基本的にPythonみたいな楽な言語
22:56
はパソコンで動かすのがだと思います マイコみたいにですねリソースが限られ
23:01
てるシステムだとなかなかいい感じのもの を用意してくれていないという現状があり
23:07
ますねまあるんですけどねあの Pythonでもマイクロpyonという ものもあったりしますこれがマイコン用の
23:14
pyonみたいな感じであるんですけどま 結局ですねこれもまよくできてると思うん
23:20
ですけど作り込んないんですよねあくまで pyonはハードウェアのことを何も知ら
23:25
なくても動かせる言語なのでできことがC 言語と比べると少ないんですよなので結局
23:33
このコンパイラ層の言語でカスタマイズし ないと性能が出ないということが多いです
23:39
以上がですねインタープリター層という ことで最後にですねアルゴリズム層の話を しようかなと思いますがここも飛ばし気味
23:47
でいきますけどインタープリター層の上と いうことでシステムの使用を決める
23:52
レイヤーですで基本的にえ実行できない 文章と図で表現するということことで
23:59
例えばumlとかですねsismlという ものを使ったりしますもうこのレイヤーに
24:05
来るとですねこの実装対象が コンピューターかどうかというのはもう 問わない領域になってきますこの領域で
24:11
書くのはこういう要求図とかですねC験数 図とかですねユス系数図とかえそういった
24:18
え抽象的な振る舞いとか構造をですねえ 表現するものなんですね例えばあの普通の
24:25
文章ですねま使用書ですけど使用書とか 数式とかあのそういったものでも表現して
24:31
良いと思ってますこういう風にま何を作り たいかですよね何がああって欲しいかと
24:37
いうものを表現するのがここのレイヤー ですまちなみにこのレイヤーで何をどう
24:43
作るかというのが実は設計の世界では1番 重要ですよでこれをどう実現するかという
24:50
のをどんどんレイヤーを下げて具体化して いくというのがえ開発の流れですここまで
24:56
の説明で大体分かったと思うんですけど 最後ですねもうちょっと具体的に話を進め
25:02
たいと思いますコンパイラ層のコドを書か ないといけない理由ということでま結局
コンパイラ層のコードを書かないといけない理由
25:08
ですねインタープリタソの言語つまり Pythonからえ機械語を自動生成する
25:13
のが難しいんですよでさっきも言いました けどインタープリター層の言語にはえ プロセッサー層の操作に関する情報が踏ま
25:22
れてませんなので実際に機械語として動く 段になった時に何らかの処理が自動的に
25:29
作られるわけですねでその処理が十分に いいものにならないのでえコンパイラ層の
25:36
言語でかざるを得ないという状況にあり ますでもう1回この図に戻りますがま簡単
25:42
に言えばこのアンブラソですねえこの レイヤーに変換するのにインタープリタソ
25:48
はちょっと離れすぎてるんですよね離れ すぎてるので難しい直接変換するのが
25:54
難しいという風に言えますあとちなみに ですねあのコンパイラですねCCプラの他
25:59
にラストという言語もありますC言語って 結構古い言語で色々問題を抱えてるんです
26:06
よねえそれを色々解決してくれている 新しい言語がラストという言語でえこの
26:13
言語が今後普及していくんじゃないかなと いう風に僕は思っていますでですね コンパイラ層で設計できる幅というのは
26:20
アセンブラ層で設計できる幅とほとんど 同じという風に言っていいかなと思います
26:25
なのでえ最適化を行いやすいただししえ それでもですねアセンブラコードを手書き
26:30
してさらなる最適化を行わないといけない 場合もあるようですねま僕はそんなケース
26:36
に出会ったことはないんですけどま中には ですねあのC言語じゃまだ遅いと アセンブラを書かなきゃ最適ができないと
26:44
いうようなことを言ってる人を見たことが あります結局設計の本質というのはこの
26:50
アルゴリズム層にあるんですよねここで 具体的にどういう振舞をこの世界に実現
26:57
させせたいかというのを考えるんですで それを具体的に実装していくのがこの下の
27:05
層にな行くわけですけどここをですねもし 自動化できれば自動化したいんですよ本当
27:13
はこの層だけで全部終わればですね1番楽 で早いんですなのでそれがプログラミング
27:20
の発展の方向性だと思っています今夜中的 にはですねいろんないろんなツールの発展
27:27
の流れがありますアルゴリズム層から順番 に落としていって機械後までえ自動的に
27:35
変換できるようにする動きはですねあって ですねそれが例えばマトラボシムリンクで
27:42
あるわけですねマトラボシムリンクという のはマスワクスという会社が作っている ツールなんですけどえその中にですねあの
27:49
エンベデッドコーダーというツールがあり ますこれはですねマトラボの言語やあの
27:55
SIMリンクのモデルからえC言語のを 自動的に生成することができるツールです
28:01
ねでその自動生成されたC言語のコードを まもしあればですね手書きのコードと統合
28:07
してコンパイラで機械後に変換することが できますインタープリター層から
28:12
アセンブラ層までですね一気にえ自動化 することができることになってますことに
28:18
なってるっていうのはですねま完璧では ないからなんですねあのマザボシリンクは 結構いろんな業界で使えていてえ量産開発
28:26
でも使えていますでえその理由はですねま 一言で言えばえ十分に良いえ
28:32
インタープリター層からえ機械後を自動 生成するワークフローが実現できるのでは
28:38
ないかと思われているからですねただ今ん ところ十分に良いものはできないですね
28:44
残念ながらでそのお手当ですね量産開発で 最終的なえ成果物を作るためのお手当がえ
28:52
ちょっと必要になりますあと例えばえCI がありますよね最近ですとで生成AIは
28:59
ですねめちゃくちゃ期待されているわけ ですね皆さんもあの分かると思うんです けどえなぜかと言うとえさっき説明した
29:06
通りアルゴリズム層かですねアセンブラ層 まで一気に自動化できるのではないかと
29:12
いう風に期待されているわけですよ もちろん一足飛びでumlからですね機械
29:18
語を生成するなんてそんなことは誰も期待 してないと思うんで順番にですね層を
29:23
落としていってえ自動自動生成自動生成し ていって最終的に機械語を生成するという
29:30
流れができないかなという風にみんな考え てると思いますこれもですねまあなかなか
29:35
難しいと思いますよまもちろんケースバイ ケースでしょうけどまそもそもこれが できるんだったらですねもう生成合がです
29:43
ね全ての製品を設計できるという世界に なってきますよそれもうマトリックスの
29:48
世界ですよねもうそうなったら僕も皆さん もですね仕事する必要がないんであのそう
29:53
なったら僕も遊んで暮らせるようになるん で是非そういう世界は来て欲しいと思って いますただあのすぐには来ないと思って
30:00
ますまだまだ時間がかかるでしょうなので えそもそもですねあの自動生成に丸投げ
30:06
するということがえ間違っているわけです よねこの上層から解層に対してえ十分に
30:12
いいコードが自動生成できるということは しばらくないですなのでえ自動生成を活用
30:18
しつつえ必要に応じて人間が修正できる ようにする枠組が必要ですよねで今回僕が
30:25
1番言いたかったのここなんですけど今回 説明したえプログラムの参照モデル7層
30:30
全てが連携して機能することで ソフトウェアというものが動作しているん ですとそれをですねま大まかにでもいいん
30:37
でえ理解しておかないとえなんで行動を 書いているのかなぜこれが動いてるのかと
30:43
いうのを分からずC言語を扱いきれないと 思うのでえ是非ですね理解してもらいたい
30:48
という風に思ったのでこの動画を作りまし たで結論なんですけど結局えCを書かない
30:55
といけない状況にある皆さんなぜそうなっ ているかというとえ自動化できないかです ねでまたですねえソフトウェアの領域でえ
31:03
ハードウェアの操作をえC言語のレイヤー の言語でえ抽象化するということをしたい
31:09
からまたえCPUのメモリ管理とか処理の 最適化を行うということをしたいのでここ
31:15
のレイヤーの言語があるわけですねなので これらをやりたいわけではないのであれば
31:22
Pythonでいいんですよというわけで 適切に言語を使い分けてですねえ皆さんの
31:27
やりたいことことを実現してもらえればと 思いますあと最後ですねC言語をや使わ
31:33
なきゃいけない人向けにですね是非これ 読んどいてというのをえここに書きました C言語のコンパイラーの動きについてです
31:40
ねえちゃんと説明してくれてるのがこちら のページですねあとえプリプロセッサーと いうものがC言語にはあってですねこいつ
31:47
が何をしてるのかというのを理解する必要 があるのでえそれを説明しているのがこの ページですねま是非ですねこの2つは読ん
31:54
でおいていただきたいですちょっと今日 時間があれなんでもうしませんがえ概要欄 に貼ってますのでえ見ておいてください
32:02
だいぶ長くなりましたが以上になります 最後までご視聴くださいましてありがとう ございました
32:12
[音楽]


【サービス】

》全サービス一覧《


◆[一覧・リスト]真相探求ニュース
》》一覧情報《《

なんでも!一覧中(集)
◆◆全メニュー◆◆



↑画面TOPへ↑


---以上

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント: 必須項目

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/12832049
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索

他ジャンル
⇒ エンタメ!一覧中(集)

》サービス一覧《

[PR/広告]





全般ランキング
<< 2025年01月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
ジャンル
メニュー(カテゴリー)(58)
なんでも・その他(ニュース)(3135)
色々・コレクション(ニュース)(112)
外国ニュース・出来事(316)
翻訳ニュース分析(真相探求)(903)
世界の支配者・奥の院・監視(246)
軍・兵器・戦争(506)
日本(破壊・害虫・改善)問題(87)
政治・政府・国会・内閣(825)
選挙(政治・議員・公務員)(678)
組織・団体・集団・教会(447)
憲法・法律・政治(73)
行政・公務員・議員(85)
迷惑・混乱・非常識(12)
陰謀・都市伝説・真相(探求)(358)
社会分析(真相探求)(781)
メディア・チャンネル・番組(231)
情報発信・受信(連絡・通信・マスメディア)(229)
人物・キャラクター(539)
有名人・芸能・エンタメ(266)
災害・防災・危機(313)
予言・預言・予測・未来(312)
ひふみ(日月)関連(1)
宇宙、異次元、異常現象(130)
洗脳脱却・新時代・新異次元(156)
雑談・メッセージ(298)
ウイルス・ワクチン・利権(3394)
病気・薬・医療・病院(181)
美容・健康(80)
健康・病気(252)
AI・人工知能・ロボット・サイボーグ(59)
美容(8)
金融・投資・保険(520)
企業・会社・業界・組織・団体(250)
ファッション・ブランド(30)
食べ物(88)
経済・経営・社会・ビジネス(471)
社会・文化・歴史(132)
グルメ・食品(359)
事件・犯罪・詐欺・事故(133)
料理編(8)
詐欺・泥棒(8)
エネルギー・資源(138)
自然・環境・気候(147)
祝い・イベント・行事・お祭り・ギフト・プレゼント(150)
サバイバル・自然生活(17)
こよみ・出来事・行事(406)
自給自足・DIY・備蓄(6)
旅行・宿泊・レジャー・遊び場(12)
住宅・家・不動産・引越(19)
仕事・仕事関連・ビジネス・サポート(83)
生活・暮らし(90)
住まい・暮らし(87)
ゲーム(179)
雑学・ネタ(62)
笑い癒し・ネタ事(4)
コンピュータ・IT関連(69)
アニメ・漫画(35)
コンピュータ(ソフトウェア・アプリ)(56)
科学・技術・テクノロジー/(17)
WEBとインターネット(303)
音楽・サウンド・音図鑑(14)
映画集・ドラマ(29)
乗り物・移動手段・交通機関(163)
ギャンブル・ゲーム(22)
アフィリエイト広告・サービス(1)
生き物(動物、植物)(2)
動物・ペット(32)
料理編(6)
家庭菜園・農園(588)
植物(10)
便利ツール・サイト・用語(9)
スポーツ・アウトドア(82)
占い・風水・血液・スピリチュアル(11)
心理・思想・哲学(67)
趣味(1)
商品・物品・電化製品(45)
時代の流れ、流行(3)
取引・物品・物流・売買・リサイクル(11)
資料・データ(1)
学習(教育・学校・資格・講座)(31)
地理・地学(25)
学習(内容)(3)
写真・美術・絵画(1)
玩具(おもちゃ)・ホビー、子供(47)
ショップ・商業施設・飲食店(101)
ショッピング(34)
その他(4)
結婚・恋愛(41)
CM・広告・宣伝(140)
終末・終了・END(9)
最新記事
(01/13)片山元副知事のトンデモ法解釈、とどめを刺したのはN国浜田聡(参考)
(01/13)赤字懸念が更に拡大!万博リング、再利用少なくまた説明会開催のとほほ!(参考)
(01/13)元お笑い芸人・長井秀和氏が暴露→逮捕手前!木村拓哉氏も心配する衝撃ヤバい映像→見つかってしまう、9000万円示談声明は中居氏が書いたのでは?元テレビ放送作家が解説!(参考)
(01/13)立花孝志がトランプから招待状が来てアメリカに行くという炎上話題について(参考)
(01/13)中居正広のスキャンダルの水面下に松本人志との飲み会エピソードが明らかな件について(参考)
(01/13)初心者必見:なぜC言語を書かないといけないのか?解説します(参考)
(01/13)中居正広の報道が加速する裏側の憲法改正と政治と芸能界の話について(参考)
(01/13)経営のプロ?経営コンサルタントの倒産が過去最多(参考)
(01/13)ロサンゼルス大規模火災疑惑と現場に保険会社が謎の行動をしていた件(参考)
(01/12)アマゾンの労働者が2024年のホリデーシーズンの繁忙期に歴史的なストライキを実施:電子商取引における労働者の権利の転換点となるか?(ニュース)[G翻訳]
(01/12)知らないとヤバい!実は危険ということ教えて(参考)
(01/12)中居正広のスキャンダルと長井秀和が言及したエピソードから推測できること(参考)
(01/12)長渕剛の性加害問題にも進展、被害女性が新たに「暴力団でもみ消し」暴露...!中居正広と長渕の開き直り具合がヤバすぎる...!(参考)
(01/12)中居正広:天国から地獄に落ちた事でうやむやに逃亡してた長渕剛も再燃!若林志穂「絶対終らせない」(参考)
(01/12)逮捕されるからカーター国葬に行けず菅義偉を代理にした岩屋だがやはり菅義偉だけ時が止まる 奥野ネズミさん「菅義偉は責任逃れの演技」(参考)
(01/12)フジテレビ・ワイドナショー:中居正広の問題を報じるサンモニ「フジテレビは中居正広の「問題の概要知っている」(参考)
(01/12)転落…なぜ、SONY「Xperia」は売れなくなったのか?(参考)
(01/12)斎藤元彦が折田楓に口止めしていた可能性と公職選挙法違反が明らかになるのも時間の問題か?(参考)
(01/12)中居正広の裏でデブが動く(参考)
(01/12)自民党の闇は●●を分からないように受け入れ増加させることについて(参考)
ファン