|
66,10 |
66,8 |
|
|
|
|
$remarks
|
$remarks
|
|
このデモを実行するにはEdge・Chrome・Firefox・Safariいずれかのブラウザをご利用ください。 ブラウザによっては、変換過程・計算過程のアニメーションが表示されない場合があります。
|
このデモを実行するにはEdge・Chrome・Firefox・Safariいずれかのブラウザをご利用ください。 ブラウザによっては、変換過程・計算過程のアニメーションが表示されない場合があります。
|
+ |
$remarks$
|
|
|
|
|
~ |
$remarks
|
このデモでできる変換処理と制限事項については[[Cでの実装の項>#Implementation_C]]をご覧ください。
|
+ |
このデモでできる変換処理と制限事項については[[Cでの実装の項>#Implementation_C]]をご覧ください。 また、ソースコードは[[GitHubリポジトリ>https://github.com/smdn/polish-notation-impls/tree/main/src/impls/javascript]]にてご覧いただけます。
|
|
|
$remarks$
|
$remarks$
|
|
|
|
|
#script(source=polish-demo.js,noscript=このデモを実行するにはJavaScriptを有効にしてください。)
|
#script(source=polish-demo.js,noscript=このデモを実行するにはJavaScriptを有効にしてください。)
|
|
769,9 |
767,7 |
|
$remarks$
|
$remarks$
|
|
|
|
|
**プログラム全文 [#Implementation_C_Complete]
|
**プログラム全文 [#Implementation_C_Complete]
|
~ |
最後に、プログラム全文とコンパイル・実行例です。 プログラム全文は[[GitHubリポジトリ:https://github.com/smdn/polish-notation-impls/tree/main/src/impls/c]]でも公開しています。
|
最後に、プログラム全文とコンパイル・実行例です。 なお、このプログラムは[[misc/license/MIT]]にて公開します。 複製・改変・再配布は、ライセンスに従った形で行ってください。
|
+ |
|
|
+ |
なお、このプログラムは[[misc/license/MIT]]にて公開します。 複製・改変・再配布は、ライセンスに従った形で行ってください。
|
|
|
|
|
|
#code(source=_source/polish.c,license=mit,copyright-year=2017)
|
#code(source=_source/polish.c,license=mit,copyright-year=2017)
|
|
|
|
|
817,12 |
813,13 |
|
}}
|
}}
|
|
|
|
|
*他の言語での実装 [#Implementation_OtherLang]
|
*他の言語での実装 [#Implementation_OtherLang]
|
~ |
[[GitHubリポジトリ:https://github.com/smdn/polish-notation-impls/tree/main/src/impls]]にて、他の言語で実装したものを掲載しています。 比較して読めるように、いずれもCでの実装に近い記述にしてあります。
|
ここまでで紹介したアルゴリズムをC以外の言語で実装したものを以下のページに掲載しておきます。 比較して読めるように、いずれもCでの実装に近い記述にしてあります。
|
- |
|
|
- |
|
#page-tree(programming/tips/polish,noroot,exclude=impl_ruby)
|
|
|
|
~ |
なお、[[最初に挙げたデモ>#ConversionDemo]]はJavaScriptで実装しています。 ソースコードについては、[[上記リポジトリ>https://github.com/smdn/polish-notation-impls/tree/main/src/impls/javascript]]のほか、このページのソースからも閲覧できます。
|
なお、[[最初に挙げたデモ>#ConversionDemo]]はJavaScriptで実装しています。 ソースコードについてはこのページのソースに含まれています。
|
|
|
|
|
*文書情報 [#DocumentLog]
|
*文書情報 [#DocumentLog]
|
+ |
:2022-08-07|Cを含む各種言語での実装を[[GitHubリポジトリ:https://github.com/smdn/polish-notation-impls]]に移動
|
|
|
:2018-01-21|
|
:2018-01-21|
|
|
::本文について|演算子の優先順位について「最も右側の」の記載が抜けていた点を修正し、補足説明を追記
|
::本文について|演算子の優先順位について「最も右側の」の記載が抜けていた点を修正し、補足説明を追記
|
|
図表について、[[#Implementation_C]]と差異があった箇所を修正
|
図表について、[[#Implementation_C]]と差異があった箇所を修正
|
|
837,8 |
834,8 |
|
ソースコードのライセンスを[[misc/license/MIT]]に設定
|
ソースコードのライセンスを[[misc/license/MIT]]に設定
|
|
定数以外(XやAなどの記号)を含む部分式の場合でも、計算できる部分は計算するように変更(式``X=1+2``、``1+2=3*4+A``など)
|
定数以外(XやAなどの記号)を含む部分式の場合でも、計算できる部分は計算するように変更(式``X=1+2``、``1+2=3*4+A``など)
|
|
開き丸括弧``(``および閉じ丸括弧``)``が正しく開いて/閉じていない場合にエラーとなるように修正(式``(2+3``、``1+(2+3))``など)
|
開き丸括弧``(``および閉じ丸括弧``)``が正しく開いて/閉じていない場合にエラーとなるように修正(式``(2+3``、``1+(2+3))``など)
|
~ |
Pythonでの実装およびJavaScriptでの実装を追加
|
[[Pythonでの実装>programming/tips/polish/impl_python]]および[[JavaScriptでの実装>programming/tips/polish/impl_javascript]]を追加
|
~ |
Rubyでの実装を更新停止
|
[[Rubyでの実装>programming/tips/polish/impl_ruby]]を更新停止
|
|
::本文について|一部解説に加筆
|
::本文について|一部解説に加筆
|
|
用語の不統一を修正
|
用語の不統一を修正
|
|
:2017-12-09|Cでの実装について、strncpyの前にmemsetすることで文字列を終端させるように修正
|
:2017-12-09|Cでの実装について、strncpyの前にmemsetすることで文字列を終端させるように修正
|