Piet

[Piet]10の階乗

今回のテーマは「10の階乗」です。 プログラミングでは定番の「再帰関数」をPietで実装します。 階乗 数学ででてくる「10!」というもので、 10から1までの整数全ての積のことです。 具体的に計算すると、 10!=10×9×8×...×2×1=3628800 となります。 再帰関数 …

[ご挨拶]お久しぶりです

お久しぶりです。約1年半ぶりに来ました。 言い訳 生活環境が変わり外に出る趣味に興じることが多くなったため、更新を一時中断していました。 そしてこのほど超久しぶりにブログの管理画面を開いたのですが、 こんなニッチな内容にもかかわらず 見に来てく…

[Piet入門編]npietの使い方

どもです。 Piet入門編、続きです。 今回は、npietについて書きます。 npiet 毎度しれっと出てくる「npiet」さんですが、 一体何者なのか、解説します。 概要 npietはPietインタプリタのひとつです。 つまり、Pietのソースコードを読み込んで、実行してくれ…

[Piet入門編]Piet入門4

どもです。 今回もPiet入門編です。 前回の最後に、「次回で完結」とかいっていましたが、 よく考えたら、pointer命令とswitch命令の説明をしていなかったので、 命令の説明がてら、もう1〜2回は入門編が必要ですね。むむむ。 では本日のメニューを。 Piet…

[Piet入門編]Piet入門3

どもです。 意地の連投、今日も行くぜよ。 Pietの移動ルール Pietの移動ルール解説!(続き) 移動ルール2:Pietインタプリタが進めない場合 1:黒コーデル 2:画像の外には出られない Pietが進めなくなった時 移動ルール1(続き):カラーブロック内を…

[Piet入門編]Piet入門2

どもです。 時間かかると言った割には早く書き上げることができました() 前回、Pietの概説と、色と命令の関係を説明しました。 今回は、Piet入門編の2回目です。 本日のメニューはこちら Pietの移動ルール Piet用語:カラーブロック 移動に関するパラメー…

[Piet入門編]Piet入門1

どもです。 いよいよ今回からPietそのものの解説です。 何をいまさら 感がすごいですが、気にせず解説します。 Pietとは そもそもPietとは、David Morgan-Mar氏が考案した難解プログラミング言語です。 特徴はご存知の通り、ソースコードが画像であることで…

[今日のPiet]GridPietGenerator入門編B(命令チートシート2)

どもです。 はてなブログは9/7にメンテをするそうですが、 筆者は昨日メンテを行っていました(何) 1日おいての更新です。 今回は予告通り番外編B、命令チートシートその2です。 以前もチートシート書きましたが、その時にgoto命令と ラベルの解説が抜け…

[今日のPiet]GridPietGenerator入門編6(ユーザー入力2)

どもです。 GridPietGeneratorの 入門編、第6弾です。 今回で命令全て説明するぞー! 「ohce」を実装する 今回のテーマは「ohce」です。 「ohce」を知ってますか? 多分ご存知ないのではと思います。 いま私が命名しましたゆえ。 「echo」を逆から書くと「o…

[今日のPiet]GridPietGenerator入門編5(ユーザー入力1)

どもです。 GridPietGeneratorの 入門編、第5弾です。 今回のお題は時刻演算です。 なぜ入門編で時刻演算かって? まだ紹介できていない命令を紹介するためです。 うまいこと盛り込もうとすると、時刻演算がぴったりな題材だったってだけです。 時間の足し…

[今日のPiet]GridPietGenerator入門編4(ループの応用2)

どもです。 今回もGridPietGeneratorの 入門編をお送りします。 今回は、ループ処理の応用2回めです。 おさらい ループ処理の基本は以下の3点です。 ループのプログラムテンプレを書く コメント「#1」の行で、スタックを初期化する コメント「#2」の行で、…

[今日のPiet]GridPietGenerator入門編3(ループの応用1)

どもです。 GridPietGeneratorの 入門編、第3弾です。 今回はループの応用編です。 ループ処理色々 前回説明したループ処理を改造して、色々な処理をしてみましょう。 基本形は、前回紹介したこのプログラムです。 push3 dup mul #1 :loop dup if::end dup …

[今日のPiet]GridPietGenerator入門編A(命令チートシート1)

('21/8/21 追加)pop命令の解説を追加 ('21/8/27 追加)チートシートその2が出来ました どもです。 入門編「A」です。16進数ではありません。 アルファベットです。番外編その1です。 今回は、前回の解説で出てきた命令をまとめます。 ちなみに、前回の…

[今日のPiet]GridPietGenerator入門編2(カウンタ付きのループを作る)

('21/8/21 追加修正)プログラムにpop命令を追加・解説 どもです。 前回から筆者は、手を抜く継続して投稿するために、 GridPietGeneratorの 入門編、つまり、GridPietGeneratorの遊び方講座を開催しています。 今回は、いわゆるforループ的なものの作り方…

[今日のPiet]GridPietGenerator入門編1(無限ループを作る)

どもです。 前回までの、あまりの超大作(量的な意味で)に 疲れてしまったので、ちょっと趣向を変えます。 これまで紹介してきたGridPietGeneratorですが、 まともに説明していなかったので、今回からは 処理フローファイルの書き方の説明をしようかと思い…

[今日のPiet]スタック内のランダムアクセス(4)

更新放置し早2週間、はてなさんにまた声かけられる前に、 前回の続きを書くことにします。 概要 Pietのスタックを、あたかも通常のメモリのように使うべく、 メモリ操作の基本となる「メモリアドレス変換関数」を作っていました。 解説が長くなったため、途…

[今日のPiet]スタック内のランダムアクセス(3)

前々回まで、Pietのスタックを、あたかも通常のメモリのように使う方法を考えていました。 ymos-hobby-programing.hatenablog.com そこで、前回は、全てのメモリ操作の基本となる 「メモリアドレス変換関数」を設計したところで終わっていました。 ymos-hobb…

[誰得ツール]スタック描画プログラム

前回投稿したPietコードが、解説するにはあまりにも鬼畜なので、 体力温存の意味も込めて、ちょっと脱線します。 前回(前々回?)の解説でいきなり出てきた、この画像 スタックの状態を表すのに、ちょうど良い画像ですが、 実はこれ自前です。 しかもペイン…

[今日のPiet]スタック内のランダムアクセス(2)

今日は昨日に引き続き、スタック内のランダムアクセスをするための Pietコードを書いていきます。 おさらい ざっと昨日のおさらいです。 Pietでは、メモリはスタックで管理され、基本的にはスタックトップの値しか操作できません。 スタックトップのdとeのみ…

[今日のPiet]スタック内のランダムアクセス(1)

今日のPietです。 拙作「GridPietGenerator」を使って、 テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマ 今回のテーマは壮大です。 「Pietのスタック内のメモリにランダムアクセス…

[今日のPiet]順序判定関数

今日のPietです。 拙作「GridPietGenerator」を使って、 テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマは「順序判定」です。 順序判定をするPietソースコード 概要 スタックに積…

[今日のPiet][デバッグ]合計値を求める関数「sum」

今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今日のテーマについて さて、前回スタックに積まれた数の合計値を求める関数「sum」を作…

[今日のPiet]合計を求める関数sum

今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマは「合計」です。 合計を求めるPietソースコード 概要 スタックに積まれてい…

[今日のPiet]最大値を求めるPietコード(完全版)

今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマは「最大値」です。 以前も作りましたが、今回は負数込みでmaxを算出できるP…

[今日のPiet]atoi関数

今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今日のテーマについて 昨日(というか今日か)Pietで「最大値」を算出するコードを作りま…

[今日のPiet]最大値を求めるPiet

今日のPietです。 拙作「GridPietGenerator」を使って、テキストベースで書かれた「処理フローファイル」から、 所望の処理をするPietソースコード画像を生成します。 今回のテーマは「最大値」です。 最大値を求めるPietソースコード 概要 スタックに格納さ…

[今日のPiet]疑似乱数を出力するPiet

それでは今日もいきます。 というか、日付変わってるから、実は1日飛ばしちゃったことになるけど気にしない。 本日のお題 漸化式を計算するPiet まず作ったのが、漸化式を計算するプログラム。 漸化式、何それ、おいしいの? 漸化式は数列を作るための規則と…

[今日のPiet]九九表を出力するPietコード

前記事を書いてから1ヶ月経ちました。 週2回更新するというモチベーションは、現在長期旅行中で不在です。 しかし、「そろそろ新記事を書きませんか?」 と、はてなさんにすすめられてしまいました。 すみません。書きます。 九九表を出力するPietソースコ…

作ってみた:Pietコード埋め込みプログラム(2)

前回に引き続き、 難解プログラミング言語「Piet」の 話です。 今回は後半戦、本題です。 今回の成果物ダイジェスト hello,world富士山つくるよ! 富士山どこにいるかわかりにくいけど! 「hello,world富士山」 なんとこの富士山・・・。 「hello,world富士…

作ってみた:Pietコード埋め込みプログラム(1)

難解プログラミング言語「Piet」の ソースコードを画像に埋め込んでみました。 長いので2部構成(予定)です。 今回は前半部分で、Pietソースコードの自動生成をしてみました。 ざっくりとPietの説明はしますが、基本的にはPietを知っている方に向けた記事で…