• ベストアンサー

構造化プログラミングについて、追加です。

構造化プログラミング言語とは、いったい何でしょうか?? 先ほどは言葉足らずで申し訳ありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.4

わお!思いっきり間違ってました。 『構造化プログラミング言語』ですね。 構造化プログラミング言語の最低条件は ・基本3構造を記述可能な制御構文をもっている ・サブルーチン、関数などの副プログラムをサポートしている ・分割コンパイルをサポートしている (インタプリタの場合は「外部ソースにある副プログラムの呼び出しが可能」) となります。 制御構文に関しては「ブロックIF文」と「後置条件ループ」の存在が分岐点でしょう。 「多岐選択分岐(switchなど)」は必須条件ではありませんがサポートされていることが多いようです。 一般的には ・他言語で記述された副プログラムを呼び出すことができる ・レコード型のデータ構造の表現ができる が加わります。 私的には ・再利用可能な副プログラムが記述できる ・再配置可能な副プログラムが記述できる の2点を(勝手に)加えています。 機種/OSに影響を受けますが ・再入可能な副プログラムが記述できる ・再帰呼び出しを利用できる 以上に加えてこの2点が満足されていればアルゴリズムの記述に困ることはほとんどありません。 現在パソコンで広く利用されている高級言語はほとんど当てはまります。 全てのオブジェクト指向プログラミング言語も構造化プログラミング言語の用件を満たしています。

nrktsm
質問者

お礼

とても丁寧に、どうもありがとうございました。とても参考になりました。

その他の回答 (4)

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.5

補足: > 昔のBasicなどは違いますが,最近の言語は基本的には構造化プログラミング言語と言っていいと思います. > この一歩先の概念が「オブジェクト指向」「オブジェクト指向言語」だと思います.「クラス」の概念の導入ですね.「Java」「C++」などはこれですね. 第1文で,「Java」「C++」も構造化プログラミング言語の一種(2種?)であることを(暗に)示し,第2文で,これらの言語はオブジェクト指向の概念を新たに導入している,ということを付け加えたつもりでした.ちょっと言葉がたりなかったかもしれません. 蛇足ですが,念のため補足しておきます.

nrktsm
質問者

お礼

どうもありがとうございました。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

いわゆる『構造化プログラミング』は ・基本3構造によるプログラムロジックの記述  (順次、条件分岐、繰り返し) ・サブルーチン、関数など副プログラムの使用  (プログラム構造の階層化) ・データ構造主導のアルゴリズム選択  (配列ならループ、リストなら再帰など) といわれています。 昔、汎用系ソフト開発技術者の間で流行った『SPコーディング(構造化プログラミングコーディング)』では ・goto文は極力避ける ・プログラム制御構造にあわせた時下げを行う などの"比較的どうでもいい”条文が追加されていました。 構造化プログラミングの提唱者であるE.W.ダイクストラは「構造化プログラミングはコンピュータの機種選定、データ構造設計、プログラム構造設計、アルゴリズム選択、コード実装の全般で行われなければならない」と言っています。 真の構造化プログラミングを学ぶなら『構造化プログラミング』(サイエンス社、ダイクストラほか)を読んでみてください。 また、データ構造主導のアルゴリズム選択に関しては『アルゴリズム+データ構造=プログラム』(サイエンス社、ヴィルト)が良いでしょう。 アルゴリズム全体を見回した場合『Art of Computingシリーズ』(サイエンス社、クヌース)が最適です。 余談ですが、オブジェクト指向プログラミングパラダイムは構造化プログラミングに反するものではありません。 "いわゆる構造化プログラミング”(および、構造化プログラミングの説明で用いられる多くのアルゴリズム)が手続き型プログラミングパラダイムを前提とするためにオブジェクト指向における応用が難しいと思われがちですが、"真の意味での構造化プログラミング”はオブジェクト指向プログラミングにおいても大いに参考になります。

nrktsm
質問者

お礼

丁寧に、ありがとうございました。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

専門家ではないので多少違っているかもしれませんが, for 文, while文, switch case 文, block if 文, 関数定義などを利用して, アルゴリズムの構造を明確にするプログラミング手法だと認識しています. if, goto だけでも基本的に同等のことはできるはずですが,何をやっているのかよくわからないプログラムになりがちです.そのようなソースコードは,スパゲッティ―のようだと形容された時代もありましたが,もう死語かもしれません. 昔のBasicなどは違いますが,最近の言語は基本的には構造化プログラミング言語と言っていいと思います. この一歩先の概念が「オブジェクト指向」「オブジェクト指向言語」だと思います.「クラス」の概念の導入ですね.「Java」「C++」などはこれですね.

nrktsm
質問者

お礼

どうもありがとうございます。

  • kanten
  • ベストアンサー率27% (479/1747)
回答No.1

構造化プログラミングが出来るプログラム言語のことです。 代表的なものにC や C++、Pascal があります。

参考URL:
http://visio.ge.niigata-u.ac.jp/tbasic/Intro2Basic/Structure.html
nrktsm
質問者

お礼

簡潔に、どうもありがとうございました。 さっそく調べてみます。

関連するQ&A

  • プログラミング言語

    プログラミング言語のC言語とかJavaとかPerlとかの違いって使いやすさや慣れ以外に違いってあるんですか? 言葉足らずですいません…! 先程あげた三つのプログラミング言語が全く違うのは理解しているのですが、 それを使う、仕様した結果何か変わるのか疑問を抱いたので質問させていただきました。 初心者なので全く分からなくて… 教えてください><

  • 構造化プログラミングとは?

    構造化プログラミングとは、いったいどのようなものなのでしょうか?? 教えてください。

  • 「構造化プログラミングの基本的な考え方について述べなさい.また,構造化

    「構造化プログラミングの基本的な考え方について述べなさい.また,構造化プログラ ミングと関連付けて基本制御構造について説明しなさい。」という問題があるのですが、調べてると構造化プログラミングと基本制御構造の区別があまりつきにくくて説明がうまくできません。

  • 構造化プログラミング…

    お世話になります。 構造化プログラミング記述用のチャートに 「TSチャート」というものがあるようなのですが… この「TS」は何の略なのでしょうか? こんな時間までネットで調べたのですが… 見つかりません。 ご存知の方が居られましたら、 ご教授いただきたく存じます。

  • プログラミングについて困っています。

    プログラミングについて困っています。 現在、大学二年で、大学でいろいろなプログラミングを習っているのですが、去年はプログラミングを教わりましたが、とても難しいものでした。 今年はさらに難しくなり、わけがわからなくなるのが必須のような気もしていて本当にやばいです。 今年行うものは、まずコンピュータの機械語および、アセンブリ言語によるプログラミングで内容はループ構造、整数掛け算ルーティン、割り算ルーティンといった全くわけのわからないものをするみたいですが、 不安すぎます。何かいいコツや、参考書などがありましたら教えてください!お願いします!

  • 私たちの日常活動は、構造化プログラミング可能か?

    私たちの、日常の活動は、構造化プログラミングが可能でしょうか?また、そうでない例があれば教えて下さい!お願いします。

  • 初心者のプログラミング

    こんにちは。 実験心理学を専攻しているのですが、実験プログラムを組むのにプログラミングを学ぶ必要がでてきました。心理学実験用のプログラムソフトがあるのですが、高い(こちらの分野の方にしかわからないと思うのですが、Presentationというソフトです)。 無料でプログラムの考え方を学ぶのに適した言語ってなにがありますか? VB.netとかC#がおすすめだとちらほら書いてあったのですが、それらの言語はほかの言語(Presentation、Matlabなど)と構造は似ているのでしょうか? 知識がないので何を聞きたいかがわからないと思いますが、プログラム的な考え方に慣れたい、そしてどうせやるなら似たような構造の言語が多いものをやりたい、ということです。 ご回答、ご批判おまちいたしております。

  • 初めてのプログラミング言語

    初めてプログラミング言語を学ぼうとしたのですが、何から学ぶべきかわかりません。(ベタな質問で申し訳ありません)2~4個ぐらいオススメの言語をあげていただけると嬉しいです。また、その言語を学ぶためのオススメ書籍も教えていただけると有難いです(1冊2500円程度で)。回答よろしくお願いいたします。

  • プログラミング

    中学校の技術の教科書で、プログラミングをやるんです。その言語が「BASIC」言語か、「LOGO」言語なんですけど、学校ではどのようなソフトを使ってプログラミングを行うのでしょうか? また、その言語でプログラミングを行うにはどのソフトがやりやすいでしょうか? ちなみに、学校で使っている教科書は東京書籍です

  • プログラミングと英語や言語の共通点ってありますか?

    プログラミングと英語や言語の共通点ってありますか?あれば1つでもいいのであげていただけると嬉しいです できれば英語でちゃんと訳せるものがいいです プログラミングと英語の勉強は同じだよという切り口で説明したいんです。 人間の言葉を機械に通じるように機械語に変えて命令をする。だからプログラミングっていうのは理数系の勉強に見えるけど、実は英語みたいな言語の勉強なんだよ 例 プログラミング言語 programming language C言語 c language プログラミングにも文法という言葉があるgrammar? プログラミングにも翻訳という言葉があるinterpreter? プログラミングにも構文という言葉があるsyntax?

専門家に質問してみよう