アカウント名:
パスワード:
昔(20年位上前)は職業プログラマなら実務経験はなくてもCでのプログラミング経験はあって当然という雰囲気あったような気がする(含む:Hello world)。
それが今は嗜みというか、懐古主義というか、少なくとも稼げる言語ではなくなったってことなのかな。
組込系の下回りの開発にはC言語以外の選択肢は無いその上のアプリケーションのレベルはC言語を使う時代じゃないしたがって大多数のプログラマはC言語を知る必要は無い逆に言えばC言語できない奴にはハードよりの開発をする能力は無い
組み込みでもCじゃないといけないのって相当低レイヤーだけで、今やロジックはPythonで書ける時代なんですよね。もちろん業界とかリソース量によるでしょうが。
えっ、Pythonでレジスタ・アクセスするの?#ロジックならBASICでもアセンブラでも書ける
レジスタアクセスする仕組みを用意すればいいだけでは。Cだって言語仕様としてレジスタアクセスできるわけじゃないでしょ。
プログラムからアクセスすることを前提として読み書きできるメモリ空間にレジスタが配置されてればCの言語仕様の内でレジスタアクセスできますよ。
素直にインラインアセンブラ使ってください
C言語のregisterキーワードをつけた変数ってアドレスを取れない仕様だから、通常のハードウェア実装ではレジスタのアドレスは取れないであることを想定している(いた)のでは。実際そのとおりだし。
生のメモリアドレスの扱いは処理系依存ですよね
レジスタアクセスにインラインアセンブラが素直って馬鹿ですか?
ここで言われてる「レジスタ・アクセス」の意味分かってないでしょ
この人は組み込みの経験ないんだろうなあ、という印象。 https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%B8%E3%82% [wikipedia.org]
ああ、レジスタ違い。20世紀は遠くなりにけり。
処理系依存にしろ「Cの言語仕様の内でレジスタアクセスできる」ことに違いはないでしょ
C 言語の仕様として適当にぐぐると出てくる『JIS X 3010:2003 プログラム言語C』で volatile 宣言について
(114) volatile 宣言は,メモリ上に割り付けられた入出力ポートに相当するオブジェクト,又は非同期 的な割込み機構によってアクセスされるオブジェクトを記述するのに使用してもよい。そのように 宣言されたオブジェクトに対する操作は,式の評価の規則で許されている場合を除いて,処理系の 最適化によって削除又は順序の変更が行われてはならない。
と注釈がされており、「メモリ上に割り付けられた入出力ポートに相当するオブジェクト(=レジスタ)」へのアクセスは C 言語の仕様の内として行ってよいことであり、「プログラムからアクセスすることを前提 ~ Cの言語仕様の内でレジスタアクセスできますよ」という投稿に対して処理系依存ですよねという指摘は斜め上方向にずれているのでは?
処理系依存でもいいならPythonでもレジスタアクセス可能ということになるんだろうな
レジスタアクセスが可能なPythonの実装は実例として何が挙げられますか?
そのレジスタを指す方法は処理系依存でしかありえないよ。
動作プラットホームには依存するけど処理系に依存しない書き方は普通に可能でそ
> 素直にインラインアセンブラ使ってください> registerキーワードCPUの(汎用)レジスタとかを連想する人多すぎだな…そっちのレジスタはCでも明示して操作出来ないだろうに。
> 処理系依存でもいいならPythonでもレジスタアクセス可能ということになるんだろうな「ポインタに処理系依存な値を突っ込めば突っ込んだ値に対応するレジスタが操作できる」ってな具合なんで、突っ込むべき値が処理系依存なだけで、突っ込む機能自体はCが持っている。# ・・・機能というか言語仕様的には未定義だから同じコードも環境次第では鼻悪魔だけど
ポインタの値をPython自体の仕様として直接操作とかができるならそうなるね。できないのなら無理。言語仕様の枠をこえた独自拡張で対応するしか無い。
組み込みもPythonもわからん癖になんか言いたい人は引っこんでていただきたいですね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
C言語の立ち位置 (スコア:3)
昔(20年位上前)は職業プログラマなら実務経験はなくてもCでのプログラミング経験はあって当然という雰囲気あったような気がする(含む:Hello world)。
それが今は嗜みというか、懐古主義というか、少なくとも稼げる言語ではなくなったってことなのかな。
Re: (スコア:0)
組込系の下回りの開発にはC言語以外の選択肢は無い
その上のアプリケーションのレベルはC言語を使う時代じゃない
したがって大多数のプログラマはC言語を知る必要は無い
逆に言えばC言語できない奴にはハードよりの開発をする能力は無い
Re: (スコア:0)
組み込みでもCじゃないといけないのって相当低レイヤーだけで、今やロジックはPythonで書ける時代なんですよね。
もちろん業界とかリソース量によるでしょうが。
Re: (スコア:0)
えっ、Pythonでレジスタ・アクセスするの?
#ロジックならBASICでもアセンブラでも書ける
Re:C言語の立ち位置 (スコア:0)
レジスタアクセスする仕組みを用意すればいいだけでは。
Cだって言語仕様としてレジスタアクセスできるわけじゃないでしょ。
Re: (スコア:0)
プログラムからアクセスすることを前提として読み書きできるメモリ空間にレジスタが配置されてればCの言語仕様の内でレジスタアクセスできますよ。
Re: (スコア:0)
素直にインラインアセンブラ使ってください
Re: (スコア:0)
C言語のregisterキーワードをつけた変数ってアドレスを取れない仕様だから、通常のハードウェア実装ではレジスタのアドレスは取れないであることを想定している(いた)のでは。実際そのとおりだし。
Re: (スコア:0)
生のメモリアドレスの扱いは処理系依存ですよね
Re: (スコア:0)
レジスタアクセスにインラインアセンブラが素直って馬鹿ですか?
Re: (スコア:0)
ここで言われてる「レジスタ・アクセス」の意味分かってないでしょ
Re: (スコア:0)
この人は組み込みの経験ないんだろうなあ、という印象。
https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%B8%E3%82% [wikipedia.org]
Re: (スコア:0)
ああ、レジスタ違い。20世紀は遠くなりにけり。
Re: (スコア:0)
処理系依存にしろ「Cの言語仕様の内でレジスタアクセスできる」ことに違いはないでしょ
Re: (スコア:0)
C 言語の仕様として適当にぐぐると出てくる『JIS X 3010:2003 プログラム言語C』で volatile 宣言について
と注釈がされており、「メモリ上に割り付けられた入出力ポートに相当するオブジェクト(=レジスタ)」へのアクセスは C 言語の仕様の内として行ってよいことであり、「プログラムからアクセスすることを前提 ~ Cの言語仕様の内でレジスタアクセスできますよ」という投稿に対して処理系依存ですよねという指摘は斜め上方向にずれているのでは?
Re: (スコア:0)
処理系依存でもいいならPythonでもレジスタアクセス可能ということになるんだろうな
Re: (スコア:0)
レジスタアクセスが可能なPythonの実装は実例として何が挙げられますか?
Re: (スコア:0)
そのレジスタを指す方法は処理系依存でしかありえないよ。
Re: (スコア:0)
動作プラットホームには依存するけど処理系に依存しない書き方は普通に可能でそ
Re: (スコア:0)
> 素直にインラインアセンブラ使ってください
> registerキーワード
CPUの(汎用)レジスタとかを連想する人多すぎだな…
そっちのレジスタはCでも明示して操作出来ないだろうに。
> 処理系依存でもいいならPythonでもレジスタアクセス可能ということになるんだろうな
「ポインタに処理系依存な値を突っ込めば突っ込んだ値に対応するレジスタが操作できる」
ってな具合なんで、突っ込むべき値が処理系依存なだけで、突っ込む機能自体はCが持っている。
# ・・・機能というか言語仕様的には未定義だから同じコードも環境次第では鼻悪魔だけど
ポインタの値をPython自体の仕様として直接操作とかができるならそうなるね。
できないのなら無理。言語仕様の枠をこえた独自拡張で対応するしか無い。
Re: (スコア:0)
組み込みもPythonもわからん癖になんか言いたい人は引っこんでていただきたいですね。