年末恒例となりました今年の進捗です。今年は 2 月に ver.0.97 をリリースした後はデバッグや仕様の軽微な変更を行いつつ、ドキュメントシステム Paradocs(パラドックス)の機能拡張と、それを用いた文書整備を行っていました。いや、正確に記すなら、Paradocs を使って文書整備を行っていたら、不具合や不都合が発生したので、それらにひとつひとつ対応していった、という状況となります。
なお、Paradocs とは Paraphrase で記述されているドキュメントシステムであり、特徴としては索引の自動作成に対応している点が挙げられます。シングルソース・マルチユースなドキュメントシステムであり、HTML 版と TeX 経由の PDF 版を最終成果物として生成します。
Paraphrase は Forth 系の言語であるため、ワードに関する索引が重要となります。しかし、索引生成に対応しているシングルソース・マルチユースなシステムであり、HTML 版と PDF 版の出力をサポートしているドキュメントシステムが見つけられなかったため、しょうがなく自作している…といった状況です。
…と、このような状況なので、この記事を言語実装アドベントカレンダーに載せて良いものかどうかと一瞬悩みましたが、自作言語の場合、文書整備も重要な作業であるという思いから掲載してしまっています(論理的には少々無理がある説明ですが、まあ、それはそれとして…)。
進捗その1
冒頭にも書いたように、ver.0.97 のリリースができました。ver.0.96 では Windows 版のビルドに少し苦労しましたが、ver.0.97 では特に問題もなく割とあっさりと Windows 版、Linux 版、MacOS 版を用意できた印象があります。今年度末にリリースする ver.0.97.1 でも同様にトラブル無くリリースできたら良いな、と願っています。
進捗その2
言語処理系自体に変更はありませんが、いくつかのワードについてはデバッグや仕様変更を行いました。
デバッグしたもの
AOP 関連
docol で呼び出し先のローカル変数用スタックの後始末ができていない問題を解決しました。
仕様変更したもの
リスト関連
ワード (< と >) を用いると Python のリスト内包表記のように、動的にリストを作成できます。これまではインタプリタモードの時のみこれらのワードを利用できましたが、今回、コンパイル
モードならびにリスト構築時などのシンボルモードにおいても機能するように機能拡張を行いました。
進捗その3(ドキュメント関連)
Paradocs に関するもの
機能拡張
文書内リンク
Paradocs 文書内でリンクを張れるタグ <[href …]> を追加しました。
url タグ
HTML 版においては、ハイパーリンクを生成する url タグを新設しました。
表現能力
鍵括弧 ( ) および中括弧 { } ならびにバックスラッシュに対応しました。
デバッグ
Paradocs で生成される HTML 版のドキュメントの索引部分において、正しくリンクを張れていないバグがありました。それを修正いたしました。
HTML 出力における索引生成部において、正しくエンティティ参照を処理できない場合がありましたので、それを修正しました。
従来のワードリファレンスに関するもの
cdr の説明部分に誤りがありましたので訂正を行いました。
slice の説明部分のサンプルコードに誤りがありましたので修正を行いました。
リストの構築終了処理を行うワード ')' のスタックの変化に関わる部分について誤りがありま
したので修正しました。
まとめに代えて
この文書は毎月 1 回発行している「Paraphrase の開発現場より」というメルマガ原稿を参考に書いています。こちらのメルマガの発行も今月で 60 回を迎え、来年は 6 年目に入っていきます。
Paraphrase の開発は 2018 年の 2 月か 3 月に開始したと記憶しています(が、このあたりの記憶は曖昧です)。となると来年は開発 7 年目となります。Paraphrase の開発者である私自身は、リファレンス文書の作成が苦手というか、あまり積極的になれないようです。そのため、遅々として進まず、関連して Paraphrase の開発自体も滞っている状況です。
Paraphrase を Paraphrase として成立させるワードは一体何であるのか ー この事に興味を持っています。そのためには、現在実装されているワードを、他のワードを用いて実装できるか否かを調べなければなりません。他のワードの組み合わせでは実装できないワード、それこそが Paraphrase を構成する元素のようなワードであると考えられます。
このような作業に着手していきたいのですが、そのためには一区切りをつけなければならないと感じています。その一区切りを付けるための作業がワードリファレンスのコンパクト化であり、そのためにリファレンス文書を作成しなければ…という状況です(そして、これがなかなか進まないので、Paraphrase 自体の開発も停滞してしまっています)。
来年はなんとかリファレンス文章の作成を終了させ、ワードの整理はもちろんのこと、Paraphrase 自体の開発の方も進めていければ、と思っています。
と、それはさておき、今年も残すところあと僅かとなりました。それでは皆さん、よいお年を!
Twitter: https://x.com/paraphrase_lang
GitHub : https://github.com/iigura/Paraphrase