BE-Lang 普通にローカルホスト鯖をホストできるようにする!
実装したことにより新たな問題が発生?!
みなさんこんにちは tukinyanJP こと つきにゃんじぇーぴー です! 今回は、 BE-Lang にソケット通信 1 (ちょっとしたHtml操作)を追加してみました! それでは、 BE-Lang の素晴らしいところを紹介していきたいと思います!
基本形はこんな感じ。
まず、前提知識として知ってほしいのは BE-Lang には Stream という 式の流れ を定義することができる、機能があることを知っておいてください。 Stream はこんな感じで使えます。
stream: |string| <- 仮変数string定義 ->
"" |> + "Hello," |> + "World!" |> puts string |>
<- 値をどんどん加工していきます。最終的に string は Hello, World! になり表示されます。 ->
end_stream
で、目玉のソケット通信の名前は WEBStream と言う名前にしています。何ともダサい名前ですね。名前の通り WEBStream の文法と Stream は少しだけ似ています。 WEBStream はこんな感じで書けます。
webstream: |server|
=>
port 1000 <- localhost:~~ってなるところを指定 ->
html "projects/hello.html" <- 基礎となるhtmlファイル ->
<=
|> h1 "でっかい見出し"
|> h2 "でっかい見出し(h1よりちいさい)"
|> h3 "h5まで続く!"
|> p "本文"
|> input "HowAreYou?" replay <- クライアントがサーバーに情報を送る。返信を待つ ->
server "I'mSoGood" <- サーバーがクライアントに情報を送る ->
end_input
end_webstream
で、これを実行して、 localhost:1000 に入ると、
こういう風に出てきます。完全なる HTML ONLY のサイトっぽい何かですね。
実装してから気づいたことがあるのですが、 |> p "" 本文記述ですよね。これ。この "" の中に
タグであったりを入力することができるんですね。つまり、大体pタグだけあれば色指定とかdivとかできるんですねこれが... じゃ、じゃあ実験的に作ってた文字色変更も作る必要なかった...?嘘でしょ?
追記 (2026 / 2 / 9):
h1とかh6タグで、空白を使うことができるようになりました! (SpacEで空白作成可能!)
ソケット通信 1 を実装したことによって起こる問題
マルチタスク問題
今回のソケット通信1を実装したことにより、浮き彫りになった問題は... マルチタスク問題 です。 つまり何が言いたいかと言うと、 localhost を開いて通信を切るまではずっと何もできない んです。 (=localhostの処理以降なにも実行されない) だから、今後の BE-Lang の課題は(少なくとも WEBStream では)マルチタスクができるようにしなければいけないんですね...
振り返り
今回の記事はどうでしたか? 自分自身としては、 ソケット通信 を実装できたので満足していますが、まだ開発途中の機能ですので今後にご期待ください! また次の記事で! さらだばー!
-
↩ ↩2 ↩3ソケットとは、簡単にいえばコンピュータ間の概念的な電話機であり、郵便ポ ストです。つまり、プログラムはソケットに喋りかけたり、手紙を投函すれば、 通信相手のコンピュータの受話器または郵便受け、つまりソケットにその喋っ た内容や手紙が届くことになります。
引用元: https://research.nii.ac.jp/~ichiro/syspro98/socket.html
