ダイクストラの構造化プログラミングについて ダイクストラ・メッセージ 1965年に提唱されたダイクストラ・メッセージとは、抽象 (abstract) 概念上の機械同士が「お先にどうぞ」というメッセージをやり取りして、互いに現実上の並列 (parallel) 機械をゆずり合うものである*1。このメッセージは3つの操作、「連接(concatenation)」、「選択(selection)」、「繰り返し(repetition)」で構成される。この抽象機械は計算停止不能である*2。すなわち、他の抽象機械から譲られるメッセージを受け取るために、ひたすら抽象機械は計算をし続けるのである。 まとめると、 ダイクストラ・メッセージは互いに抽象機械がメッセージを出し合ってゆずり合う ダイクストラ・メッセージは3つの操作「連接」、「選択」、「繰り返し」で構成される ダイクストラ・メッセージを出す抽象機械は計算
将棋AIでは、教師(教師局面)を生成して、そこから評価関数パラメーターの学習を行っている。AlphaZeroなんかもそうしている。 教師は、実際に対局して生成する。ところが、この対局は、1手指すごとに何千とか何万とかの局面を探索しないといけない。Deep Learning(以下DLと略す)系の将棋AIの場合、何千とか何万の局面を探索すということは、その回数だけ推論を行うということである。普通、学習は、順伝播 逆伝播で、順伝播のコストをCとすると、逆伝播は2Cぐらい、つまり合計で3Cぐらいの計算コストを要するのだが、推論(これは順伝播)はCだから、要するに学習は3倍のコストを要する。ところが、教師生成時に1手指すのに仮に1万局面探索するとしたら、10000Cかかるわけで、これは学習コスト(3C)の3333倍である。 というように、教師生成のコストは学習時のコストとは比較にならないほどのコスト
はじめに Go Advent Calendar 2024 に参加の皆さま、お疲れさまでした。今年も良い Go ライフを送れたでしょうか。来年も良い Go 縁があると良いですね。 さて今日は strings.Replacer の話をしようと思います。 キーワード置換やってますか GitHub を見ているとよくこんなコードを目にする事があります。 s = strings.ReplaceAll(s, "hoge", "moge") s = strings.ReplaceAll(s, "foo", "bar") s = strings.ReplaceAll(s, "fizz", "buzz") 複数ある特定のキーワードを置換するコードですが、実はとても効率が悪いのです。strings.ReplaceAll は第一引数の文字列を走査し、第二引数にマッチした場合に第三引数へ置換し続ける実装です。つまり
アセンブリ言語(MASM)のコンパイル方法について紹介します。 アセンブリ言語とは アセンブリ言語とは、プログラミング言語の一種でマシン語(コンピュータが理解できる命令)と1対1で対応付けされた言語です。必要最小限の命令のみで処理を記述できるため、他のプログラミング言語に比べて実行ファイルサイズを小さくできたり、実行速度を速くすることができます。ただし、必要な処理をマシン語に対応した命令ですべて記述しなければならないためソースコードは長くなる傾向があります。 メッセージボックスを表示するアセンブリ言語 メッセージボックスを表示するだけのシンプルなアセンブリ言語コードは以下となります。 .386 .model flat,stdcall option casemap:none MessageBoxW PROTO STDCALL :DWORD,:DWORD,:DWORD,:DWORD ExitP
For users of RPM-based Linux distributions (e.g. Fedora, Red Hat, SUSE, ...), you can download the official NASM builds using dnf or yum by installing nasm.repo in your /etc/yum/yum.repos.d directory. Infrastructure Change On July 1, 2020, the official NASM git repository moved to github. The previous repository on repo.or.cz is no longer maintained. Development Team NASM was originally developed
概要 COINSコンパイラ・インフラストラクチャ を使って、hello.c をコンパイルしてみます。 環境が Windows XP なので、本来なら Cygwin を入れるべきなのだけれど、Cygwin を入れずに動かしてみました。 が、素直に Cygwin 入れた方が良かったかも。。。 なお、sourceforge からダウンロードした COINS はビルドせずにそのまま使っています。 ビルドする場合は、以下の作業では足りません。そもそも Cygwin 無しに COINS をビルドできるかどうか不明です。素直に Cygwin を入れた方がよさげです。。。 ダウンロード まず、以下のものをダウンロードします。URL およびファイル名はダウンロード時点 (2010/07 現在) のものです。 COINSコンパイラ・インフラストラクチャ http://sourceforge.jp/projec
オープンソース ERP コンピエール ディストリビューション ラボ - OSS ERP Compiere Distribution Lab コンテンツの公開区分 公開コンテンツ だれでも自由に閲覧できるコンテンツです。コンテンツの公開区分が指定されていない場合は、すべて公開コンテンツです。 サポーターズコンテンツ JPiereサポーターになると閲覧できるコンテンツです。JPiereのサポーターになって、オープンソースのERPのエコシステムを支援して下さい。 トレーニングコンテンツ 有料トレーニングで同様の内容を提供しているコンテンツです。有料トレーニングを受講する事でiDempiereを効率よく学ぶ事ができます。 非公開コンテンツ 公開していないコンテンツです。
Amazon Corretto インストール手順は Windows 版 Amazon Corretto インストール手順 - Qiita を参照すること。 調べ方 openjdk - Google Search windows ライフサイクル site:microsoft.com - Google 検索 エクスプローラー アドレスバー - Google 検索 前提 サポートされている Windows であること。 OpenJDK 10 は .tar.gz 形式で配布されていたため, tar コマンドが必要になったが, OpenJDK 11 以降は zip 形式で配布されているため, 特に最新である必要は無くなった。 備考 新しいバージョンの OpenJDK をダウンロード, 展開した場合は, JAVA_HOME の変数値を変更するだけで OK. Path は %JAVA_HOME%\bin
ホーム > C言語 > x64 アセンブリ言語で、Windows API や C 言語のライブラリを呼び出す .exe, .lib, .dll を開発する (Windows, MASM) x64 アセンブリ言語で、Windows API や C 言語のライブラリを呼び出す .exe, .lib, .dll を開発する (Windows, MASM) 前回は簡単な x64 アセンブリ言語プログラムを作りました。今回は次のプログラムを作ります。 C 言語のライブラリや Windows の API を呼び出すプログラム (.exe)足し算をするだけのスタティックライブラリ (.lib)C 言語のライブラリや Windows の API を呼び出すスタティックライブラリ (.lib)足し算をするだけの DLL (.dll)C 言語のライブラリや Windows の API を呼び出す DLL (.
固定値を返すだけの一番簡単な x64 アセンブリ言語プログラムを書いて、アセンブル・リンク・実行してみます。利用するアセンブラは Visual Studio に付属の 64bit 版 MASM(マイクロソフトマクロアセンブラ)です。 動作確認環境 Windows 11 Home 22H2Visual Studio Community 2022 (MASM for x64) 6 行のアセンブリ言語プログラム 固定値 100 を返すだけの 6 行のシンプルなアセンブリ言語プログラムです。 「.code」でコードセグメントの開始を示しています。ここから処理を書きます。ほかにもデータを記述する「.data」などがあります。 「START PROC ~ START ENDP」はプロシージャーの範囲を示しています。疑似言語で書くと「function START { ~ }」というイメージです。「STA
@echo off set vcdir=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120 path %path%;%vcdir%\bin\Hostx64\x64 set lib=%lib%;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64 prompt $e[33m$p$g$e[m cmd ; ml64 /c /Fl fig1.asm ; link /entry:start /subsystem:console fig1.obj includelib kernel32 STD_OUTPUT_HANDLE equ -11 extern ExitProcess :proc extern GetStdHand
この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Introduction to x64 Assembly」の日本語参考訳です。 はじめに 長年、PC プログラマーは x86 アセンブリーを使用して、高いパフォーマンスが要求されるコードを記述してきました。しかしながら、32 ビットの PC は 64 ビットに取って代わられつつあり、使用されるアセンブリー・コードも変わりました。この記事では、x64 アセンブリーの概要を説明します。x86 コードの知識はなくても構いませんが、あるとより理解しやすいでしょう。 x64 とは、インテルおよび AMD の 32 ビット x86 命令セット・アーキテクチャー (ISA) の 64 ビット拡張を表す一般的な名称です。AMD が最初に x64 を発表し、当初は x86-64 と呼ばれていましたが、後に AMD64 に変更されました。イン
この記事は 一休.com Advent Calendar 2024 の15日目の記事です。 予定より早く書き上げてしまったので、フライングですが公開してしまいます。 TypeScript の Discriminated Union (判別可能な Union 型) を使うと、いわゆる「代数的データ型」のユースケースを模倣することができます。一休のような予約システム開発においては「ありえない状態を表現しない」方針で型を宣言するためによく利用されています。 「あり得ない状態を表現しない」という型宣言の方針については以下の URL が参考になります。 Designing with types: Making illegal states unrepresentable | F# for fun and profit このユースケースで Discriminated Union を使う場合、それは文字
WebAssemblyとは? ブラウザからアセンブリ(機械語)を実行できるようにする技術 高速化手段、あるいはJavaScriptの処理系にできないことをするといった目的で提案された 2015年6月、Mozilla、Google、Microsoft、Appleが標準フォーマットとして開発することに合意した WebAssemblyが生まれた経緯 JavaScriptに実行速度が求められる時代になった 1. なぜJavaScriptは遅いか? インタプリタ言語で 動的型付けをしている → 解析に時間がかかってしまう よって、コンパイラ言語と比べると遅い😭 当初、JavascriptはHTMLに飾り付けをする程度だった さっと書いて、すぐに動く、それが売りだった しかし最近では・・・ 複雑なアニメーション WebGLなどのグラフィック処理 計算速度の遅いモバイル端末 などにも用途が広がり、実行
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く