アカウント名:
パスワード:
ではまだまだ現役だと思うけどミドルウェアとかドライバとか・・・
レジスタを直接叩くとか他言語(javaとかPHP)で出来るのかな?
できるか出来ないかで言うと、Common Lisp は アセンブリを書けますし ( http://g000001.cddddr.org/2011-12-08 [cddddr.org] )Java Bytecode 上の黒魔術はVMでアセンブリを書くようなものです。 ( https://github.com/brettwooldridge/HikariCP/wiki/Down-the-Rabbit-Hole [github.com] )
C はやはりOSとのインターフェースを弄るのに時々必要です。資産が大きすぎますので、どうしても自分で描き直したい時を除き、Lisperは結構 libffi からC関数を叩きます。C++は中途半端なので使いませんが、最近は Clasp というものが出てきました。 http://www.infoworld.com/article/2687997/application-development/clasp... [infoworld.com]
布教終了。
標準でないものをCommon Lispでは~といっても仕方がないです書けるだけならSymblicsのマイクロコードだって書けます
それをいうなら、asm ディレクティブもGCCの拡張だったと記憶しているのですが...しょせんレジスタうんぬんはハードウェア依存の内容。ハードウェアの違いを吸収するためにプログラミング言語はあるんですから、言語仕様にそれを求めるのはお門違いでしょう。だからこそ「できるか出来ないかで言うと」って言ったんですよ。
CLのなかでのアセンブリ環境ですが、一応, sbcl と cmucl (この2つは同じ系列),Clozure CL ( https://groups.google.com/forum/#!topic/comp.lang.lisp/k6J8J3b1V5k [google.com] ),Allegro CL (商用, 解説記事 http://g000001.cddddr.org/3625311600 [cddddr.org] )で使えるみたいです。sbcl と clozure cl はx86上のフリー処理系のメインですから、ほとんどの環境で利用できると考えてよいのでは。
組込制御するのにオブジェクト指向とか無くてかまわないし規格がキッチリ定まってて過去の資産があるから科学技術計算のFORTRANと同じでいつまでたっても死なないよ古い時代の「効率重視」の言語だから今のトレンドにそぐわないところは多々あるが非力なプロセッサで使うには文句言ってられん
いや、組込みも様々。ローレベルだったら、アセンブラに近い記述が必要なので、せめて Cと思うけど、UIに近い階層とか、外部 I/F の上位階層だと、オブジェクト指向の手口が使えた方が楽。あいだを取り持つのがちと面倒だけど、それは使い分けでしょう。それに最近は、組込みも大規模化してるから、切り口を明確化するにも良いかも。
非力なプロセッサで、キリキリと組むの、最近、縁無いな。来ないかな。と、言うより、業務系の仕事はつまらない。 UIばっかりで。技術計算系でもいいけど。
なくて構わないじゃなくて、リソースの問題から使いたいけど使えないじゃないの?リソースに余裕がないから、C言語を使います、は正当な理由だけど、組込でもリソースに余裕があるなら、オブジェクト指向でもなんでも開発効率をよくできるものは使うべきっしょ。
あんなものうちの分野には必要ない(キリッ的な言い方は、staticおじさんみたいに感じるよ。
組み込みやった事無さそうね。より低いレイヤーに近づくほど「邪魔」。
C++は動的メモリ確保が前提な言語だからあまり利用されないだけ。Cでも構造はオブジェクト指向な書き方してるよ。(自動車)
リソースもそうだが実動作時にどうあんな包含しまくった物体が処理されてるのか考えると不気味でしょうがないロジックの肥大化にも程がある
今はPCのC#やってるので割り切れるけど組込はやはり別口
自分のとこだと、リソースに余裕があってもC使ってますね。場合によってはアセンブラも多用します。
オブジェクト指向に関しては、処理タイミングが超シビアだったり、処理の入力と出力が一致しているだけでなく処理途中の値も保障をとらないといけなかったりするので、カプセル化 とか多態性が邪魔で使ってません。
自分より上位の制御はオブジェクト指向的な書き方なので、組み込みでも分野によるんでしょうね。
PCアプリはPL法の対象外ですけど、組み込みは対象なんですよ。PCなら「どんなコードが吐かれてどうやって動いてるかわからないけどとにかく動く」言語も抵抗なく使えますが、PL法の対象になるプログラムで、コードがどんなバイナリに変換されて実行されるのかわからない言語を使いたいですか?
オブジェクト指向だからバイナリがわからないという人とは一緒に仕事したくありません。
>組込制御するのにオブジェクト指向とか無くてかまわないし構造体を使ってオブジェクト指向じみたことをやるのはもはやどんなものでも使われるていますけどね。
OSがCだもんね。あと、Cが使えないC++プログラマがいるのかいなと
STL/boostを使うという風に徹底すれば、生ポインタとか生メモリとかは見なくても済みますよね。OSのフレームワークとか使おうと思うと、ポインタと無縁ではいられませんが・・・。
Cが使えるC++プログラマってすごく減った気がするけど
うそー、なんでそんな事になるのか訳が分からないよw
C++のライブラリに依存しきっている人に、それに依存しないでCだけで書けと言っても無理。CにはCのライブラリがあるけど、勝手が違う。
そうですね。
Cはマシンに近いだけ、マシンでの動作を教えるには便利ですが、実際に「同じことをする」ならC++の方が楽ですから。やらなくなった方法は忘れていきます。
それに、はじめからC++だけを教わった人はCでやる方法はわからないですね。勝手が違いすぎて、学習しようにも頭を悩ませるでしょう。
全てC++で書いたBeは死んだなぜか!
コンパイラーの変更でバイナリー互換性に問題が生じる設計だったことと、ジャン=ルイ・ガセー(Jean-Louis Gassée)さんがApple Computerへの売り込みに失敗したこと。この2点が大きかったんじゃないかな。
あとは、PC/AT向けではドライバーが少なすぎて使えるハードウェアが非常に限られていたこともあるかも。
システム記述用を目的の1つとして作られてて、設計がよく合致できてるよね自身のランタイムや多言語のグルーとしても使われるあたりで証明になってるんじゃないかな他の言語を学ぶ時の橋渡しになるかは知らんけど、このハード叩くだとかのシステム分野ではずっと残るのじゃないかな
高級アセンブラとしてのCの立場は、プロセッサが高級言語をバイナリ実行するようにならない限りなくならないのでは?
巷のアプリで高級言語使えるのは環境としてのソフト(OS・ライブラリ)ががんばっているからでしょ。
プロセッサが高級バイナリを実行できるようになるか、環境を新たに作る必要がなくなるまでは生き延びるよね?
当時はC言語=高級アセンブラだったかもしれないけど今はもう乖離がはなはだしい。さらに最近はLLVM中間コード吐くように進んでるし「過去の資産」とか「マイナーCPU」とかでない限り出番は減っていくだろう
できる、できないじゃなく必要ない。必要ないものは言語仕様として決まってない(=ないと決まっている)ほうがいい。
ちなみに、JavaScriptなんて標準ではローカルのファイルにアクセスする手段さえないよ。
でも、大局的にみればない方がいい。
Cだって無いじゃん
stdio.hは標準じゃない?そういう意味ではなくて?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
組込み業界 (スコア:0)
ではまだまだ現役だと思うけど
ミドルウェアとかドライバとか・・・
レジスタを直接叩くとか他言語(javaとかPHP)で出来るのかな?
Re:組込み業界 (スコア:2)
できるか出来ないかで言うと、
Common Lisp は アセンブリを書けますし ( http://g000001.cddddr.org/2011-12-08 [cddddr.org] )
Java Bytecode 上の黒魔術はVMでアセンブリを書くようなものです。 ( https://github.com/brettwooldridge/HikariCP/wiki/Down-the-Rabbit-Hole [github.com] )
C はやはりOSとのインターフェースを弄るのに時々必要です。
資産が大きすぎますので、どうしても自分で描き直したい時を除き、Lisperは結構 libffi からC関数を叩きます。
C++は中途半端なので使いませんが、最近は Clasp というものが出てきました。 http://www.infoworld.com/article/2687997/application-development/clasp... [infoworld.com]
布教終了。
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re: (スコア:0)
標準でないものをCommon Lispでは~といっても仕方がないです
書けるだけならSymblicsのマイクロコードだって書けます
Re:組込み業界 (スコア:2)
それをいうなら、asm ディレクティブもGCCの拡張だったと記憶しているのですが...
しょせんレジスタうんぬんはハードウェア依存の内容。
ハードウェアの違いを吸収するためにプログラミング言語はあるんですから、言語仕様にそれを求めるのはお門違いでしょう。
だからこそ「できるか出来ないかで言うと」って言ったんですよ。
CLのなかでのアセンブリ環境ですが、
一応, sbcl と cmucl (この2つは同じ系列),
Clozure CL ( https://groups.google.com/forum/#!topic/comp.lang.lisp/k6J8J3b1V5k [google.com] ),
Allegro CL (商用, 解説記事 http://g000001.cddddr.org/3625311600 [cddddr.org] )
で使えるみたいです。
sbcl と clozure cl はx86上のフリー処理系のメインですから、ほとんどの環境で利用できると考えてよいのでは。
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re:組込み業界 (スコア:1)
組込制御するのにオブジェクト指向とか無くてかまわないし
規格がキッチリ定まってて過去の資産があるから科学技術計算のFORTRANと同じでいつまでたっても死なないよ
古い時代の「効率重視」の言語だから今のトレンドにそぐわないところは多々あるが非力なプロセッサで使うには文句言ってられん
Re:組込み業界 (スコア:1)
いや、組込みも様々。
ローレベルだったら、アセンブラに近い記述が必要なので、せめて Cと思うけど、
UIに近い階層とか、外部 I/F の上位階層だと、オブジェクト指向の手口が使えた方が楽。
あいだを取り持つのがちと面倒だけど、それは使い分けでしょう。
それに最近は、組込みも大規模化してるから、切り口を明確化するにも良いかも。
非力なプロセッサで、キリキリと組むの、最近、縁無いな。来ないかな。
と、言うより、業務系の仕事はつまらない。 UIばっかりで。
技術計算系でもいいけど。
>組込制御するのにオブジェクト指向とか無くてかまわないし (スコア:0)
なくて構わないじゃなくて、リソースの問題から使いたいけど使えないじゃないの?
リソースに余裕がないから、C言語を使います、は正当な理由だけど、
組込でもリソースに余裕があるなら、オブジェクト指向でもなんでも開発効率をよくできるものは使うべきっしょ。
あんなものうちの分野には必要ない(キリッ的な言い方は、staticおじさんみたいに感じるよ。
Re: (スコア:0)
組み込みやった事無さそうね。
より低いレイヤーに近づくほど「邪魔」。
Re: (スコア:0)
C++は動的メモリ確保が前提な言語だからあまり利用されないだけ。
Cでも構造はオブジェクト指向な書き方してるよ。(自動車)
Re: (スコア:0)
リソースもそうだが
実動作時にどうあんな包含しまくった物体が処理されてるのか考えると
不気味でしょうがない
ロジックの肥大化にも程がある
今はPCのC#やってるので割り切れるけど組込はやはり別口
Re: (スコア:0)
自分のとこだと、リソースに余裕があってもC使ってますね。場合によってはアセンブラも多用します。
オブジェクト指向に関しては、処理タイミングが超シビアだったり、
処理の入力と出力が一致しているだけでなく処理途中の値も保障をとらないといけなかったりするので、
カプセル化 とか多態性が邪魔で使ってません。
自分より上位の制御はオブジェクト指向的な書き方なので、組み込みでも分野によるんでしょうね。
Re: (スコア:0)
PCアプリはPL法の対象外ですけど、組み込みは対象なんですよ。
PCなら「どんなコードが吐かれてどうやって動いてるかわからないけどとにかく動く」言語も抵抗なく使えますが、
PL法の対象になるプログラムで、コードがどんなバイナリに変換されて実行されるのかわからない言語を使いたいですか?
Re: (スコア:0)
オブジェクト指向だからバイナリがわからないという人とは一緒に仕事したくありません。
Re: (スコア:0)
>組込制御するのにオブジェクト指向とか無くてかまわないし
構造体を使ってオブジェクト指向じみたことをやるのはもはやどんなものでも使われるていますけどね。
Re: (スコア:0)
OSがCだもんね。あと、Cが使えないC++プログラマがいるのかいなと
Re: (スコア:0)
STL/boostを使うという風に徹底すれば、生ポインタとか生メモリとかは見なくても済みますよね。
OSのフレームワークとか使おうと思うと、ポインタと無縁ではいられませんが・・・。
Re: (スコア:0)
Cが使えるC++プログラマってすごく減った気がするけど
Re: (スコア:0)
うそー、なんでそんな事になるのか訳が分からないよw
Re: (スコア:0)
C++のライブラリに依存しきっている人に、それに依存しないでCだけで書けと言っても無理。CにはCのライブラリがあるけど、勝手が違う。
Re:組込み業界 (スコア:2)
そうですね。
Cはマシンに近いだけ、マシンでの動作を教えるには便利ですが、
実際に「同じことをする」ならC++の方が楽ですから。
やらなくなった方法は忘れていきます。
それに、はじめからC++だけを教わった人はCでやる方法はわからないですね。
勝手が違いすぎて、学習しようにも頭を悩ませるでしょう。
Re: (スコア:0)
全てC++で書いたBeは死んだ
なぜか!
Re: (スコア:0)
コンパイラーの変更でバイナリー互換性に問題が生じる設計だったことと、
ジャン=ルイ・ガセー(Jean-Louis Gassée)さんがApple Computerへの売り込みに失敗したこと。
この2点が大きかったんじゃないかな。
あとは、PC/AT向けではドライバーが少なすぎて使えるハードウェアが非常に限られていたこともあるかも。
Re: (スコア:0)
システム記述用を目的の1つとして作られてて、設計がよく合致できてるよね
自身のランタイムや多言語のグルーとしても使われるあたりで証明になってるんじゃないかな
他の言語を学ぶ時の橋渡しになるかは知らんけど、
このハード叩くだとかのシステム分野ではずっと残るのじゃないかな
プロセッサと人間をつなぐもの(Re:組込み業界) (スコア:0)
高級アセンブラとしてのCの立場は、プロセッサが高級言語をバイナリ実行するようにならない限りなくならないのでは?
巷のアプリで高級言語使えるのは環境としてのソフト(OS・ライブラリ)ががんばっているからでしょ。
プロセッサが高級バイナリを実行できるようになるか、環境を新たに作る必要がなくなるまでは生き延びるよね?
Re:プロセッサと人間をつなぐもの(Re:組込み業界) (スコア:1)
そういうのが発展してたらCが必要なかったのかな?
Re: (スコア:0)
当時はC言語=高級アセンブラだったかもしれないけど今はもう乖離がはなはだしい。
さらに最近はLLVM中間コード吐くように進んでるし「過去の資産」とか「マイナーCPU」とかでない限り出番は減っていくだろう
Re: (スコア:0)
できる、できないじゃなく必要ない。
必要ないものは言語仕様として決まってない(=ないと決まっている)ほうがいい。
ちなみに、JavaScriptなんて標準ではローカルのファイルにアクセスする手段さえないよ。
でも、大局的にみればない方がいい。
Re: (スコア:0)
Cだって無いじゃん
Re: (スコア:0)
stdio.hは標準じゃない?
そういう意味ではなくて?