初心者用プログラミング言語「PG0」のススメ

## はじめに
PG0は、プログラミング学習を目的としたプログラミング言語です。

学習用のため非常にシンプルなプログラミング言語ですが、本格的なプログラミング言語と同じ書き方ができます。
そのため、本格的なプログラミング言語を学ぶ前にプログラミングの基礎を身に付けることができます。

## 利用シーン
想定する利用シーンは以下です。

- これからプログラミングを覚える人の入口として利用
    - [PG0でプログラミング入門](https://qiita.com/nakka_/items/e2a7640c6ecbb8d5cb52)
- 過去にプログラミングに挫折した人が再度挑戦する時に利用
- IT企業の新人研修で利用
    - [PG0.5でプログラミング練習](https://qiita.com/nakka_/items/138f64bf4f5d6782e601)
- プログラミング教室で利用
- 小学校、中学校、高校、大学の授業(プログラミング教育)で利用
    - [PG0でmicro:bitのプログラムを書く方法](https://qiita.com/nakka_/items/4f2414e1603027490a01)
- ゲーム作成
    - [PG0でゲームプログラミング](https://qiita.com/nakka_/items/3058fc5d0fdd4c6edbc2)

## 言語仕様
PG0は、プログラミングの基礎となる順次、分岐、反復を組み合わせてアルゴリズムを考えることに特化しています。
型は「整数型」と「配列」、分岐は「if、else」のみ、反復は「while」のみとなっています。

関数、クラス、文字列、ビット演算などプログラミング入門時につまずく可能性がある機能はすべて省いています。
そのため覚えることや、理解することは非常に少ないです。

プログラムの書き方はC、C++、C#、Java、JavaScriptなどに近いためPG0で基礎を学ぶことで、それらのプログラミング言語の学習の助けになります。

## 導入
PG0の導入は非常に簡単です。

### Webアプリ版

Webブラウザで動作するWebアプリのためインストール不要で気軽に利用できます。

[PG0(Web版)のサイト](https://pg0.jp/)にアクセスするとPG0の開発ツールが画面に表示されます。
PG0はこの開発ツールの中でプログラムを開発して、開発ツールの中でプログラムを実行します。

### Windows ダウンロード版

インストールするだけですぐに使えます。

[PG0のサイト](https://nakka.com/soft/pg0/)からインストーラー(EXEファイル)をダウンロードして実行するとPCにPG0がインストールされます。
他にインストールするものや、設定しておくことは一切ありません。

PG0をインストールするとデスクトップにPG0のアイコンが追加されるので、このアイコンをダブルクリックしてPG0を起動します。
![PG0_desktop.png](https://qiita-image-store.s3.amazonaws.com/0/199093/0bfdf9d8-cc3e-0d96-7723-d02c87666095.png)
起動するとPG0の開発ツールが画面に表示されます。
PG0はこの開発ツールの中でプログラムを開発して、開発ツールの中でプログラムを実行します。

### 開発ツール
開発ツールはプログラムの動きや変数の中身を視覚的に見ることができるためプログラムの理解の助けになります。
![screen.png](https://qiita-image-store.s3.amazonaws.com/0/199093/5ed16b11-595d-ddbc-fd01-c41327694a07.png)
プログラムは一行ずつ自動実行され、実行中の行はエディタに水色で表示されます。
実行する速度は3段階で変更する事ができます。
その他、「ステップ実行」や「カーソル行まで実行」の機能があります。

作成したプログラムはファイルに保存することができます。
保存するときのファイル名の形式は「ファイル名.pg0」となります。
また保存したプログラムを再度開くこともできます。

### PG0.5
「PG0.5」はPG0を拡張し、通常のプログラミング言語と同等の機能を持ったプログラミング言語です。
PG0の開発ツールをPG0.5モードにすることで利用することができます。
詳細は「[PG0.5でプログラミング練習](https://qiita.com/nakka_/items/138f64bf4f5d6782e601)」を参考にしてください。

## 演習問題
PG0用に演習問題が26問あります。
順次、分岐、反復の基本問題とそれらを組み合わせた応用問題があります。

全問題に解答例も用意してあります。
解答例はあくまで一例であり、正解はひとつではないので、自分なりの正解を導き出してください。

- [演習問題](https://nakka.com/soft/pg0/question.html)
- [演習問題(PDF)](https://nakka.com/soft/pg0/PG0_question.pdf)
- [演習問題(解答例あり)](https://nakka.com/soft/pg0/question.html?a=1)

## 動作環境
### Webアプリ版
Chrome、Microsoft Edge、Firefox、Safariで動作します。
iOS、AndroidなどのスマートフォンやWindows、Macなどどんな環境でも動作します。

### Windows ダウンロード版
Windows XP, Vista, 7, 8, 8.1, 10, 11 で動作するフリーソフトウェアです。

## リンク
- PG0
  - [https://nakka.com/soft/pg0/](https://nakka.com/soft/pg0/)
- PG0 (Web版)
  - [https://pg0.jp/](https://pg0.jp/)
- チュートリアル
  - [https://pg0.jp/tutorial/](https://pg0.jp/tutorial/)
- 「PG0」の言語仕様
  - [https://pg0.jp/doc/pg0.html](https://pg0.jp/doc/pg0.html)
- PG0でプログラミング入門
    - [https://qiita.com/nakka_/items/e2a7640c6ecbb8d5cb52](https://qiita.com/nakka_/items/e2a7640c6ecbb8d5cb52)
- PG0.5でプログラミング練習
    - [https://qiita.com/nakka_/items/138f64bf4f5d6782e601](https://qiita.com/nakka_/items/138f64bf4f5d6782e601)
- PG0でmicro:bitのプログラムを書く方法
    - [https://qiita.com/nakka_/items/4f2414e1603027490a01](https://qiita.com/nakka_/items/4f2414e1603027490a01)
- PG0でゲームプログラミング
    - [https://qiita.com/nakka_/items/3058fc5d0fdd4c6edbc2](https://qiita.com/nakka_/items/3058fc5d0fdd4c6edbc2)