GridPietGeneratorを更新しました。 バグフィックス 一部処理系でビルド時にエラーとなるのを修正(返り値の指定忘れ) 引数の変更 入力ファイル名(処理手順を書いたテキストファイル)は、オプションなしで指定 出力ファイル名は下表のように指定 オプショ…
今回のテーマは「10の階乗」です。 プログラミングでは定番の「再帰関数」をPietで実装します。 階乗 数学ででてくる「10!」というもので、 10から1までの整数全ての積のことです。 具体的に計算すると、 10!=10×9×8×...×2×1=3628800 となります。 再帰関数 …
Pietでプログラミングしていると文字出力のためにASCIIコード表が欲しくなります。表を作ること自体は難しくありません。でもめんどくさい。 そういう面倒なことはプログラムにお任せするのが良いと思います。というわけでPietで書いてみました(なぜ) 概要…
前回に引き続き暗号化プログラムの作成をします。 今回扱うのはヴィジュネル暗号です。 ヴィジュネル暗号とは 今回も前回同様、英語(アルファベット)の文章を暗号化することが前提です。 前回のカエサル暗号は、平文(暗号化前の文章)の各文字を、アルフ…
今回はカエサル暗号を作るPietプログラムを作ってみました。 カエサル暗号とは 以下、英語(アルファベット)の文を暗号化する前提で説明します。 カエサル暗号とは、平文(暗号化前の文章)の各文字を、アルファベット順に一定の文字数だけずらして暗号文を…
こんにちは。先日1年半ぶりに投稿して、円周率の近似値を表示するプログラムを作ってみました。 ymos-hobby-programing.hatenablog.com 今回はこのプログラムの仕組みを解説をしていきたいと思います。 ソースコードおさらい 円周率の近似値を表示するプロ…
お久しぶりです。約1年半ぶりに来ました。 言い訳 生活環境が変わり外に出る趣味に興じることが多くなったため、更新を一時中断していました。 そしてこのほど超久しぶりにブログの管理画面を開いたのですが、 こんなニッチな内容にもかかわらず 見に来てく…
どもです。 Piet入門編、続きです。 今回は、npietについて書きます。 npiet 毎度しれっと出てくる「npiet」さんですが、 一体何者なのか、解説します。 概要 npietはPietインタプリタのひとつです。 つまり、Pietのソースコードを読み込んで、実行してくれ…
どもです。 Piet入門編の続きです。今回は命令について解説します。 本当はあまり書く気がなかったのですが、 pointer命令とswitch命令の解説がされていないことに気づいたので、 もういっそ全部説明してまえ!ということで、解説します。 Pietの命令 Piet命…
どもです。 今回もPiet入門編です。 前回の最後に、「次回で完結」とかいっていましたが、 よく考えたら、pointer命令とswitch命令の説明をしていなかったので、 命令の説明がてら、もう1〜2回は入門編が必要ですね。むむむ。 では本日のメニューを。 Piet…
どもです。 意地の連投、今日も行くぜよ。 Pietの移動ルール Pietの移動ルール解説!(続き) 移動ルール2:Pietインタプリタが進めない場合 1:黒コーデル 2:画像の外には出られない Pietが進めなくなった時 移動ルール1(続き):カラーブロック内を…
どもです。 時間かかると言った割には早く書き上げることができました() 前回、Pietの概説と、色と命令の関係を説明しました。 今回は、Piet入門編の2回目です。 本日のメニューはこちら Pietの移動ルール Piet用語:カラーブロック 移動に関するパラメー…
どもです。 いよいよ今回からPietそのものの解説です。 何をいまさら 感がすごいですが、気にせず解説します。 Pietとは そもそもPietとは、David Morgan-Mar氏が考案した難解プログラミング言語です。 特徴はご存知の通り、ソースコードが画像であることで…
どもです。 はてなブログは9/7にメンテをするそうですが、 筆者は昨日メンテを行っていました(何) 1日おいての更新です。 今回は予告通り番外編B、命令チートシートその2です。 以前もチートシート書きましたが、その時にgoto命令と ラベルの解説が抜け…
どもです。 チートシートを書くと言っていましたが、番外編です。 GridPietGeneratorに関して、お知らせです。 サンプルソースコードを公開しました これまでブログで上げてきたGridPietGenerator用の サンプルプログラムを、githubにあげました。 ブログに…
どもです。 GridPietGeneratorの 入門編、第6弾です。 今回で命令全て説明するぞー! 「ohce」を実装する 今回のテーマは「ohce」です。 「ohce」を知ってますか? 多分ご存知ないのではと思います。 いま私が命名しましたゆえ。 「echo」を逆から書くと「o…
どもです。 GridPietGeneratorの 入門編、第5弾です。 今回のお題は時刻演算です。 なぜ入門編で時刻演算かって? まだ紹介できていない命令を紹介するためです。 うまいこと盛り込もうとすると、時刻演算がぴったりな題材だったってだけです。 時間の足し…
どもです。 今回もGridPietGeneratorの 入門編をお送りします。 今回は、ループ処理の応用2回めです。 おさらい ループ処理の基本は以下の3点です。 ループのプログラムテンプレを書く コメント「#1」の行で、スタックを初期化する コメント「#2」の行で、…
どもです。 GridPietGeneratorの 入門編、第3弾です。 今回はループの応用編です。 ループ処理色々 前回説明したループ処理を改造して、色々な処理をしてみましょう。 基本形は、前回紹介したこのプログラムです。 push3 dup mul #1 :loop dup if::end dup …
('21/8/21 追加)pop命令の解説を追加 ('21/8/27 追加)チートシートその2が出来ました どもです。 入門編「A」です。16進数ではありません。 アルファベットです。番外編その1です。 今回は、前回の解説で出てきた命令をまとめます。 ちなみに、前回の…
('21/8/21 追加修正)プログラムにpop命令を追加・解説 どもです。 前回から筆者は、手を抜く継続して投稿するために、 GridPietGeneratorの 入門編、つまり、GridPietGeneratorの遊び方講座を開催しています。 今回は、いわゆるforループ的なものの作り方…
どもです。 前回までの、あまりの超大作(量的な意味で)に 疲れてしまったので、ちょっと趣向を変えます。 これまで紹介してきたGridPietGeneratorですが、 まともに説明していなかったので、今回からは 処理フローファイルの書き方の説明をしようかと思い…
更新放置し早2週間、はてなさんにまた声かけられる前に、 前回の続きを書くことにします。 概要 Pietのスタックを、あたかも通常のメモリのように使うべく、 メモリ操作の基本となる「メモリアドレス変換関数」を作っていました。 解説が長くなったため、途…
前々回まで、Pietのスタックを、あたかも通常のメモリのように使う方法を考えていました。 ymos-hobby-programing.hatenablog.com そこで、前回は、全てのメモリ操作の基本となる 「メモリアドレス変換関数」を設計したところで終わっていました。 ymos-hobb…
前回投稿したPietコードが、解説するにはあまりにも鬼畜なので、 体力温存の意味も込めて、ちょっと脱線します。 前回(前々回?)の解説でいきなり出てきた、この画像 スタックの状態を表すのに、ちょうど良い画像ですが、 実はこれ自前です。 しかもペイン…
今日は昨日に引き続き、スタック内のランダムアクセスをするための Pietコードを書いていきます。 おさらい ざっと昨日のおさらいです。 Pietでは、メモリはスタックで管理され、基本的にはスタックトップの値しか操作できません。 スタックトップのdとeのみ…
今日のPietです。 拙作「GridPietGenerator」を使って、 テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマ 今回のテーマは壮大です。 「Pietのスタック内のメモリにランダムアクセス…
今日のPietです。 拙作「GridPietGenerator」を使って、 テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマは「順序判定」です。 順序判定をするPietソースコード 概要 スタックに積…
今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今日のテーマについて さて、前回スタックに積まれた数の合計値を求める関数「sum」を作…
今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマは「合計」です。 合計を求めるPietソースコード 概要 スタックに積まれてい…