月別アーカイブ: 2023年02月

1 post

HTMLでのルビ付けプログラム

ブログの更新が滞っていて、「PDF教材をHTMLに変換する」という記事を書いてから、もう一年近くになります。

その時はプログラムの内容を殆ど何も書かなかったので、
今回はPythonで書いたプログラムの内容と、
それを機に、同じことをTypescript(Javascript)、GO、C++で書いてみたので、これらの言語の比較・感想を書いてみます。

最初に、ルビ付けプログラムの基本的考え方をみます。

簡単にいえば、辞書を用意しておいて、文書の中で当該漢字が出てくれば、その漢字をルビづけのHTML文字列で置き換えればいいのです。

文字列がコンピュータの中でどのように扱われているかは結構複雑で難しい問題ですが、
現在のプログラミング言語では、低レベルの仕組みを熟知していなくても、プログラミングできるようになっています。

文書の中で特定の文字を探し出し、他の文字と置換する関数(仕組み)は、大抵は2種類用意されています。

一つは文章の中に、示された文字列が完全に一致する文字列が含まれているかどうを探すいわば原始的探索で、もう一つはもっと複雑な質問に答える正規表現というものです。

正規表現のお馴染みのものはワイルドカードで、たとえば文書ファイルをみつけるために「*」を使って、「*.txt」と書いて拡張子が[txt]の文書にマッチするものをすべて探し出します。

昔私がPerlを頻繁に使用していたのは、Perlの正規表現がとても強くまた使いやすかったからです。

現在プログラミング言語としてのPerlは人気がなくなりましたが、最近のプログラミング言語は皆Perlを見習って、正規表現の充実を図っています。

今回の作業は、しかし、正規表現を使うまでもないと思います。

続きを読む