Soumettre la recherche
Mettre en ligne
Rpn and forth 超入門
•
0 j'aime
•
2,967 vues
Yoshitaka Seo
Suivre
Rpn and forth 超入門 技術ひろば.net 2010年7月勉強会 セッション資料 2010年7月10日開催
Lire moins
Lire la suite
Technologie
Formation
Signaler
Partager
Signaler
Partager
1 sur 25
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
Nobuhisa Koizumi
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
Quine・難解プログラミングについて
Quine・難解プログラミングについて
mametter
Recommandé
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
t-sin
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
Nobuhisa Koizumi
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
増田 亨
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
Quine・難解プログラミングについて
Quine・難解プログラミングについて
mametter
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Monad tutorial
Monad tutorial
Hideyuki Tanaka
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
ラムダ計算入門
ラムダ計算入門
Eita Sugimoto
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
F#によるFunctional Programming入門
F#によるFunctional Programming入門
bleis tift
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
Contenu connexe
Tendances
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Monad tutorial
Monad tutorial
Hideyuki Tanaka
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya Murakami
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
ラムダ計算入門
ラムダ計算入門
Eita Sugimoto
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
F#によるFunctional Programming入門
F#によるFunctional Programming入門
bleis tift
Tendances
(20)
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Glibc malloc internal
Glibc malloc internal
Redisの特徴と活用方法について
Redisの特徴と活用方法について
関数プログラミング入門
関数プログラミング入門
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Monad tutorial
Monad tutorial
プログラムを高速化する話
プログラムを高速化する話
中3女子でもわかる constexpr
中3女子でもわかる constexpr
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
ラムダ計算入門
ラムダ計算入門
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
F#によるFunctional Programming入門
F#によるFunctional Programming入門
Similaire à Rpn and forth 超入門
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
Yasutaka Hamada
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Yaminabe fortran
Yaminabe fortran
HPCシステムズ株式会社
F#の基礎(?)
F#の基礎(?)
bleis tift
つくっておぼえる!仮想マシン〜直前で実装編〜
つくっておぼえる!仮想マシン〜直前で実装編〜
Eric Sartre
Perl勉強会#2資料
Perl勉強会#2資料
Kiyo Tsunezumi
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
CHY72
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
鉄次 尾形
Ruby紹介(pdf)
Ruby紹介(pdf)
Gohryuh
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
Oda Shinsuke
Perl6で遊ぼう
Perl6で遊ぼう
VienosNotes
MTDDC Hokkaido : テンプレートタグでBrainf*ckを作ってみた
MTDDC Hokkaido : テンプレートタグでBrainf*ckを作ってみた
Katsuhiro Endo
わんくま東京#38 LT 「Func<> と ref / out 小咄」
わんくま東京#38 LT 「Func<> と ref / out 小咄」
Takeshi Kiriya
capistrano-colorized-stream
capistrano-colorized-stream
Naotoshi Seo
簡単便利!Laravel Homestead
簡単便利!Laravel Homestead
Shota Inoue
リーダブルコード 1.0'
リーダブルコード 1.0'
Yamamura Takashi
ハードウェア脳とソフトウェア脳
ハードウェア脳とソフトウェア脳
Shinichiro Niiyama
F#のコンピュテーション式
F#のコンピュテーション式
pocketberserker
Similaire à Rpn and forth 超入門
(20)
2009年のPHPフレームワーク
2009年のPHPフレームワーク
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
スタート低レイヤー #0
スタート低レイヤー #0
Yaminabe fortran
Yaminabe fortran
F#の基礎(?)
F#の基礎(?)
つくっておぼえる!仮想マシン〜直前で実装編〜
つくっておぼえる!仮想マシン〜直前で実装編〜
Perl勉強会#2資料
Perl勉強会#2資料
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
Ruby紹介(pdf)
Ruby紹介(pdf)
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
Perl6で遊ぼう
Perl6で遊ぼう
MTDDC Hokkaido : テンプレートタグでBrainf*ckを作ってみた
MTDDC Hokkaido : テンプレートタグでBrainf*ckを作ってみた
わんくま東京#38 LT 「Func<> と ref / out 小咄」
わんくま東京#38 LT 「Func<> と ref / out 小咄」
capistrano-colorized-stream
capistrano-colorized-stream
簡単便利!Laravel Homestead
簡単便利!Laravel Homestead
リーダブルコード 1.0'
リーダブルコード 1.0'
ハードウェア脳とソフトウェア脳
ハードウェア脳とソフトウェア脳
F#のコンピュテーション式
F#のコンピュテーション式
Plus de Yoshitaka Seo
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
Yoshitaka Seo
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Yoshitaka Seo
AI-900 ポイント解説
AI-900 ポイント解説
Yoshitaka Seo
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
Yoshitaka Seo
AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方
Yoshitaka Seo
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
Yoshitaka Seo
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
Yoshitaka Seo
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
Yoshitaka Seo
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
Yoshitaka Seo
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
Yoshitaka Seo
BIerのためのAI入門
BIerのためのAI入門
Yoshitaka Seo
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析
Yoshitaka Seo
チャットボットの自然言語処理
チャットボットの自然言語処理
Yoshitaka Seo
Custom Visionを活用するためのTips
Custom Visionを活用するためのTips
Yoshitaka Seo
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみよう
Yoshitaka Seo
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介
Yoshitaka Seo
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
QnA Maker 逆入門
QnA Maker 逆入門
Yoshitaka Seo
PowerApps アプリ開発入門
PowerApps アプリ開発入門
Yoshitaka Seo
Plus de Yoshitaka Seo
(20)
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
AI-900 ポイント解説
AI-900 ポイント解説
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AIの見方、AIとの付き合い方
AIの見方、AIとの付き合い方
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
BIerのためのAI入門
BIerのためのAI入門
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析
チャットボットの自然言語処理
チャットボットの自然言語処理
Custom Visionを活用するためのTips
Custom Visionを活用するためのTips
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみよう
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
QnA Maker 逆入門
QnA Maker 逆入門
PowerApps アプリ開発入門
PowerApps アプリ開発入門
Dernier
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Dernier
(11)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Rpn and forth 超入門
1.
瀬尾佳隆 (y.seo@seosoft.jp) Microsoft
MVP for Visual C# 技術ひろば.net 2010年7月 1
2.
瀬尾 佳隆 (せお よしたか) ◦ MVP for Visual C# (Jan 2009 – Dec 2010) ◦ 実は Forth 系の言語が大好き! ◦ メールは y.seo@seosoft.jp / Twitterは @seosoft ◦ 個人事業主です(屋号は瀬尾ソフト) ◦ 根っからの開発屋 インフラ苦手です ◦ どうでもいい情報としては、ミュージカルが大好きです 2
3.
真面目に聞いていただくセッションではありません ◦ 「何か身につく」とか「仕事に役に立つ」とか期待しては いけません でも、普段とは違う「物の見方」を通して視野を広げる参考になれば 多分途中で時間切れになります ◦ (意図的に)ページ数多すぎ そもそも30分でやるようなネタじゃないし w ◦ ついうっかり興味を持ってしまった方は資料をダウンロード して読んでください 3
4.
明日の仕事に全く役立たない技術でも 「楽しければいいじゃん!」ということを理解 (または同情)していただくこと 普段とは違う考え方を通して脳のストレッチをして いただくこと ついうっかり興味を持つ人が一人でも二人でも 出てくることを密かに期待すること 4
5.
RPN ◦ RPNとは ◦ RPNの具体例 ◦ 計算機内部の動き ◦ RPNの言語的特徴 Forth ◦ Forthとは ◦ Forthの基本的な文法 ◦ (デモ) 5
6.
逆ポーランド記法
6
7.
RPN = Reverse Polish Notation ◦ 逆ポーランド記法 演算子をオペランドの後ろに記述する方法 ◦ 後置記法とも言う ◦ 皆さんお馴染みなのは中間記法 HP電卓ではRPNで計算します ◦ HP-15Cなんて名機も 7
8.
中置記法
RPN 1+2 1 2 + (1 + 2) * (3 + 4) 1 2 + 3 4 + * 8.33 4 5.2 - * 8.33 7.46 - 8.33 ∗ 4 − 5.2 ÷ 8.33 − 7.46 ∗ 0.32 / 0.32 * 4.3 3.15 2.75 - 4.3 ∗ 3.15 − 2.75 − (1.71 ∗ 2.01) * 1.71 2.01 * - / • 頭から順番に計算できる • 括弧がいらない • 複雑な式でも1行で表現できる 8
9.
20 4 / の場合・・・20 / 4 Starting Forth http://www.forth.com/starting-forth/sf2/sf2.html 9
10.
20 4 / の場合・・・20 / 4 Starting Forth http://www.forth.com/starting-forth/sf2/sf2.html 10
11.
3 9 + 4 6 + * の場合・・・(3 + 9) * (4 + 6) Starting Forth http://www.forth.com/starting-forth/sf2/sf2.html 11
12.
3 9 + 4 6 + * の場合・・・(3 + 9) * (4 + 6) Starting Forth http://www.forth.com/starting-forth/sf2/sf2.html 12
13.
問題: 太郎君は鉛筆を1本、花子さんは鉛筆を2本持っています。 あわせて何本でしょうか。
中間記法 1+2 順番が・・・ 鉛筆1本 鉛筆2本 あわせて何本 RPN 1 2 + あら、キレイ 13
14.
問題: 太郎君は鉛筆を1本、花子さんは鉛筆を2本持っています。 あわせて何本でしょうか。 中間記法
RPN 1+2 1 2 + 1 足す 2 1と2を足す 日本語に似ている! 14
15.
RPNに基づくプログラミング言語
15
16.
RPNとデータスタック使用の考え方に基づいた プログラミング言語 言語仕様が非常に簡単 ◦ ワード(トークン)を辞書中で検索 ◦ 辞書中に見つかったら関連づけられたコードを実行 ◦ 見つからなかったら “数” と見なしてスタックに積む Forth プログラムは「ワードの並び」 ◦ Forth ではすべてがワードであり、演算子、制御構造、 組み込みの手続き、ユーザー定義の手続きの区別がない ◦ ワードが順番に並んでいるだけで、構文解析が不要 16
17.
スタック操作
処理 . スタックの1番目を取り出してコンソール出力 .s スタックの内容表示(値を取り出さない) clearstack スタックのクリア drop スタックの1番目を捨てる dup スタックの1番目を複製して上に積む over スタックの2番目を複製して上に積む swap スタックの1番目と2番目とを交換する rot スタックの3番目を取り出して上に積む nip swap drop と同じ tuck swap over と同じ 2drop drop drop と同じ 2swap 1番目/2番目の組と3番目/4番目の組とを交換する 17
18.
四則演算 ◦ + - * / mod ・・・想像通り 文字列 ◦ .s” 文字列” ・・・ .s” のあとに半角スペースが必要 ワード定義 ◦ : <ワード名> <コード> ; コロンで始まりセミコロンで終わる 制御構造 ◦ <条件> if <処理> else <処理> then ・・・if文 ◦ <終値> <初期値> ?do <処理> loop ・・・for文 ◦ begin <処理> <終了条件> until ・・・while文 18
19.
変数 ◦ variable <変数名> ・・・定義 ◦ <変数名> ! ・・・代入 ◦ <変数名> @ ・・・参照 浮動小数 ◦ f+, f-, f*, f/ など ・・・頭に f を付ける必要がある ◦ d>f, f>d ・・・小数化、整数化 19
20.
時間があれば・・・ 20
21.
今日のまとめと参考情報
21
22.
RPN ◦ 演算子をオペランドの後ろに記述する ◦ 頭から順番に計算していくことができる ◦ 日本語の文法に近いので日本人には実は案外理解しやすい 言語(かも?) Forth ◦ RPNとデータスタックを使ったプログラミング言語 ◦ 言語仕様が非常に簡単 ◦ Forth プログラムは「ワードの並び」 22
23.
HP-35s が今なら5000円くらいで買えるかも ◦ Amazonあたりで検索してください Windows上で動作する HP-15Cのエミュレータが あります ◦ http://www.thgsoft.ch/ThGHome_EN.html#HP15c 23
24.
Gforth ◦ ANS Forthの実装 ◦ http://sourceforge.jp/projects/freshmeat_gforth/ Starting FORTH ◦ http://www.forth.com/starting-forth/ Thinking FORTH ◦ http://thinking-forth.sourceforge.net/ 日本語プログラミング言語Mind ◦ http://www.scripts-lab.co.jp/mind/whatsmind.html ◦ 実は私にとっての Forth とは Mind のこと .NET用のForthコンパイラもあります ◦ DeltaForth / Forth in the .Net 3.5 Framework (ForthAPI) 24
25.
25
Télécharger maintenant