No.4ベストアンサー
- 回答日時:
わお!思いっきり間違ってました。
『構造化プログラミング言語』ですね。
構造化プログラミング言語の最低条件は
・基本3構造を記述可能な制御構文をもっている
・サブルーチン、関数などの副プログラムをサポートしている
・分割コンパイルをサポートしている
(インタプリタの場合は「外部ソースにある副プログラムの呼び出しが可能」)
となります。
制御構文に関しては「ブロックIF文」と「後置条件ループ」の存在が分岐点でしょう。
「多岐選択分岐(switchなど)」は必須条件ではありませんがサポートされていることが多いようです。
一般的には
・他言語で記述された副プログラムを呼び出すことができる
・レコード型のデータ構造の表現ができる
が加わります。
私的には
・再利用可能な副プログラムが記述できる
・再配置可能な副プログラムが記述できる
の2点を(勝手に)加えています。
機種/OSに影響を受けますが
・再入可能な副プログラムが記述できる
・再帰呼び出しを利用できる
以上に加えてこの2点が満足されていればアルゴリズムの記述に困ることはほとんどありません。
現在パソコンで広く利用されている高級言語はほとんど当てはまります。
全てのオブジェクト指向プログラミング言語も構造化プログラミング言語の用件を満たしています。
No.5
- 回答日時:
補足:
> 昔のBasicなどは違いますが,最近の言語は基本的には構造化プログラミング言語と言っていいと思います.
> この一歩先の概念が「オブジェクト指向」「オブジェクト指向言語」だと思います.「クラス」の概念の導入ですね.「Java」「C++」などはこれですね.
第1文で,「Java」「C++」も構造化プログラミング言語の一種(2種?)であることを(暗に)示し,第2文で,これらの言語はオブジェクト指向の概念を新たに導入している,ということを付け加えたつもりでした.ちょっと言葉がたりなかったかもしれません.
蛇足ですが,念のため補足しておきます.
No.3
- 回答日時:
いわゆる『構造化プログラミング』は
・基本3構造によるプログラムロジックの記述
(順次、条件分岐、繰り返し)
・サブルーチン、関数など副プログラムの使用
(プログラム構造の階層化)
・データ構造主導のアルゴリズム選択
(配列ならループ、リストなら再帰など)
といわれています。
昔、汎用系ソフト開発技術者の間で流行った『SPコーディング(構造化プログラミングコーディング)』では
・goto文は極力避ける
・プログラム制御構造にあわせた時下げを行う
などの"比較的どうでもいい”条文が追加されていました。
構造化プログラミングの提唱者であるE.W.ダイクストラは「構造化プログラミングはコンピュータの機種選定、データ構造設計、プログラム構造設計、アルゴリズム選択、コード実装の全般で行われなければならない」と言っています。
真の構造化プログラミングを学ぶなら『構造化プログラミング』(サイエンス社、ダイクストラほか)を読んでみてください。
また、データ構造主導のアルゴリズム選択に関しては『アルゴリズム+データ構造=プログラム』(サイエンス社、ヴィルト)が良いでしょう。
アルゴリズム全体を見回した場合『Art of Computingシリーズ』(サイエンス社、クヌース)が最適です。
余談ですが、オブジェクト指向プログラミングパラダイムは構造化プログラミングに反するものではありません。
"いわゆる構造化プログラミング”(および、構造化プログラミングの説明で用いられる多くのアルゴリズム)が手続き型プログラミングパラダイムを前提とするためにオブジェクト指向における応用が難しいと思われがちですが、"真の意味での構造化プログラミング”はオブジェクト指向プログラミングにおいても大いに参考になります。
No.2
- 回答日時:
専門家ではないので多少違っているかもしれませんが,
for 文, while文, switch case 文, block if 文, 関数定義などを利用して,
アルゴリズムの構造を明確にするプログラミング手法だと認識しています.
if, goto だけでも基本的に同等のことはできるはずですが,何をやっているのかよくわからないプログラムになりがちです.そのようなソースコードは,スパゲッティ―のようだと形容された時代もありましたが,もう死語かもしれません.
昔のBasicなどは違いますが,最近の言語は基本的には構造化プログラミング言語と言っていいと思います.
この一歩先の概念が「オブジェクト指向」「オブジェクト指向言語」だと思います.「クラス」の概念の導入ですね.「Java」「C++」などはこれですね.
No.1
- 回答日時:
構造化プログラミングが出来るプログラム言語のことです。
代表的なものにC や C++、Pascal があります。
参考URL:http://visio.ge.niigata-u.ac.jp/tbasic/Intro2Bas …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Visual Studio Codeについて
-
C言語で個人の趣味では何が出来...
-
曲を作るのにプログラミングっ...
-
^について
-
プログラミングの仕事って具体...
-
アセンブリ名とは??
-
PL/Iについて
-
exeファイルを作ったり改造した...
-
GUIを作りたい
-
プログラミングの雑談がしたい...
-
C言語 3次元グラフ
-
C言語を学ぶうえでの古典的な名...
-
図形の中心の取り方を教えてく...
-
プログラミングってなんですか...
-
遠隔地に情報を送る
-
C言語、C+、C++、C#の違い
-
なぜGIMPは使いづらいのか
-
Now Loadingについて
-
将棋ができるサイトをつくりたい。
-
自営業でも実務経験に入る?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Visual Studio Codeについて
-
アセンブリ名とは??
-
exeファイルを作ったり改造した...
-
趣味レベルでプログラミングを...
-
CSVデータの"(ダブルクォーテ...
-
procってなんですか?
-
作業工程 SDとMD
-
push any key で終了する方法?
-
VBAプログラミング
-
リピート再生が出来ません
-
プログラミングの雑談がしたい...
-
曲を作るのにプログラミングっ...
-
Python で筆算のプログラミング...
-
VBA フォルダ アクセス権限付与
-
プログラミングの質問です。x^2...
-
VB 1対1の簡単なチャットプログ...
-
MFCとC++/CLIとの比較
-
Try Kotlinで readLine()を使う...
-
VBでアナログ時計を作りたい
-
小学1年生の子です。塾に行かせ...
おすすめ情報