このページではJavaScriptを使用しています。

FLEX日本語活用編

(Windows11 WSL版)

Windows10 WSL版はこちら

現在ではWindows10/11上でLinux(Ubuntu)OSを動作させるWSL(Windwos Subsystem for Linux)という便利な仕組みが使えるようになっています。これによってUbuntu OS上で動いているFLEXプログラムをそのままWindows10/11上で動かすことができます。

WSLやUbuntuをWindows11上にインストール方法は、さまざまなサイトで紹介されていますので、そちらを参照してみてください。今回はWindwos11(バージョン22H2)上で、WSL(Ubuntu22.04)をインストールして使っています。 下図はWindows11のスタートメニューを開いたところですが、Ubuntuのアイコンが自動的につくられています。

WSLということを意識せずに、このUbuntuのアイコンをクリックすると、Ubuntuのターミナルが起動します。ここでUbuntuのバージョンを確認してみます。

Ubuntuを起動してFLEXのバージョンを確認してみます。

FLEXのプログラムは一度C言語に変換されます。それをC言語処理系によって翻訳することにより、プログラムを実行することができます。従ってFLEXのプログラムを動かすにはC言語の処理系(gcc)が必要となります。以下に今回使用したUbuntu上のgccバージョンを示します。

Windows11のエクスプローラーからUbuntuフォルダにアクセスする場合には、ペンギンマークのLinuxのところをクリックします。

また、Ubuntu上のgeditからファイルを編集することができます。Ubuntuやgeditで日本語の入力や表示ができるようにするための設定方法についても、いくつかのサイトで紹介されていますので、そちらを参考にしてみてください。 今回はMOZCをインストールしました。また、Windows11のキーボード設定は「日本語106」にしてあります。日本語入力と英語入力の切り替えは、「Ctl+Space」で行っています。

ここからは、FLEX日本語活用編(Ubuntu22.04版)でのプログラムがWSL/Ubuntuでも問題なく動作することを確認してみます。

例題FU─1 入力ファイルをそのまま出力する
例題FU─2 文字列を変換する(その一)
例題FU─3 文字列を変換する(その二)
例題FU─4 簡単なC言語風日本語プログラムの実行
例題FU─5 FLEX規則を利用してC言語を日本語で記述する
例題FU─6 文字クラスを使った日本語文字処理の基本練習
例題FU─7 FLEXを利用した送り仮名のチェック
例題FU─8 FLEXを利用した簡単な同音異義語のチェック
例題FU─9 FLEXでスタート状態を使った練習
例題FU─10 FLEXを利用した簡単な表記チェッカー
例題FU-13 自動番号の付いた規則をつくる
例題FU-14 FLEX規則を利用してC言語を日本語で記述する(続編)
例題FU-15 FLEXを利用して自動販売機のシミュレーションを行なう

例題FU─1 入力ファイルをそのまま出力する

Ubuntu版FLEX日本語活用編の例題FU─1 入力ファイルをそのまま出力するの内容をWSL2で出力した結果です。

例題FU─2 文字列を変換する(その一)

Ubuntu版FLEX日本語活用編の例題FU─2 文字列を変換する(その一)の内容を一部変更して、「あいうえお」を「たちつてと」に変換するプログラムをコマンドプロンプトのリダイレクション機能を利用して出力した結果です。

また、exout.txtの内容をgeditで表示させた結果を以下に示します。

例題FU─3 文字列を変換する(その二)

Ubuntu版FLEX日本語活用編の例題FU─3 文字列を変換する(その二)の内容をWSL2で出力した結果です。

例題FU─4 簡単なC言語風日本語プログラムの実行

Ubuntu版FLEX日本語活用編の例題FU─4 簡単なC言語風日本語プログラムの実行の内容をWSL2で出力した結果です。

また、この結果をexout.cというファイルにして、C言語の処理系に通した結果

例題FU─5 FLEX規則を利用してC言語を日本語で記述する

Ubuntu版FLEX日本語活用編の例題FU─5 FLEX規則を利用してC言語を日本語で記述するの内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU─6 文字クラスを使った日本語文字処理の基本練習

Ubuntu版FLEX日本語活用編の例題FU─6 文字クラスを使った日本語文字処理の基本練習の内容をWSL2で実行したときの結果です。(すべての文字種を認識する場合)

このとき読み込ませたテキストファイルを以下に示します。

各文字種(半角カタカナ、全角カタカナ、ひらがな文字、日本語を含むUTF8のコード領域、半角アルファベット、半角数字)の認識については、個別に確認していますが、ここでは割愛させていただきます。

例題FU─7 FLEXを利用した送り仮名のチェック

Ubuntu版FLEX日本語活用編の例題FU─7 FLEXを利用した送り仮名のチェックの内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU─8 FLEXを利用した簡単な同音異義語のチェック

Ubuntu版FLEX日本語活用編の例題FU─8 FLEXを利用した簡単な同音異義語のチェックの内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU─9 FLEXでスタート状態を使った練習

Ubuntu版FLEX日本語活用編の例題FU─9 FLEXでスタート状態を使った練習の内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU─10 FLEXを利用した簡単な表記チェッカー

Ubuntu版FLEX日本語活用編の例題FU─10 FLEXを利用した簡単な表記チェッカーの内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU-13 自動番号の付いた規則をつくる

Ubuntu版FLEX日本語活用編の例題FU-13 自動番号の付いた規則をつくるの内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU-14 FLEX規則を利用してC言語を日本語で記述する(続編)

Ubuntu版FLEX日本語活用編の例題FU-14 FLEX規則を利用してC言語を日本語で記述する(続編)の内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

例題FU-15 FLEXを利用して自動販売機のシミュレーションを行なう

Ubuntu版FLEX日本語活用編の例題FU-15 FLEXを利用して自動販売機のシミュレーションを行なうの内容をWSL2で実行したときの結果です。

このとき読み込ませたテキストファイルを以下に示します。

Windows11 WSLの参考サイト例
https://learn.microsoft.com/ja-jp/windows/wsl/install
https://learn.microsoft.com/ja-jp/windows/wsl/setup/environment
https://astherier.com/blog/2021/07/windows11-wsl2-wslg-japanese/