結論から言うと、構造化プログラミングには、大学教授ですら理解できないようなコードが存在する。しかも、それはたったの数十行である。 今回はそのコードを紹介するとともに、「ソフトウェアの専門家を育てること」の重要性を訴えていきたい。読者はこの記…
いろいろと数学やプログラミングについて調べているが、いくつかの点で重大な疑義が生じてきた。 もし、時間があれば、このブログで何らかの報告ができるかもしれない
仕訳を集計できるSVGの拡張言語 SVGはXML文書なので、独自にタグを定義して、仕訳の簡単な集計ができるSVGベースの言語を作ってみた。とはいっても、貸借対照表は作ることができず、借方と貸方それぞれの勘定科目をJavaScrpitで合計して、テキストで表示でき…
ラムダ計算の文法に着目すれば、ラムダ計算は一つのゲーデル数で表すことができることを示す。 例えば、λx.xというラムダ式があって、次のように文字ごとに自然数を割り振っていこう。ただし、空白は無視できるものとする。 "λ" - 1"x" - 2"." - 3"(" - 4")"…
はじめに 目次 はじめに 目次 前回までのおさらい 記事の注意点 ダイクストラ・メッセージの構造化原理 ダイクストラが提唱したダイクストラ・メッセージ ダイクストラ・メッセージの構造化原理 手続き型プログラミングから構造化プログラミングへ 数え上げ(…
Java言語のビルドツール「Maven」 Java言語で開発するために、ビルドツールのMavenを導入したので、自分用にメモしておく。開発環境はCygwin(Windows11)、Geany1.38 ダウンロードして解凍 まず、 Maven – Download Apache Maven から「apache-maven-3.9.3-bi…
はじめに 今回の記事では、PASCAL言語*1のポインタについて解説していく。ポインタを通じて、ややこしい構造化プログラミングを理解しよう。 記事の注意点 初期段階のチャーチの提唱 (Church's Thesis)「計算可能=再帰的」は非構造化 チャーチの定理 (Church…
構造化プログラミングに関係する科学者たちの出身国 はじめに この記事では、Wikipediaを使って、構造化プログラミングの関係者たちの出身国を調べた。Wikipediaの記事が出典不明だった場合、国名の後ろに?(疑問符)を付けておく また、敬称は略す。国家名…
はじめに ダイクストラの「構造化プログラミング」について歴史を年表としてまとめてみた。 技術革新は基礎研究の積み重ねによるものだ。このことをもっと理解してもらいたいという考えが、この年表をつくった私の動機である。(初版2023/02/02) 注意事項とし…
goto文+if文=while文、ただし、オブジェクトでgoto文は有害 用語について 以下、「オブジェクト (対象、object)」、「クラス (class)」、「サブクラス (部分クラス、subclass)」、「インスタンス (実例、instance)」、「this」、「new」は1972年版の構造化プ…
「dhrnameのブログ」に名前変更 このブログの名前を「dhrname's diary」から「dhrnameのブログ」へ変えました。よろしくお願いします。名前は変更しましたが、ブログで取り扱う話題は同じままです。
データ構造化における抽象化の定義 前回 オブジェクトクラス同士でのダイクストラ連接 - 構造化プログラミングの覚え書きその4 - dhrnameのブログ ホーアの「データ構造化序論」 75年に翻訳され出版された『構造化プログラミング』*1の第二部で、ホーアは「…
この記事について 前回 データ構造化理論の型選択演算子によるダイクストラ選択 - 構造化プログラミングの覚え書きその3 - dhrname’s diary 今回は構造化プログラミングで触れられているオブジェクトクラス同士のダイクストラ連接について考察を加える。なお…
第二部のデータ構造化序論を取りあげる。制御構造であるダイクストラ選択の型選択子について見ていこう
型の定義 べき集合から型 (type)を作り出して、さらにそのべき集合のそのまたべき集合を型と見なして階層的に作りだしていく。 Xのべき集合をP(X)と書くこととする。 例えば、集合Xに対して、 X := {a, b, c} A型 := P(X) = { ∅, {a}, {b}, {c}, {a, b}, {b,…
前回 構造化プログラミングの覚え書き - dhrname’s diary 構造化プログラミングの72年書籍版は三部構成 1972年に出版された構造化プログラミングは以下のように三部構成である。 ダイクストラの構造化原理(原理) ホーアのデータ構造化(理論) ダールのク…
まだ、計画の段階なのだが、ちょっとしたプログラミング言語のコンパイラを開発している。計画倒れにならないことを祈りつつ、ここで追って報告したい。
昨日、Windows11へアップデート 昨日の1月31日に、Windows10 Home からWindows11へアップデートした。今のところ、問題はなさそうだ。 その際のPCの仕様は以下の通り。なお、この仕様でアップデートを保証するわけではない。 PCの仕様 CPU: Intel Core i5-11…
Ubuntu(64ビット版)をVirtualBox6.1の仮想環境で動かそうとして、問題となった点をメモ。 環境は、Windows10 (Home)、Intel core i5 (11400)。マザーボードがPRIME B560M-A。 UEFIとBIOSの設定 まず、UEFIかBIOSをチェックしてみて、「CPU mode」の「Int…
今、現在、日本で起きているソフトウェアの危機とは、以下の疑似コードを理解できない人がいると言うことだと思う。 { int x = 0; { int y= 1; int f (int n) { int g (int m) { return n+m+x+y; } return g(12); } printf("%d\n", f(10) ); // 23を出力 }} …
構造化プログラミングに関するメモ
まだ、書きかけだけど https://joestar.sakura.ne.jp/objectorientedstructured.txt
メールアドレスが新しく 古いメールアドレスから、さくらのメールアドレスへ変更した。新しいメールアドレスは以下の通り 新メールアドレス dhrname@joestar.sakura.ne.jp 古いメールアドレスは使わないことに 古いメールアドレスの方は、もう使用せず、応答…
クラスとデータ型を分離させてみた シンプルなアイデアなので、ここにメモ。オブジェクト指向プログラミングのクラスと、データ型を分離させてみようという考えで、あまり、難しいことはしない 疑似コードで以下のとおり、書いてみた 疑似コード class List …
Windows 10 (64ビット)の環境に、MSYS 2を導入してみた。当初は、Cygwinをインストールしてみたが、色々とあって、MSYS 2をインストール。 いろいろと試してみたいので、pacmanでいろんなソフトを導入したいと思う。
C言語で開発中
古いPCにlinuxBeanをインストールしてみた 以下のプロジェクトサイトから、linuxBeanのISOファイルを手に入れて、古いWindows PCにインストールした。 linuxBeanのプロジェクトページ linuxBean Project Top Page - OSDN Windows PCの仕様 FMV NF40T CPU: イ…
この記事を見て、はてなブログで、SVGタグを直接、表示できたので、報告を。インラインSVGを表示させることに成功したよというお話 やり方 「記事を書く」-> 「HTML編集」を選ぶ code要素でsvg要素を囲む<code><svg ..></svg></code>のような感じ 「プレビュー」で確認して公開する 注意…
SIE プロジェクトで開発をしている最中に、買った本が4冊ある。 そのうち、一冊は、Kernighanの「プログラミング作法」(アスキー社)で、コードの書き方を覚えるのに役立った。コードのスタイルだけではなくて、テストの際に気を付けるべき点も記されてあっ…
このブログだけで通用する用語について 次に定義する用語は、このブログだけで使用する。よそで使っても、意味は通じないので、ご注意ください。 定義 計算書 計算の手順を書いたドキュメント。または、その手順を実装するためのソースコード 計算書き 計算…