PWCT - 百科事典

### PWCT (Programming Without Coding Technology)

PWCT(プログラミング・ウィズアウト・コーディング・テクノロジー)は、ソフトウェア開発用の無料オープンソースのビジュアルプログラミング言語です。プロジェクトは2005年12月に、ビジュアルプログラミングを通じてアプリケーションをデザインし、ソースコードを生成する無料オープンソースプロジェクトとして立ち上げられました。このソフトウェアは、多くのテキストプログラミング言語でのコード生成をサポートしています。

目標
PWCTは、アプリケーションやシステム開発に使用できる汎用のビジュアルプログラミング言語として設計されています。PWCTは、プログラミングの概念を紹介するためにも使用できます。環境は、プログラマーがプログラムを映画のように再生して、ステップごとに作成方法を学び、プログラムのロジックに対するより深い理解を得ることができる時間の次元をサポートしています。時間を変更するには、プログラマーが特定の時間点を選択して視覚化するためのタイムラインスライダーを使用します。

歴史

PWCTは2005年12月にSourceForgeに登録されました。
PWCT 1.0は2008年10月18日にリリースされました。
PWCT 1.1は2009年2月20日にリリースされました。
PWCT 1.2は2009年5月4日にリリースされました。
PWCT 1.3は2009年5月30日にリリースされました。
PWCT 1.4は2009年8月28日にリリースされました。
PWCT 1.5は2010年3月27日にリリースされました。
PWCT 1.6は2010年5月16日にリリースされました。
PWCT 1.7は2010年9月15日にリリースされました。
PWCT 1.8は2011年10月18日にリリースされました(最終更新:2013年4月22日)。
PWCT 1.9は2013年5月7日にリリースされました(最新更新:2025年5月3日)。
PWCT 2.0は2023年3月1日にSteamでリリースされました(最新更新:2025年7月13日)。
PWCT 2.0のソースコードは2025年1月にGitHubで公開されました。

概念

PWCTのアーキテクチャには、以下の3つの主要なレイヤーがあります:

VPLレイヤー:特定のタスクを実行する機能を提供します。
中間レイヤー:ユーザービューとシステムレイヤー間のインターフェースを提供します。
システムレイヤー:異なる言語で実行可能なコードを生成します。

PWCT内のビジュアルソースは、Goal Designerを使用して設計されており、プログラマーはビジュアル言語コンポーネントとの相互作用を通じてステップツリーを生成できます。ビジュアルソースは、各ゴールがステップのツリーを含み、各ステップ/ノードがデータエントリーフォームを含む可能性があります。ステップツリーは、ステップの種類についてプログラマーに情報を提供する色を使用しています。一部のステップはサブステップを含むことができますが、他のステップは含まないこともあります。また、一部のステップはプログラマー向けのコメントに過ぎません。ステップツリーは、プログラマーがステップツリーと対話する際に「次に進む」または「含む」という関係を持つノード間の関係を提供します。プログラマーは、深度優先または幅優先で進むことができます。

プログラマーは、「含む」次元を使用して、一度に複数のステップ/ノードに対して操作を行うことができます(上に移動/下に移動/切り取り/コピー/削除)、フォームデザイナーを使用してユーザーインターフェースを作成し、時間の次元を使用して、開発プロセスのどのポイントでもステップを視覚化してナビゲートすることができます。

Goal Designer内で、ユーザーはマウスやキーボードを使用してビジュアルコンポーネントを選択し、ステップツリーに新しいステップを生成することができます。マウスを使用して、使用可能なコンポーネントを探索することができます。キーボードを使用して、コンポーネント名を入力することで、プログラマーは迅速にコンポーネントを取得し、使用を開始することができます。

機能
汎用性。
ビジュアルプログラミング(複数の次元、シンタックスエラーなし、時間の次元と色)。
ビジュアルエディタ(キーボードショートカット、カスタマイズ、切り取り、コピー、貼り付け、検索と置換)。
シンタックス指向エディタ(エラーを避ける)。
無料エディタとVPLコンパイラ。
プログラマーは生成されたソースコードを見たり編集したりできます。
プログラマーはステップ名とステップの色を変更できます。
多くのテキストプログラミング言語(Harbour、C、Pythonなど)をサポート。
プログラマーはプログラムを映画のように再生して、ステップごとにプログラムを作成する方法を学ぶことができます。
プログラミングパラダイムを強制しません。
拡張(新しいコンポーネントを作成)。
開発プロセスの過去のどのポイントでもプログラムを実行できます。

ビジュアル言語
PWCTのビジュアルプログラミング言語コンポーネントは以下のカテゴリに分類されます。

CPWCT:Cプログラミング言語でソースコードを生成するビジュアルコンポーネント。
PythonPWCT:Pythonプログラミング言語でソースコードを生成するビジュアルコンポーネント。
HarbourPWCT:Harbourプログラミング言語でソースコードを生成するビジュアルコンポーネント。
SupernovaPWCT:Supernovaプログラミング言語でソースコードを生成するビジュアルコンポーネント。
C#PWCT:C#プログラミング言語でソースコードを生成するビジュアルコンポーネント。
RingPWCT(PWCT2で導入):Ringプログラミング言語でソースコードを生成するビジュアルコンポーネント。

使用方法
テキストソースコードはCやPythonなどの異なるテキストプログラミング言語で生成できるため、インターネットの Things(IoT)プロジェクト、人工知能および機械学習アプリケーション、GUIプロジェクト、テキスト処理アプリケーションなど、異なる要件を持つプロジェクトの開発に使用できます。また、PWCTはRingプログラミング言語のコンパイラおよびバーチャルマシンを開発および保守するためにも使用されます。

批判
PWCTソフトウェアは、ユーザーがWhile-LoopやIf-Thenなどのプログラミング構造に熟悉であることを要求しています。シンタックスエラーは減少しましたが、プログラムの解決策の論理や分析は、ユーザーによって作成、開発、評価されます。

PWCTは、ソフトウェア設計に対する新しい視点を提供しようと試みていますが、そのような革新にはコストが伴います。PWCTは、コードブロックの構造を「ステップツリー」として視覚化することに焦点を当てており、通常のテキストプログラミング言語で見られるネスト構造を反映しています。また、PWCTはコードを図として視覚化するための強固なサポートがなく、抽象化レイヤードアーキテクチャ(ALA)アプリケーションに対する強固なサポートもありません。

参考情報
Alice(ソフトウェア)
LabVIEW
Prograph
Scratch(プログラミング言語)
ビジュアルプログラミング言語

参考文献
Fayed, Alohali. (2025) PWCT2: A Self-Hosting Visual Programming Language Based on Ring with Interactive Textual-to-Visual Code Conversion, Applied Sciences
Fayed, Al-Qurishi, Alamri, et al. (2020) PWCT: a novel general-purpose visual programming language in support of pervasive application development, Springer
Fayed, Al-Qurishi, Alamri, Aldariseh (2017) PWCT: visual language for IoT and cloud computing applications and systems, ACM
Fayed (2017) General-Purpose Visual Language and Information System with Case-Studies in Developing Business Applications, King Saud University
Fayed (2013) Using C#.NET through Programming Without Coding Technology, Code Project
Fayed (2013) Using Python inside Programming Without Coding Technology, Code Project
Fayed (2013) The Time Machine and the PWCT Visual Programming Language, Code Project

外部リンク
公式ウェブサイト