2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語トランスコンパイラ言語 Re:Mind (自作言語)と他言語との構文比較(IF文)

Last updated at Posted at 2023-02-07

はじめに

「日本語トランスコンパイラ言語」という処理系のシステム開発現場での需要があるのかという疑問に対して、わたしは「あるかも」と考えておりまして、主たるターゲット層としては、実装スキルを消失させた中高年システムエンジニアを考えております。

詳しい利用シーンのイメージはこちらへ

この記事内容の作業目的

日本語トランスコンパイラ言語 Re:Mind という自作言語の制御構文をターゲット言語のそれと比較して検討する。
とりあえずif文。elseやelse ifはなしとして、あとで考えます。

この記事内容の保証

※この記事には実装的な情報が含まれます。各言語で書かれた引用ソースの妥当性は保証されません。また、開発中(というよりまだ企画段階)の仕様のため、本記事に開示された自作言語の仕様は予告なく変更される場合があります。

ターゲット言語の構文イメージ

ターゲット言語とは

プログラミング言語としてのソース言語を日本語を母語とするテキスト(自然文ではない)として、その変換対象となるプログラミング言語のことです。
現在、下記の言語を想定しています。全機能全ライブラリのサポートは目的としておらず(独自に対象言語のライブラリはインポートして日本語ラッパ上で使えるようにしたいとうい願望はあり)基本的な制御構文のトランスコンパイルが可能としています。

  • Java

  • C#

  • TypeScript

  • Go
    このあたりのグループはC言語を祖先として構文似てるかも的な思わくあり。

  • VBA(Excel用)
    オフィスワーカーにとってステップアップスキルとしてまだまだ需要あり。

  • Mind

  • DNCL
    日本語プログラミング言語グループ

各ターゲット言語のIF文

では、「Re:Mind」 (自作言語リマインド)と他言語との構文比較第一弾として、各ターゲット言語のIF文を比較して、自作言語のIF文を検討します。
最初に長くならずイメージが比較しやすいよう、elseやelse ifはなしとして、あとで考えます。また、比較判定用の変数の宣言も割愛します。
また、あたらしめの言語がもっている糖衣構文もとりあえず今回対象外です。Mindで「もしも」つけれるとか含む。

Javs

Java
    if(i>0){
       //todo
    }

C#

C#
    if(i>0)
    {
       //todo
    }

TypeScript

TypeScript
    if(i>0){
       //todo
    }

Go

Go
    if i>0 {
       //todo
    }

VBA(Excel用)

VisualBasic for Application
    If I>0 Then
        'todo
    End If

Mind

Mind
    Iが 0より 大きい
        ならば ※todo
        つぎへ

DNCL

DNCL
    もし i > 0 ならば
        //todo
    実行する

各言語のIF構文の間に挟まれているtodoは各言語のコメントアウト符号によるコメントです。

ソース言語の構文イメージ

ソース言語のIF文

Re:Mind

Re:Mind
    ◇i > 0 の場合
        //todo
    ◇ここまで

おわりに

システムエンジニアというとプログラミング得意なのではと業界外の人は思っていらっしゃるかと存じますが、特に業務システムのエンジニアはそうでもないのが実情です。分業が進んでいる環境ですと、実装工程は製造とかいってアウトソースしたり若手にまかせたりというシーンが少なくないように思われます。ただ、経験値的に、あるいは地頭的に複雑なロジックを組み立てることはできるので、若手のデベロッパーをそういう面から支援している場合は多くあります。

そこで、昨今のこまごまとしたフレームワークの細かい小技はわからないけど、きもとなるロジックはこれだ的なシーンで、年配エンジニアやマネージャ層でも記述できる言語があったらいいなと考えたしだいでございます。

この企画を実現・設計・実装していくには、スキル上の課題や未獲得の知見など多数あることが予想されます。Qiita様の場をお借りして、獲得したスキルや知見の共有、いたらない点のご支援をいただければと考えています。

参考リンク

Mind プログラミングマニュアル 3 制御構文

共通テスト手順記述標準言語 (DNCL) の説明

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?