programming/tips/polish/index.wiki.txt

current previous
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することで文字列を終端させるように修正