Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Produire
Search
HN410
October 09, 2020
Programming
0
2.6k
Produire
HN410
October 09, 2020
Tweet
Share
More Decks by HN410
See All by HN410
Lex, YACC講習会
hn410
0
1k
Brainf*ckで15パズル
hn410
0
720
Android入門
hn410
0
1.1k
計算量理論
hn410
0
1.4k
Deeplearning from almost scratch
hn410
0
1.4k
Other Decks in Programming
See All in Programming
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.3k
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
140
DMMオンラインサロンアプリのSwift化
hayatan
0
250
Azure AI Foundryのご紹介
qt_luigi
1
260
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
2.2k
rails newと同時に型を書く
aki19035vc
6
740
HTML/CSS超絶浅い説明
yuki0329
0
210
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
990
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
150
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
500
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
3.2k
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
380
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
67
4.6k
Typedesign – Prime Four
hannesfritz
40
2.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Site-Speed That Sticks
csswizardry
3
300
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Agile that works and the tools we love
rasmusluckow
328
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
We Have a Design System, Now What?
morganepeng
51
7.4k
Navigating Team Friction
lara
183
15k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Transcript
プロデル超入門 19 HN_410
インストール方法 ▪ Windows…https://rdr.utopiat.net/files/index.htmlから、インストー ラかZipファイルのどちらかお好きなほうをダウンロード→インス トールor解凍 ▪ Mac Linux …Monoというフレームワーク(https://www.mono- project.com/)上で動作する。https://rdr.utopiat.net/files/mono.html
からダウンロード
プロデルとは…? ▪ C++やJava,PHPなどの一般的なプログラミング言語にある文 法を、日本語文法に沿って当てはめて、仕様書のような文章 でプログラムを書けることが特徴です。 ▪ 「日本語プログラミング言語」というと、一部で教育向け・ 初心者向けと思われる方もいらっしゃいますが、プロデルは これにあたりません。 以上
よくある質問より
コード例:Javaの(疑似)コード Mail notifyingMail = new Mail(); notifyingMail.subject = “定例会議の開催”; notifyingMail.address
= “
[email protected]
”; notifyingMail.contents = “来週月曜日の会議は午前10時からです。”; notifyingMail.setHeader(REPLYTO, “
[email protected]
”); sendMail(notifyingMail, mailAccount);
コード例:プロデルのコード …公式リファレンスより お知らせメールという送信メールを作る お知らせメールの件名は、「定例会議の開催」 お知らせメールの宛先は、「
[email protected]
」 お知らせメールの本文は、「来週月曜日の会議は午前10時からです。」 お知らせメールで「Reply-To」というヘッダ情報へ「
[email protected]
」を設定する お知らせメールをメールアカウントから送る
プロデルの特徴 (私の主観) 長所 ▪ 前述のように、日本語に近い構文でプログラミングができ、プログラミングや英語未修 者でもコードを理解しやすい。 ▪ GUIソフトが簡単に作れる ▪ 環境構築が楽(Windows)
短所 ▪ プログラミングに慣れた人は ・いちいち日本語で書くのが煩わしい ・一般的なプログラミングの仕様の中で日本語の感覚に合わないものが修正されている ので、逆に紛らわしいし、打ちにくい ▪ 構造が複雑になると上のメリットが薄れる ▪ 利用者人口が少ない →資料が少ない →……
例のやつ ▪ Designer.exe を起動 ▪ エディタに 「Hello, world!」を表示 と書く。 ▪
上のツールバーの実行ボタン(▶)を押す
基本の構造 ▪ プロデルの文 「Hello, world!」 を 表示する ▪ 引数は適切な助詞とのペアでなくてはならない。 ▪
引数と助詞のペアは複数でもよいが、動詞の後ろには置けない。 ▪ 動詞の送り仮名は(ほかに解釈の余地がなければ)なんでも可 (「~しない」にすると…)。 ▪ 文の終わりは改行か句点。 引数 助詞 動詞
代入文、変数宣言文 ▪ 基本データ型は宣言の必要がなく、勝手に解析して変数の型を決めてくれ る。 ▪ 変数名は漢字、カタカナ、全角英数字も使えるが、一部制約あり。 また、全角半角、大文字小文字を区別しない。 ▪ 「は」の後ろには読点を入れることをお勧めします(正しく解析してくれ ない…)
▪ 宣言したいときは以下のようにする。 【値:整数】 (例) 値は、2.72 メッセージ=「Hello」
データ型 ▪ 数値型…整数、長整数など ▪ 文字列型 (例) 2, 3, 3.14, 33.4
// (全角半角問わない) (例) 「Hello」 番号は,410 「HN_[番号]です。」を表示
データ型 ▪ 配列型 …インデックスに注意。1から始まる ▪ 辞書型 (例) 初心者向き言語は、{「Brainf*ck」,「Whitespace」,「プロデル」} 初心者向き言語(3)を表示 (例)
逆評定は、{物理実験=「大鬼」,化学実験=「仏」} 逆評定(「物理実験」)を表示
繰り返し文 ※公式リファレンスより引用 その他、While文、For文、For-each文に相当するものを含め、たくさん 用意されている。 (例) 3回、繰り返す 「わん」を表示する 繰り返し終わり
判断文、条件式 ▪ 使う記号、処理順序に注意 (例) もし点数が80以上なら、 「優」を表示 他でもし、点数≧65なら、 「良」を表示 他でもし、点数が50より大きいまたは(出席回数=12かつ点数≠0)なら、 「可」を表示
そうでなければ、 「不可」を表示 もし終わり
真偽値型 ▪ 条件式は真偽値型という特殊な型を返す。 ▪ 真偽値型は文字列型にしかキャスト(逆は不可?)できず、比較なども できない。 (例) もし〇なら、 「これは絶対表示される」を表示 もし終わり
(例) ×を表示 もし〇=〇なら、 「コンパイルエラーで動かない」を表示 もし終わり
手順 ▪ 関数のことを手順とよぶ。 ▪ 引数を受け取る際は、組となる助詞も書く。 (例) 「日本語」に翻訳 [言語]に翻訳する手順 「[言語]は非対応です」を表示 終わり
種類 ▪ クラスに相当するもの。※インスタンスはそのまま呼ぶ ▪ 変数、関数のほか、設定項目、イベント手順なども持つ(今回は省略) ▪ 「とは」のあとに読点は入れないこと。変数の宣言、代入と勘違いされる。 (例) ソフトとは ウィンドウであるメインウィンドウを持つ
自分が[言語]に対応する手順 「[言語]は非対応です」を表示 終わり 終わり
種類 ▪ インスタンスの生成、変数や手順へのアクセス例 (例) テストウィンドウというウィンドウを作る hogeソフトというソフトを作る hogeソフトのメインウィンドウは、テストウィンドウ hogeソフトが「日本語」に対応しない // 対応する
と同じ動作をする // 別の生成方法 hogeソフトというソフト(メインウィンドウ テストウィンドウ)を作る
設定項目 ▪ オブジェクト変数にエイリアスとしてセッターゲッターを定義する (例) ソフトとは ウィンドウであるメインウィンドウを持つ 画面という属性 設定する手順 メインウィンドウは、設定値 終わり
取得する手順 メインウィンドウを返す 終わり 終わり hogeソフトというソフトを作る hogeソフトの画面は、テストウィンドウ hogeソフトの画面を表示 hogeソフトのメインウィンドウを表示
コンストラクタ ▪ 作る文でインスタンスが作られる際に実行される、()で入力を 受け取ることもできる。 ▪ 同様に、「終わりの手順」でデストラクタも定義できる。 (例) hogeソフトというソフト(テストウィンドウ)を作る ソフトとは メインウィンドウを持つ
はじめ(入力)の手順 メインウィンドウは入力 終わり 終わり
イベント手順 ▪ あるイベントが起こった時の手順を定義できる ▪ 書式は、 《変数名》の《イベント手順名》時 《変数名》が《イベント手順名》時 ▪ 「この時の《変数名》」と書くことで、情報を入力として受け取 れる
(例) テストソフトというソフトを作る ソフトとは ウィンドウを継承する その位置と大きさは、{200,100,500,400} 終わり テストソフトがマウスのボタンが押された時の手順 この時のボタンを表示 終わり
種類の継承 ▪ 種類を定義する際に「《もとの種類の名前》を継承する」と書けば、 その種類を継承した種類ができる。 ▪ 継承できる種類は一つの種類につき1つまで。 (例) 自作ソフトを表示 待機 自作ソフトとは
ウィンドウを継承する その位置と大きさは、{200,100,500,400} 終わり
メンバのアクセス範囲 ▪ 以下の識別子を変数や手順に付けることで、アクセス範囲の制限ができる。 ・ + 変数へ設定・取得できる範囲は制限されません。(Public) ・ - 同じ種類にある手順からのみ利用することが可能です。(Private) ・
# 同じ種類にある手順や継承された種類にある手順からのみ利用す ることが可能です。(Protected) ・ (なし) 通常は + と同じ 公式リファレンスより (例) 自作ソフトとは +メインウィンドウ -OKボタン: ボタン 終わり
それ ▪ 「それ」は、直前に実行された手順の戻り値を指す。 ▪ 「それの」を省略して「その」も使える。 ▪ 戻り値がない手順が実行された場合は、「それ」が指す値は変わらな い。 (例) 自作ソフトというソフトを作る
そのメインウィンドウは、無 それが「日本語」に対応しする
実践例 ▪ 簡単な終了ボタン付きのウィンドウ (例) テストというウィンドウを作る その位置と大きさは、{200,100,500,400} それへ終了というボタンを作る その位置と大きさは、{200、300、100,30} その内容は、「終了」 テストを表示する
待機する 終了がクリックされた時の手順 テストを閉じる 終わり
まとめ ▪ プロデルはオブジェクト指向の言語を日本語化したようなもの ▪ 日本語の感覚に合わせているので、プログラミング特有の仕様は修正 されている ▪ プロデルがお勧めなのは… ・プログラミング未修者に短いアルゴリズムの説明をしたいとき ・英語未修者で本格的にプログラミングをやるつもりはないが、
ちょっとしたソフトを作りたい人