|
1. 概要
SC 22では,各プログラム言語の規格,言語共通の規格,プログラミング環境やシステムソフトウェアとのインタフェースに関する規格の開発を行っている.現在の国際のSC 22の構成は,COBOL,Fortran,C,Ada,Lisp,Prolog,C++,VDM-SLとZ(仕様記述用言語)を担当するWGがあり,そのほかに言語共通事項(データ型,算術,手続き呼出し,結合方法など)を扱うWGがある.APL,BASIC,Modula-2,Pascal,PCTE (Portable Common Tool Environment),POSIX,国際化機能は,保守フェーズに入っている.
SC 22の総会は,2006年9月に英国ロンドンで開催され,日本からは4名が参加した.WG関係では,COBOL,Fortran,Ada,言語共通,Lisp,C++ のWGに積極的に参加した.
なお,2006年度に投票したNPは2件,PDTR 4件,CD 4件,FCD 1件,FPDAM 1件,DIS 1件,FDIS 0件,FDAM 1件,DTR 1件,国際規格の出版は,IS 12件,TR 4件,AMD 1件,COR 3件であった.
2. 主なプロジェクトの進捗状況
2.1 COBOL WG(WG 4)
2008年を目標にCOBOL規格の改定作業を進めている.WG 4では改定すべき項目と方針を決め,米国のINCITS (InterNational Committee for Information Technology Standards)/J4 (COBOL規格委員会) が委託を受けて,規格原案を作成している.主要な改定項目のうち次の三つについては,先行して現行の2002年版規格に対するType 2 TRとして発行し,その後で次期規格に追加するその他の仕様との整合性をとりながら,次期の規格案本体に仕様を取り込む方針である.
- ISO/IEC TR 19755, Object finalization for programming language COBOL(オブジェクト指向のFinalization機能):2003年12月に発行済みのType 2 TRである.日本の高木渉(日立)がエディタを務めている.
- DTR 24716, Native COBOL Syntax for XML Support (COBOLファイル入出力仕様に似た文法でXMLデータをアクセスする機能):2007年4月に承認された(日本はコメント付き賛成投票).
- DTR 24717, COBOL collection classes (オブジェクト指向のcollectionを扱うクラス):2007年6月締切りで投票中である.2007年6月のWG 4会議で,これらのTR仕様を含めて,次期規格に取り込む仕様範囲を再度議論して決定する予定である.
なお,2002年版COBOL国際規格に対するTechnical Corrigendum 1と2が,2006年6月に発行された.
2.2 Fortran WG(WG 5)
2006年度の主な作業は,2004年に改正発行された第1部(通称 Fortran 2003)の Technical Corrigendum 第2版の作成および第1部の次期改正(2009年8月改正版発行を予定)に向けた仕様検討であった.Technical Corrigendum 第2版は,10月締切りの投票で承認された(日本はコメントなし賛成投票).第1部の改正作業は,WG 5で決めた要求仕様に基づき,原案作成母体の米国INCITS/J3が詳細な仕様検討を行い,その作業内容をWG 5会議にてチェックするという形で進めている.また,既存の第1部に盛り込まれているプログラム言語Cとの相互運用性機能の仕様拡張を検討するためのNP提案の投票が2007年1月締切りで行われ,賛成多数で承認された(日本はコメント付き賛成投票).
国内委員会は,WG 5の国際的活動に直接関与しながら活動を続けている.2006年度は開催されなかったが,通常年 1〜2回開催されるこのWG 5会議には日本からも代表者を毎回派遣し,第1部改正作業やTechnical Corrigendum原案作成作業などの議論に直接参加し,大きく貢献している.また,国内では,国際規格の改訂に併せて,JIS X 3001-1の改正原案を作成する作業を継続して進めている.
2.3 Ada WG(WG 9)
Ada言語規格(ISO/IEC 8652:1995)の改訂作業が完了して,Amendmentとして発行された.WG 9は,次の活動としてASIS(ISO/IEC 15291:1999,Ada Semantic Interface Specification)の改訂,Posix bindingの見直し,containerなどのAPIの拡充を挙げているが,具体的な規格案には至っていない状況である.
2.4 言語共通WG(WG 11)
WG 11の各プロジェクトの状況は,次のとおりである.
(1) FCD 10967-3 LIA-3
一連のLIA(Language-Independent Arithmetic, 言語共通算術)規格の最後にあたる複素数演算および関数(Complex integer and floating point arithmetic and complex elementary numerical functions)のFDIS投票が2006年1月締切りで行われた.日本は,FCDの時にも大量のコメントをして受け入れられたが,FDIS投票においても新たに大量のコメントが見つかった ので反対投票を行ったが,賛成国も多く承認され,2006年5月に発行された.日本のコメントは次期改訂時に取り込まれる.
(2) ISO/IEC 11404 Datatypes
5年見直しの機会を捉えて改訂を加え,XML等の新しい規格での需要に応じる作業を開始し,2005年5月締切りでFCD投票が行われた.日本は技術内容や編集上の大量のコメントも添えて反対の投票を行ったが,承認された.現在,FDIS投票の開始に向けて議論が行われている.
2.5 C WG(WG 14)
WG 14では,C言語の1999年規格ISO/IEC 9899:1999に対する次の改訂に向けて,以下のTRの検討が進んでいる.
(1) TR 18037 Embedded C(2004年7月発行)
組込みプロセッサの特性を最適に引き出すようなプログラムを可搬性のあるC言語で開発することを可能とするように,既存C言語の構文と意味規則に対して拡張を施すType 2 TR.
(2) TR 19769 new character data types(2004年7月発行)
UTF 16でエンコードされた文字をそのまま内部データとして扱えるビット幅固定の新データ型を導入するType 2 TR.
(3) TR 24731-1 Extensions to the C Library, Part 1: bounds checking interfaces
Cのライブラリ関数が潜在的に持っているセキュリティ脆弱性を解決するためにライブラリ関数の拡張を行うtype 2 TR.新関数は,既存関数と機能的には同等だが,バッファ長を示す新規のパラメータを持つ.これにより既存のプログラムは,アルゴリズムを変えずに関数の置き換えを行う程度で配列の境界チェックが可能となり,脆弱性への対処ができる.2006年8月にDTR投票(日本はコメントなし賛成)が可決され,WG 14がTR発行の作業を進めている.
(4) TR 24732 decimal floating-point arithmetic
IEEE-754R に基づく10進浮動小数点計算に対応可能とするための拡張を行うType 2 TR.2006年9月にPDTR登録投票 (日本は積極的に賛成する理由がないため,棄権)が承認された.
(5) TR 24747 Mathematical Special Functions
ISO 31-11:1992 Quantities and units - Part 11に定義されている全ての数学特殊関数を標準ライブラリに追加するType 2 TR.2006年11月にPDTR登録投票(日本は賛成)が承認され,WG 14がDTR投票の準備を進めている.
(6) TR 24731-2 Extensions to the C Library, Part 2: Dynamic Allocation Functions
文字列のコピーなどでのバッファオーバフローを防ぐSecure C Libraryの第2部.第1部(TR 24731-1)は,既存の関数と置き換え可能な,境界チェックを行う関数の提案だけだったが,第2部は,動的にバッファを確保する関数の提案である.これらの新関数は,処理の後でメモリ解放などを行う必要があるため,単に関数の置換えをするだけでは済まないため,新規に開発するプログラムに適用されることを意図している.2007年4月にPDTR登録投票(日本は賛成)が承認され,WG 14がDTR投票の準備を進めている.
2.6 Lisp WG(WG 16)
Lisp系言語の国際規格であるISLISP(ISO/IEC 13816,JIS規格はJIS X 3012「プログラム言語ISLISP」1998年制定)は,1997年に制定された.
2002年9月に日本のLisp WG主査の湯淺(京大)がWG 16の新しいConvenorとなったのを機会に,JIS規格作成時に明らかとなった国際規格のDefectsを改めるため,日本のLisp WGがTechnical CorrigendumおよびRevised Reportの作成作業を開始した.その後,WG 16のProject Editor(米)との詳細打ち合せ,フランス等のメンバ国とのメール議論を経て,両ドキュメントが2004年7月に完成した.2006年8月締切りでRevised ReportのFCD投票が行われ,承認された.その際に,ITTFから体裁に関するコメントが届き,それに従って体裁を改訂し,DISへ進む作業を完了した.
2.7 Prolog WG(WG 17)
Prolog言語の国際規格として1995年にISO/IEC 13211-1 Prolog-Part 1: General Coreが,また2000年にISO/IEC 13211-2 Prolog-Part 2: Moduleが制定 された.Prolog-Part 1に対するJISとして「JIS X 3013 プログラム言語 Prolog‐ 第1部:基本部」(要約JIS)が2001年に制定されている.
WG 17は,これらの規格の見直しに加えて,付加機能および実際に使われている多くの組み込み述語の標準化作業を進めており,マルチスレッドとユニコードに関する作業を開始することが決定された.付加機能のうち,確定節文法(DCG)については2006年にISO/IEC 13211 Part 3のTechnical Reportとすることが投票によって承認された.また,日本のWGが先に提出した大域変数と配列機能の付加機能について審議され,次段階のドラフトの提出が求められている.
2.8 C++ WG(WG 21)
C++言語の国際規格は,1998年にISO/IEC 14882:1998として制定された.5年後に改訂された版ISO/IEC 14882:2003は,defectsの修正を目的とし,大幅な言語仕様の改訂は行っていない.現在,2009年度の改訂を目標として,ライブラリおよび言語仕様の大幅な追加や修正が検討されている.
(1) ライブラリ仕様
正規表現を始めとする様々なライブラリの追加が検討されている.提案された仕様は,Type 2 TR (TR 19768, TR 24737)として検討して まとめられ, その中から次期改訂に追加する仕様を選択する.
(2) 言語仕様
従来のリファレンスを拡張した Rvalue Reference, template の引数の型に対する要求仕様を明確化する Concepts や マルチスレッドなどの追加や修正が提案されており, 活発に検討が行われている.
(3) その他
日本が中心となって提案したperformanceに関するType 2 TR (ISO/IEC TR 18015)は,2006年9月に発行された.
3. その他
3.1 Linux規格のFSGからのPAS提案の出版
PAS提案者のFSG(the Free Standards Group)から,LSB(Linux Standards Base)規格が提案され,2005年にPAS投票(DIS 23360)が行われた.日本を含め各国からの多数の反対コメントがあったがそれらに対するFSGのDispositionを各国が受け入れ,2005年11月に承認された.その後,発行手続きが遅れていたが,8部のマルチパート規格として2006年12月に発行された.
ISO/IEC 23360-1:2006 Linux Standard Base(LSB) core specification 3.1
-- Part 1: Generic specification
-- Part 2: Specification for IA32 architecture
-- Part 3: Specification for IA64 architecture
-- Part 4: Specification for AMD64 architecture
-- Part 5: Specification for PPC32 architecture
-- Part 6: Specification for PPC64 architecture
-- Part 7: Specification for S390 architecture
-- Part 8: Specification for S390X architecture
3.2 EcmaからのFast Track提案の出版
2006年度に投票があり承認された次の5件のEcma規格が国際規格として出版された.
(1) ISO/IEC 23270 C# Language Specification
ISO/IEC 23270:2003の改訂版であり,Generics機能などが新たに追加された.
(2) ISO/IEC 23271 Common Language Infrastructure
C#, COBOL, Eiffelなどの共通言語基盤の規格であり,ISO/IEC 23271:2003の改訂版である.
(3) ISO/IEC TR 23272 Common Language Infrastructure (CLI), TR Information from Partition IV XML File
ISO/IEC TR 23272:2003の改訂版である.XML情報をまとめたTRであり,日本は賛成投票を行った.
(4) ISO/IEC 25436 Eiffel Analysis, Design and Programming Language
Eiffelと称する言語規格の新規提案である.
(5) ISO/IEC TR 25438 Common Language Infrastructure(CLI), TR Common Generics
EiffelのためのCLIの拡張である.
3.3 EcmaからのFast Track提案の廃棄: ISO/IEC 26926 C++/CLI Language Specification
C++言語規格(ISO/IEC 14882)をCLI環境で動作させるためのC++言語の拡張規格である.2006年8月締切りで投票が開始され,日本はSC 22専門委員会内にアドホック委員会を設けて審議を行い,多数のコメントを付け「条件付き反対」の投票をしたが,最重要コメントは,C++言語規格との乖離が大きいのでC++という名前を使うべきではないというものであった.日本および欧米の9カ国が同様のコメントを出して反対したため,反対多数で承認されなかった.2007年4月のBallot Resolution会議での解決が図られたが,Ecmaは,反対コメントへの対応案を提案できないとしてこのプロジェクトは廃棄された.
|