フォロー

突然変なこと思い付いたけど、Verilog HDLとかのノンブロッキング代入文が普通の(特に手続き型な記述が出来る、主にOOPな要素があって演算子のオーバーロードがある)ソフトウェアプログラミング言語(C# とか)にあったら(ノンブロッキング代入演算子?><)、ワンボードマイコンとかの直接デジタルI/Oを弄るプログラミングする時に便利かも?><

· · SubwayTooter · 2 · 0 · 0

これ、(演算子ではないけど)C# で同じ事と言うか同じ目的で使えるクラスをTaskを使って書いてて気づいたけど、Taskでだいたいおk・・・><;(あれ?><; 存在意義?><;)

Taskと微妙に違う点は、書き換える処理を非同期に書いて(、あるタイミングで同期的に状態を変える)のも、同期的に普通に代入も、どっちも出来るものを少しシンプルに記述できる事くらい?><;

演算子、(お行儀が悪い)C++に倣ってシフト演算子で代用しようとしたら右辺はintじゃ無いと駄目ですって出た><;

<= は使えるっぽい!><;(と言う事は見かけ上ちょっと近くなる?><;)

よく考えたらと言うか実際にやってみて気づいたけど、これだと、
hoge <= false;
みたいに書きたくても
hoge = hoge <= false;
になってしまう><;

これ、目的を考えると
fuga = hoge <= false;
って書かれてしまったらhogeの中身が破棄されない(hogeもfugaも同じハードウェアリソース等を参照する事になるかも?)ので危険かも><;

演算子の変わりに型で明示的な型変換したやつを暗黙の型変換でどうにかする手も?><;
hoge=true;//普通に代入
hoge=(NonBlockingRightSide)true;//ノンブロッキング代入もどき
とか?><;

これの実験コード、かなり酷いけど一応書いたのでせっかくなのでpaiza ioに><;

C#で439行のコード書いたよ!ブラウザ上で実行できるよ! paiza.io/projects/F0NiGRwETVCf

ログインして会話に参加
:realtek:

思考の /dev/null