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

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

新規登録して質問してみよう
ただいま回答率
85.49%
オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1144閲覧

プログラミングに登場する用語

strike1217

総合スコア651

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2017/07/21 14:04

C/C++に登場する用語でわからないものがあります。

1,シリアライザ
2,コールチェーン
3,シングルトン

調べてみました。

1,
シリアライズ

1,ある一つの資源を、複数の主体が利用しようとするときに、それを調整(同期)して、一つの時点では一つの主体だけがそれを利用するようにすること。この意味では逐次化という訳語が用いられる。対義語は並列化である。

2,ある環境に存在しているオブジェクト(のネットワーク(グラフ)構造)をバイト列に変換すること。この意味では直列化という訳語が用いられる。同義語にMarshalling (マーシャリング)がある。対義語は直列化復元ないしデシリアライズである。

とのことです。
・・・?
えーーと、プログラムは逐次的に実行されていくものですよね?
プログラム = シリアライザされたものと考えて良いんですか?

デバッグ情報を残すことによって、Cなどでも実行時に十分な方情報を得られることがわかります。

このような方法を用いれば、シリアライザなどをCで実現することも可能でしょう。

??
なんのことだかさっぱりわかりません。

バイナリ シリアライザについて

2,コールチェーンを制御するためのライブラリがあります。
libunwindなどですね。(バックトレースやどこから呼ばれたかという情報を手軽に取得することができます。)
コールチェインとはなんの情報でしょうか??
チェーンとコールバックの違い

スタックと大きく関係があるようです。

3,

Singleton パターンを用いると、そのクラスのインスタンスが1つしか生成されないことを保証することができる。

インスタンスとはオブジェクトのことですよね?
1つオブジェクトを作成すれば、当然1つしか存在しないですよね?
勝手に複数個生成可能性があるということですか??

??
保証することができて、どのようなメリットが生まれるのでしょうか??

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

えーーと、プログラムは逐次的に実行されていくものですよね?

プログラム = シリアライザされたものと考えて良いんですか?

マルチ・スレッド・プログラミングで良く使われるテクニックの1つです。
ミューテックス等で資源を保護することも考えられますが、当該資源を操作する処理を1つのスレッドへ依頼し、そのスレッドでのみ行うことで処理を「シリアライズ」し、多重アクセスによる資源破壊のリスクをなくすテクニックです。

デバッグ情報を残すことによって、(後略)

については元ネタが分かりませんでした。この部分だけを見ると、私にも理解できません。マーシャリングする際、デバッグ情報にアクセスすることがたいへんなのであまり役に立たないと思います。

C#やJava等で実装されているシリアライザはリフレクションを使い、クラスを構成するメンバ変数情報をプログラムからアクセスして、指定メンバをファイルへ保存したり、回復したりするプログラムです。

C言語(C++も)だけで同様なものを作ことは不可能です。高度なプリプロセッサ的なものが必要になります。因みにboost::serialization等で、シリアライズしたいメンバのリストはプログラマが作ります。ソース上に書いてあるので自動的に拾ってくれると良いのですが。
(チョット宣伝ですが、高度なプリプロセッサ的なものを実装したシリアライザを開発してます。)

コールチェインとはなんの情報でしょうか??

libunwindを使うものは、スタック・トレースです。Visual Studioでは「呼び出し履歴」と呼ばれてます。プログラム実行中の特定の時点において、そこに到達するまでにスタックに積まれた戻り番地のリストです。

チェーンとコールバックの違い 」は言葉は似てますが、全く別の話題です。

1つオブジェクトを作成すれば、当然1つしか存在しないですよね?

その通りです。シングルトンもその点では同じです。
異なるのは、シングルトンは複数作ろうとしても作れないことです。コンパイル・エラーになる場合が多いでしょう。

保証することができて、どのようなメリットが生まれるのでしょうか??

複数あったら困るものを1つしか作れなくなるので、ドキュメントに不備があったり、ドキュメントを読みこそこなっても安心です。

投稿2017/07/21 14:37

Chironian

総合スコア23272

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

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

strike1217

2017/07/21 14:51

2番はバックトレースを行うための情報という理解で正しいですか? 「戻り番地のリスト」=コールチェインということですね!!
strike1217

2017/07/21 15:02

シリアライザについては・・・ wikiの1番の方は、マルチスレッドプログラミングに使われるテクニックですね! 2番の方も・・・そうなんですか?
Chironian

2017/07/21 15:08

すいません。「コールチェーン」は知りません。ググったら石炭の話がでてきました。http://goo.gl/XPkvfd 本当にコンピュータ用語でしょうか? > 2番の方も・・・そうなんですか? 全く違いますよ。Wikipediaにも書かれてます。「次のような異なる2つの意味を有する。」です。
strike1217

2017/07/21 16:46

「コールチェーン」は私の持っている本に出てきた用語なので・・・・ コンピュータ関連ですよ。
strike1217

2017/07/22 03:30

「デバッグ情報を残すことによって、(後略) 」 これはwikiの2番の方ですかね。 wikiの1番は、マルチスレッドプログラミングの話ですよね。
Chironian

2017/07/22 06:46

Bongoさん。 なるほど"Call Chain"でググればでてきました。ありがとうございます。 strike1217さん。 > 「デバッグ情報を残すことによって、(後略) 」 これはwikiの2番の方ですかね。 元情報の文脈は不明ですが「シリアライザ」の単語があるので2番の方と思います。(マルチスレッドにおける、シリアライズによる排他処理を自動的にプログラムするような「シリアライザ」って、まずないと思いますから。) > wikiの1番は、マルチスレッドプログラミングの話ですよね。 と思います。シングルスレッドはもともと直列処理しかできませんので、「わざわざシリアライズする」と表現することは稀でしょう。
strike1217

2017/07/22 06:54

なるほど! わかりました!!
yumetodo

2017/07/22 09:58

一般にシリアライズ/デシリアライズする、といえばjsonなりxmlなりをパースして構造体ないしそれに類するものにぶち込むことを指すんじゃなかろうかという素朴な疑問・・・
strike1217

2017/07/22 10:51

「jsonなりxmlなりをパースして構造体ないしそれに類するものにぶち込むこと」 シリアライズだけでかなりたくさんの意味があるんですね・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問