ユニコードへ

ユニコードについての説明文書を更新しました。前の版は,2013年10月版ですから,10年ぶりの更新です。https://tbasic.org/reference/202308ToUnicode.pdf

近日中に tbasicをtbasicを1.6にバージョンアップします。その前に,関連する文書として公開することにしました。tbasicでの説明文書の中にユニコードについての用語等が出てきますが,それらを理解する上での基礎知識がまとめてあります。

2013年10月版のタイトルは「ユニコード」です。今回,2023年08月版のタイトルは「ユニコードへ」です。更新内容は,大幅な内容追加です。前の版は7ページでしたが,今回の版は51ページです。改版というより,新たに書いたといった方が良いかもしれません。ただ趣旨は前回と同じで,ユニコードに対する入門的な解説文書です。私自身ユニコードの専門家でないので,私が勉強をして,理解した内容をまとめたものです。私自身への覚書といってもいいかもしれません。

今回,tbasicを1.6にバージョンアップする際に,必要な(主に技術的な)知識を得るために,ユニコード関連の情報を色々読んで得た内容が主ですが,それだけでなく,ユニコードが普及する以前の状況,ユニコードの始まりの状況についても調べてみました。今回はそれらを纏めて,「ユニコードへ」というタイトルにしました。

少し長い文書ですが,ユニコードについての全体的な事柄が,分かるのではと思います。技術的な部分は,プログラミングを念頭に書いているので,その部分は必要な時に読むとして,最初は飛ばして読むのが良いと思います。

全体の内容は,以下の通りです。

目次
  • 第I部 ユニコードへ
    • 1 ユニコードとは {4頁}
    • 2 標準化への動き {4頁}
      • 2.1 7ビット符号 {5頁}
      • 2.2 8ビット符号 {8頁}
      • 2.3 文字集合の切り替え(ISO/IEC 2022)} {11頁}
    • 3 日本語環境 {14頁}
      • 3.1 符号化文字集合 {14頁}
      • 3.2 日本語の文字符号化方式 {19頁}
    • 4 ユニコードへ {29頁}
      • 4.1 始まり} {29頁}
      • 4.2 Unicode Ver.1(1991) {29頁}
      • 4.3 Unicode Ver.2(1996) {30頁}
      • 4.4 Unicode Ver.3(2000) {31頁}
      • 4.5 Unicode Ver.4(2003)とその後 {31頁}
      • 4.6 Unicodeの成果 {32頁}
  • 第II部 ユニコードの仕組み{33頁}
    • 5 ユニコード{33頁}
      • 5.1 符号化文字集合 {33頁}
      • 5.2 ユニコードの文字符号化方式 {36頁}
      • 5.3 Endian {37頁}
    • 6 UTFの仕組み {38頁}
      • 6.1 UTF-32 {38頁}
      • 6.2 UTF-16 {38頁}
      • 6.3 UTF-8 {39頁}
      • 6.4 BOM {41頁}
    • 7 正規化(normalization)}{43頁}
      • 7.1 結合文字 {43頁}
      • 7.2 等価性 {44頁}
      • 7.3 正規化 {45頁}
    • 8 フォント{46頁}
      • 8.1 フォント {46頁}
      • 8.2 日本語用のフォント {47頁}
      • 8.3 世界のフォント {49頁}
    • 9 まとめ {51頁}

Winidows 11

遅ればせながら,私も Windows 11が使えるようになりました。早速,tbasic 1.5の動作確認をしました。1.5はWindows 11 を認識できませんから,起動画面は,Windows 10 と同じで,

Windows 11 上でのtbasic1.5の起動画面

となります。samplesにあるプログラムも動作確認をしました。Fontサイズの微調整が必要なものもありましたが,これ以外は,特に問題なく,動作しました。画面表示は,Windows 10 と11では余り差異は無いようです。

期待通りと言うか,予想通り,問題なく動作するようです。取り敢えず一安心です。

新サーバー

tbasic.org のホームページのあるサーバーが新しくなりました。旧サーバーで使用されていた,OSが,メンテナンス期限が切れる時期になったので,これを機に新しいサーバーに新しいOSをインストールして,そちらに移転しました。特に今までと大きな違いはないのですが,新サーバーでは,サーバー証明書も取得しましたので,鍵マークの付いた
https
による接続で,「安全な接続ではありません」と言った表示が出なくなりました。つまり,「安全な接続です」ということですが,実際は,このサイトでは公開情報しか扱わないので,今までも危険な接続ではありませんでした。

tbasicセット 1.51を公開しました。

tbasicセット 1.51(tbw151set.zip)を公開しました。

 本体の言語機能は1.502と同じですが,
・Basic入門の閲覧形式を,webベースから,pdfベースに変更。
・それに伴い,Basic入門の文書の全体的な調整,例プログラムの追加。
が更新内容の主なものです。

 pdfベースにした理由は,最近のwebブラウザ(特に新Edge)のpdf閲覧機能では,(しおりや,添付ファイルが利用できないなど。)入門文書として使いづらいことです。

 より詳細な更新内容はこちらをご覧ください。
http://www.tbasic.org/whatsnew/index.html

プログラミングの背景で「エラトステネスの篩」を公開しました。

プログラミングの背景で「エラトステネスの篩」を公開しました。

http://www.tbasic.org/reference/numbertheory/202006Eratosthenes.pdf

旧ホームページでの「エラトステネスの篩」の更新ということですが,今回は大幅に
加筆しています。
書き始めた当初は,もっとあっさりとするつもりでしたが,書いてくるうちに,色々疑問もでて,考えるとともに,色々な文献を調べたりしました。そのうちに,いわゆるエラトステネスの篩だけでなく,その改良版についての全体的説明を纏めたいと思うようになりました。その結果,全体で,94ページにもなりました。

内容は,実際に見てもらうと早いですが,以下の通りです。
・基本篩(これが元々のエラトステネスの篩です。)
・改良篩
・車輪篩
・リスト篩
・既約篩
そして,
・区分法(これは篩法ではなく,篩を分割して実行する技法です。)
等について,かなり詳しく説明しました。恐らくこれほど詳しい内容は,日本語の文献では見かけません。エラトステネスの篩について興味のある人に参考になれば,と思っています。

付録として,ここで説明した方法を使って,大きな素数表の作成にチャレンジしました。勿論,tbasicでそれを行うのは無理ですから,ここでは,C#を使いました。その結果,

・既約篩法を使って,一度の篩で,10^10までの素数表を作成することができました。
更に,区分法を併用することで,
・10^13までの素数表を篩うことができました。
(10^13までの素数表を作る試みはネット上でもいくつか見られますので,これ自体は全く新しいというものではありません。ただあまり技巧的ではない,標準的なプログラミングで実行したという意義はあるかもしれません。)

私自身,書いていて勉強にもなり,楽しむこともできました。私のコンピュータ環境(エントリー的なデスクトップ機)ではこれ以上の計算は無理なので,一応ここまでとして,公開しました。

1.501,1.502を公開しました。

1.501,1.502を公開しました。

立て続けにバグの修正版を公開しました。いずれも,掲示板,ブログでのコメントによる指摘です。
「このような単純なバグがまだ残っているのか」という感じですが,これらはいずれも,バージョンアップに伴うコード修正の時に,誤って紛れ込んだバグです。

一応チェックをしてから公開をしているのですが,やはりバグがあります。気が付いたら,掲示板等で指摘して頂けると有難いです。

時間をみて,全体的なチェックを少ししてみたいと思います。

tbasic 1.50を公開しました。

tbasicセット1.50を公開しました。
tbw150set.zip: http://www.tbasic.org/downloads/index.html
です。

更新内容は,Windows 10 版の正式対応です。

tbw1239set の公開から5か月余り,比較的短い期間での更新です。これは,tbw1239setの同梱文書の完成が遅れていたためです。1.50の開発自体は少し前から始めていて,ここ数か月は主に微調整を行っていました。

1.2系でもWindows 10 上で動作しましたが,開始画面でのOS表示が,動作しているOSがWindows 10 であっても Windows 8 と表示されていました。
tbasicの開発自体は,ここしばらく前から,Windows 10 上で行っていましたが,利用しているコンパイラが少し古いことなどの理由からでした。

今回公開したtbasicはWindows 10をターゲットとした新しいコンパイラでコンパイルされています。そのために内部的なコードの修正・削除・追加,
更に機能強化を行いました。言語機能は基本的に変更はありませんが,1.2系に比較して,

  1. 新しいコンパイラを使ったこと
  2. 内部的なコードの修正をかなり行っていること
  3. かなりファイルサイズが大きくなったこと
  4. 利用環境の向上があったこと

から,バージョン番号を少し飛ばして,1.50としました。Windows 10上での動作の安定性が増したと思います。ボタン等の外観も微妙に変更され,少し新しい雰囲気になっています。また,動作しているOSがWindows 10 なら開始画面で Windows 10 と表示されます。

少し詳しい更新内容は更新記録
http://www.tbasic.org/whatsnew/index.html
にあります。

tbasic セットの更新

tbasicセットを久しぶりに公開しました。
tbw1239set.zip: http://www.tbasic.org/downloads/index.html
です。

 更新内容は,Basic入門のpdf化が終わったのを受けて,それらpdf文書をtbasicのBasic入門よりブラウザを使って読むようにしたものです。それに伴い,従来のBasic入門BTutor.chmを廃止しました。

 tbasic本体も少し調整しました。内容はエディターのフォント表示の不具合の修正です。

 更新の仕方は,旧来の TBasicフォルダに解凍してできる新しいTBasicフォルダを上書きするだけで可能です。
 旧版を残す場合は,別な場所に新しいTBasicフォルダを置いてください。
tbasic.ini がある場合は,新しいTBasicフォルダ旧版のiniをコピーすれば使えます。

 これで,Basic入門のpdf化関係が一段落しました。種々の事情からBasic入門のpdf化に随分と時間が掛かってしましました。これから暫くはtbasic本体の更新に力を入れたいと思っています。

 言語そのものの機能アップは少し先のこととして,まずは

  1. Windows 10 への正式対応
  2. プログラミング環境の向上

を目標とするつもりです。

BASIC入門の更新

随分と時間が掛かってしまいましたが,やっと

BASIC入門:

http://www.tbasic.org/tutorial/index.html

「構造化プログラミング(2018年04月版)」の追加です。

  • これは tbasic に同梱されているBTutor.chmの「構造化言語としてのBASIC」の加筆修正版です。基本方針は変わっていませんが,大幅に書き直しをしています。全体で55頁です。構造化プログラミングについての比較的詳しい一般的な内容も多いので,必ずしもtbasicを使っていなくても,参考になるかも知れません。また,pdf版の方が,chm版より随分と読みやすくなっています。

これで,BASIC入門のpdf化が一応すべて終わりました。

やっと次(tbasic本体の更新作業)に進みます。

1 2 3