石黒/Docs/代替OS記述言語
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[石黒]]
*これはなに? [#i782c45a]
**Cって… [#hc2a7ece]
OS記述言語としてデビューしたんですよね。でもその後オブジェクト指向とか例外とか色々出てきて、どうなんだろうと。
**代わりになるOS記述言語って [#s65f1d3c]
某氏曰く、"JavaでもOSは書ける"そうなんだけど、じゃあ楽に書けるのかっていえば微妙ですね。Javaの言語仕様としては書けても、現在主流のJavaの実装がVM上のあれなので。
*代替 [#r03ffca8]
**C11+GNU拡張 [#v7ca446e]
なにが出来るか調査中。
:C11|いままで組み込み関係のプログラマがCでやってたことをより効率よく、って印象でパラダイムシフトな楽しさはあまり無いかもしれない。(参考: http://seclan.dll.jp/c99d/ / http://iyukki.blog56.fc2.com/blog-entry-163.html )
:GNU拡張|配列の操作が割とモダン。あと関数のネスト、型の代入とか (参考: http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html )
決定的に足りないのはオブジェクト指向のサポート。無くても書けるのはわかるんだけど…
**D言語 [#jc71a5b6]
これはすごいよ(参考: http://ja.uncyclopedia.info/wiki/D%E8%A8%80%E8%AA%9E )
- モダンな言語(最低限オブジェクト指向が前提)はC++の複雑性を避けるように作られているっぽいよね
- でもRubyじゃCの代わりは出来ない。便利だけど限定用途では困る。C/C++の資源を使いたい。
- あらゆるレイヤーで使えて、便利で、複雑じゃないもの(=最強の言語)を目指す
的なことが、世界で唯一のDの参考書に書いてあった。よく、Javaの記法でネイティブコードを吐く言語的なことが言われているが、言語仕様がバリバリ変わるので最近はそうでもないと思う。例えばメンバ関数のアクセスについてRubyライクな書き方が一部出来るようになってたりする。
***特徴 [#e494bb72]
書きやすさに貢献
- GC
- assert, 例外
- ユニットテストの標準サポート(実コードと近い場所に書けるので読みやすい)
- テンプレート、メタプログラミング
- 正規表現
組み込み用途に貢献
- mixin(キモい)
- インラインアセンブラ
- C/C++互換
***かなり大きな問題 [#j73fab82]
x86向けのコンパイラしかまだ実装が無い
http://dgcc.sourceforge.net/
これで中間コードをGCCに渡せる??KOZOS置き換えできれば夢が広がりますね。
***おまけ [#nfbba1b7]
Dエヴァンジェリストの見分け方: マスコットキャラクターについての印象を喋ってもらう
*今後 [#e9676a65]
x86向けの簡単なOS本を探し、Dで置き換えてみる
終了行:
[[石黒]]
*これはなに? [#i782c45a]
**Cって… [#hc2a7ece]
OS記述言語としてデビューしたんですよね。でもその後オブジェクト指向とか例外とか色々出てきて、どうなんだろうと。
**代わりになるOS記述言語って [#s65f1d3c]
某氏曰く、"JavaでもOSは書ける"そうなんだけど、じゃあ楽に書けるのかっていえば微妙ですね。Javaの言語仕様としては書けても、現在主流のJavaの実装がVM上のあれなので。
*代替 [#r03ffca8]
**C11+GNU拡張 [#v7ca446e]
なにが出来るか調査中。
:C11|いままで組み込み関係のプログラマがCでやってたことをより効率よく、って印象でパラダイムシフトな楽しさはあまり無いかもしれない。(参考: http://seclan.dll.jp/c99d/ / http://iyukki.blog56.fc2.com/blog-entry-163.html )
:GNU拡張|配列の操作が割とモダン。あと関数のネスト、型の代入とか (参考: http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html )
決定的に足りないのはオブジェクト指向のサポート。無くても書けるのはわかるんだけど…
**D言語 [#jc71a5b6]
これはすごいよ(参考: http://ja.uncyclopedia.info/wiki/D%E8%A8%80%E8%AA%9E )
- モダンな言語(最低限オブジェクト指向が前提)はC++の複雑性を避けるように作られているっぽいよね
- でもRubyじゃCの代わりは出来ない。便利だけど限定用途では困る。C/C++の資源を使いたい。
- あらゆるレイヤーで使えて、便利で、複雑じゃないもの(=最強の言語)を目指す
的なことが、世界で唯一のDの参考書に書いてあった。よく、Javaの記法でネイティブコードを吐く言語的なことが言われているが、言語仕様がバリバリ変わるので最近はそうでもないと思う。例えばメンバ関数のアクセスについてRubyライクな書き方が一部出来るようになってたりする。
***特徴 [#e494bb72]
書きやすさに貢献
- GC
- assert, 例外
- ユニットテストの標準サポート(実コードと近い場所に書けるので読みやすい)
- テンプレート、メタプログラミング
- 正規表現
組み込み用途に貢献
- mixin(キモい)
- インラインアセンブラ
- C/C++互換
***かなり大きな問題 [#j73fab82]
x86向けのコンパイラしかまだ実装が無い
http://dgcc.sourceforge.net/
これで中間コードをGCCに渡せる??KOZOS置き換えできれば夢が広がりますね。
***おまけ [#nfbba1b7]
Dエヴァンジェリストの見分け方: マスコットキャラクターについての印象を喋ってもらう
*今後 [#e9676a65]
x86向けの簡単なOS本を探し、Dで置き換えてみる
ページ名: