質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

4136閲覧

PL/0コードについて

a1a1a2a4

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/06/30 19:26

次のコード(Pythonのfor文)に対応するPL/0コードを教えていただきたいです。

for i in xrange(10):
print i

備考:Pascalだとこうなるそうです。
for i := 0 to 10 do
writeln(i);

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Wikipedia
PL/0 というものを知らなかったので見てみました。
if と while しかないそうですよ。
たぶんこうなるんじゃないでしょうか?

PL/0

1i := 0; 2WHILE i < 10 DO BEGIN 3 ! i; 4 a := a + 1; 5END

###追記
指摘を受けて訂正

PL/0

1i := 0; 2WHILE i < 10 DO BEGIN 3 ! i; 4 i := i + 1; 5END

投稿2016/06/30 23:16

編集2016/07/01 01:38
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a1a1a2a4

2016/07/01 00:52

すいません書き方が悪かったかもしれないです。 PL/0コード(アセンブリ)への変換方法を教えていただきたいです。
Zuishin

2016/07/01 00:58

まず言葉の説明をしてください。 PL/0(アセンブリ)とは何ですか? まさか PL/0 をコンパイルした後に得られるアセンブリランゲージのことではないんでしょう?
a1a1a2a4

2016/07/01 01:10

・回答していただいたものはPL/0言語と認識しています。 ・PL/0コードをそれから生成されたアセンブリ言語と認識しています。 上で回答していただいたPL/0言語をPL/0コードに変換していただけませんでしょうか? また、その手順を教えていただきたいです。
Zuishin

2016/07/01 01:35

あなたの求められているものは、授業のために作られた仮想機械語か中間言語であって、その教科書を持っていない人には未知の存在です。 一般的なものでない以上、変換の仕方は授業をしっかり聞いて理解するより他にありません。
ozwk

2016/07/01 01:37

a := a + 1; aじゃなくてiではないでしょうか
Zuishin

2016/07/01 01:39

ozwk さんありがとうございます。その通りです。
Zuishin

2016/07/01 01:57

http://130.158.67.104/content/files/tosho_soft/text8-2.pdf ここの PL/0 コードの仕様をみつけました。中井央という先生が作られたものでしょうね。 ラベルも変数も四則演算も使える高機能なコードじゃないですか。ほぼ直訳で行けるので頑張ってください。
Zuishin

2016/07/01 02:09 編集

考え方としては、まず代入分のコードを見て変数 i に割り当てたメモリに 0 を代入し、while 文のコードを書き、その「条件式のコード」と書いてある部分に if 文のコードを書き、文のコードに出力と i++ を書けば完成です。
guest

0

PL/0コード(アセンブリ)への変換方法を教えていただきたいです。

もしかしてこういうことかな?
代理検索
Pythonでコンパイラ: PL/0パーサー
http://qiita.com/knoguchi/items/ee949989d0a9f04bee6f
数回の連載の様子

PL/0
https://ja.wikipedia.org/wiki/PL/0

コンパイラの仕組みを学習する用途らしいです。
学習過程で、機能拡張を行ったりする。
元々の機能には、for 文は無いので、
自身で拡張するか、while で代用するか。

投稿2016/07/01 01:03

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/01 01:37

おそらくパースをしたいのではなく、アセンブリコードを出したいと推測され、 Python -> PL/0 -> アセンブリ をしたいのかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問