講座 データ処理のためのプログラミング言語[Ⅱ]――C++言語編――

電子情報通信学会 - IEICE会誌 試し読みサイト
Vol.102 No.7 (2019/7) 目次へ

前の記事へ次の記事へ


講座

データ処理のためのプログラミング言語[Ⅱ]

――C++言語編――

Enjoy Data Processing[Ⅱ]:C++ Language

齋藤和広

齋藤和広 (株)KDDI総合研究所統合分析プラットフォームグループ

Kazuhiro SAITO, Nonmember (Integrated Analysis Platform Laboratory, KDDI Research, Inc., Tokyo, 102-8460 Japan).

電子情報通信学会誌 Vol.102 No.7 pp.660-665 2019年7月

©電子情報通信学会2019


目次

1.は じ め に

 C++言語は,C言語の派生系として,ハードウェア操作などの低水準言語として利用可能であるだけでなく,クラス(用語)を利用したオブジェクト指向(用語)プログラミングによって大規模なソフトウェア開発にも対応できる.また,コンパイル型言語(用語)としてプロセッサが直接実行可能なネイティブコードを出力するため,実行時の性能面に強みがあり,データベースシステムなどのデータ処理性能が強く求められるミドルウェアの実装に多く取り入れられている.

 本稿では,C++言語が持つデータ処理のためのプログラミングの特徴を解説する.C++言語におけるデータ処理で重要となる機能として,データの入出力と処理における特徴的な機能を実際のコードとともに解説し,ハードウェアを活用するためのライブラリ群を紹介する.

2.C++言語の概要

 C++言語(1)は,Stroustrup氏によって開発された汎用型のプログラミング言語である.1979年に開発が始まり,当初はC with Classesという名であったが,1984年にC++言語へ改名された.C++言語の設計思想は,C言語の高速性及び柔軟性を維持したまま,クラスによって大規模なソフトウェア開発に対応することである.そのためC言語と互換性がある.この互換性の考え方は,その後のC++言語の改良においても強く意識されており,過去のバージョンも動作する後方互換性がC++言語の特徴の一つとなっている.C++言語は,C言語の特徴を継承することで高速性及び柔軟性に強みがある.一方で,異なるプラットホームへの移植性,多人数開発における保守性,メモリ解放漏れによるメモリリークなどのプログラム上の安全性が他のオブジェクト指向型のプログラミング言語と比較して劣り,プログラマの能力に依存している.本章では,この特徴をJava言語と比較することで解説し,プログラミング言語としての機能面の特徴を解説するためにC++言語の標準規格について述べる.

2.1 Java言語との比較

 オブジェクト指向型のプログラミング言語であるJava言語(2)と比較しながらC++言語の特徴を紹介する.C++言語は,コンパイラによってネイティブコードを出力することで実行時の高速性を実現している.一方でJava言語のコンパイラはオブジェクトコードを出力し,Java仮想マシンがそのオブジェクトコードをインタプリタ実行している.そのため,機械語を直接実行するC++言語が性能面で優れているが,プラットホーム非依存であるJava言語と比較してC++言語の移植性は低い.


続きを読みたい方は、以下のリンクより電子情報通信学会の学会誌の購読もしくは学会に入会登録することで読めるようになります。 また、会員になると豊富な豪華特典が付いてきます。


続きを読む(PDF)   バックナンバーを購入する    入会登録


  

電子情報通信学会 - IEICE会誌はモバイルでお読みいただけます。

電子情報通信学会誌 会誌アプリのお知らせ

電子情報通信学会 - IEICE会誌アプリをダウンロード

  Google Play で手に入れよう

本サイトでは会誌記事の一部を試し読み用として提供しています。