• 検索結果がありません。

日立製作所大 高 政 浩情報処理教育センター矢鳴虎夫

N/A
N/A
Protected

Academic year: 2021

シェア "日立製作所大 高 政 浩情報処理教育センター矢鳴虎夫"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

FORTRANプログラム採点ツール

(昭和60年5月31日 原稿受付)

情報処理教育七ンター中山泰雄

日立製作所大 高 政 浩

情報処理教育センター矢鳴虎夫

AGrading tool for FORTRAN Programming Style

by Yasuo NAKAYAMA

   Masahiro OTAKA    Torao YANARU

      Ab5tr阻et

  h・・mp・・e・p・・9・am ht・・acy」・i・・e・y imp。・t・nt h。w t・・町i・・a・・ad・bl・p・・9・am. R,、d、bility i,

m田tly related with programming style.

  We have developed a toDl to mea5ure programming style, which is bascd on the theory wHlten in the bo⑪k The elements of programming 5tylピby B、 W. Kernighan.

  Alarge amount of program groups such as IMSL Subrouline Packagピ, popular programming text s

excises, and studenゼs program are illvestigated by the tool, when the items of evaluation are set as fo].

1。wing, e.9.,

ωindentation in DO bop,②number50f eommem he.

  1ti・…d岨t・dth・tth・d・Ψd・P・dp・・g・・m・v・1・・ti。・t。。い・…f・h・m・・・…g・・d・・…fp・。9・

ramming and programming education.

       の適用結果について述べる。

 1。まえがき

       2.評価方法  プログラミング入門教育では,演習の比重が大きい。         .

演習レポートの適切な評価と,迅速な学生へのフィード  2.1 評価項目

バックは教育上不可欠である。しかしながら多人数教育   一応の目安として次の12項目を選んだ。

では出題者にとりかなりの負担となる。このためレポー  〔11プログラムの長さ

トのプログラムの一部を計算機により自動的に採点出来   プログラムの行数,即ちカードイメージならばカード るならば.採点者の負担は軽減される。プログラムの良  の枚数と同じものである。

さの評価では,先ずプログラム内容の理解が容易である  ②注釈行の割合

ことが第一であろう。この面での教育を重視するならば,  プログラムの長さに対するコメント行の割合である。

プログラムスタイルをいくつかのパラメータで計測する  コメント行は,プログラムを説みやすくするうえで.重 ことにより,或る程度の評価力呵能となる。この目的で  要な要素である。これは多い方が良いが,あまり多過ぎ カーニハン「プログラム書法」の提案を基盤として,  るとプログラムが読みづらくなる場合がある。

FORTRANプログラムのスタイル面の計測ツールを開  {3}空行の罰合

発した。各計測項目パラメータの統計結果,及びツール   プログラムの長さに対する空行の割合である。空行と

(2)

108       中山泰雄・大高政浩・矢鳴虎夫

は.第1カラム以外がプランクであるコメント行である。 ㈹ラベルのシーケンス

空行はプログラムを処理単位ごとに区切るときに.視覚   文番号が小さい順序になっているかどうかのチェック 的に非常に分かり易くする。      を行う。]モジュール中で文番号がシーケンスになって

(伽0文に対す碑下げ       いオuまLシーケンスになっていなけオuエoとする・全

 プログラム中でDO文が出現したとき,その次の行  モジュールについて調べ・次の計算で求める。

を1カラム以上5カラム以下の字下げを行っている船  シーケンスになっているモジュール数 でを示す.       モジュール数

  字下げをしている行の数

     DO文の数      文番号がシーケンスになっていれば,必要な文番号を探 DO文の範囲が嚇であれば内容の理解度は大きい為 す場合,鰍な馴をとらずデパ・グの効率が良い・

この堀の重要度縮いこと1娘椥られて・・る.  FORMAT文は大き嫌にする例が多いが・この場合は 固サブルーチン,ファンクシ・ンの割合    まとめてプ・グラムの最後に置くと郎 ・

 全モジュール数に対するサブルーチン,ファンクショ  112)1行の平均長

ンの割合を示す。ここでモジュール数とは,END文の   プログラムの1行の文の長さの平均を示す。これは従 数に等しいものとする.例えば・イン・レーチンと3つの 来のカードイメージで考えたとき・カードの何カラム目 サプルーチンから構成されるプログラムは.モジュール  まで文字があるか,ということである。

数・となる・長いプ゜グ弘では出来るだ肘ブノレーチ

@3.評価囎の酬

ン化することが肝要であることを示す。

噛込融の敷         3一酬の対象

 コンパイラーが内部間数と判断した間数の数である。 各の翻について評価するため目よ魂切な騨値が 但しここでは肥LC・MのF・RTRAN Wを対象とし必要となる・そのため・幾つカ のサンプル1こより紺を ている.こ旭組込閲数があるとき1よ,出軽だけ利用 求めた・サンプルとして次のグルづを支橡とした・

すべきことを示す。      8.IMSLサプルーチン

      最も良く知られた科学技術計算用のソフトウエア

{7}変数の長さ

 使用されている類名の長さ押均したものである.  である・この中か服初の1°°フ・イルを用し た・

変数名喘い叱その鰍が分力・暢い.ここでは. b・演習問題の模範解答

6文字乃至8文字【、近い程よいとしてある。    国内でF・RTRANの教縛として比酬多く使

〔、}難名の数         用されて・・る・浦昭二「F°RT貼N入11『・の模

  使肌た獺名の種類の数であるに般1・麟名が多  範瀦である・76フ・イルカ{士橡である・

い程,処理内容が分か牌すいと・・える.    ・・比較例題

      カーニハン「プログラム書法」中の例題である。

{9)自OTO文の数

  無条件GOTO文の数である。 GOTO文が交錯する   d・演習レポート1

と,プ。グラムは耕1・継づらくなる.F・RmAN  昭和59鞭鍼る学手斗のプ゜グラミ 酷醐

ではG。T。文を全く使肌ないことは撫理であるが. 習レポートであるが・学期の最初の頃の簡単な出 昧るだけ使用齢いを剛すこと力哩ましい。こ醜  題の内容であり・37フ・イルが対象である・

目は減点冒櫛を行う。        f・演習レボート2

耐。グラムの鞠長さ      同じく・9鞭の3学科欄象で酬85フ・イル・学

  ,引で説明したモジュールの長さの平均値である.つま 期の中程での出題である・

 りプログラムの全行の長さをモジュール数で割った値で  3.2統計結果

ある.TSS入力の場合1モジュー・・がせ・・ぜい2.3 これらの5つのグ・・一プごと統計処理を行った・勅 画面胴であることがデパ。グ上で臨まし・・といえる.たもの服大値,最小値・鞠値撹び酬酷である・

       表一1にその結果を示す。

(3)

これから各評価項目について検討すると,         eは0.04個である。一般に使用回数は少ないがプログ

(1)プログラムのながさはaがかなり大きい。この項目で   ラムが長くなると大きくなる。

 は.ばらつきが大きいが内容上当然であろう。     {7)変数の平均畏は,L2から2,5でありいずれも短すぎる。

(2)コメント行の割合はaの場合、20%〜80%であり,平   DO文での制御変数が1文字の場合が多いのが原因の  均で50%程度である。その他は平均で10%程度である。  1つであろう。

 コメント行は50%程度必要とみなせる。        (8}変数の種類は,aが30個程度である坑他は10個程度

㈲空行の割合は.b. cでは2%程度dは0.1%と極端に   である。これはプログラムが長い程,大きくなる。

 低い。a. eは8−−11%である。      〔9)GOTO文の数では,旦, cは55個, b, dは1個、

(4)DO文での字下げでは. a, eは80%以上. bは   eは2.5個である。プログラムが大きくなると多くな  60%が字下げを行っているがc,dは0である。     る傾向となる。

(5}サプルーチン等の割合では,aは全てサブルーチンで  OOプログラムの平均長は. aが190行, b, dでは20行,

 あるからユ00%である。c. eはメインプログラムだ   cが40行, eは60行程度である。 aは少し長すぎると  けであるから0となる。bは16%. dは50%と対象   いえよう。

 で値は異なる。       {11)ラベルのシーケンスでは,aは殆ど100%でありb,

(6}組込閲数の数はa,c, dが2個程度, bは0.5個,   c, dは50%, eは4%である。 eのグループでは

表一1 評価項目の統計結巣

      1息}

       〔d〕

   HA巨   H川    HEAN   S・o・     HA買   H川    HE畑   S.D

1   482・00     4」0・00       187・88     113・三1      1    83.00     37.00         40■86       8.56

2  0』2  0・22   0・53  0・14  2  0.08  0』2   0』6   0』1 3  027  0・03    0・11   0・06  3  0.03  0』0    0』0   0』1 4  1・00  0・00    M〜   0・ヨ3  4  0.00  0』0    0』0   0』0 5  1・00  1・00    1』0   0』0  5  0.67  0.50    0.51   0』

6  12』0  0』0    ¶・76   2』8  6  3.00  2』0    2』ヨ   0.17 7  昌27  †・75    〜・82   0・51  7  1.93  口6    1.5凸   0コ0 8 86』0  7・o°  2且・oo  18・2?  葛 21.oo 12.。0  1輪.有2  2』5 9  42』0  0』0    5・56   7・19  9  1、00  1』0    1』0   0.00

10  482■00    40・00      1邑7●88    」目ヨ・21    10   28.00    18・50      19.77     2.03

11  1』0  0』0    0・四   〇・rO  11  1』0  0.50    0.52   0』9

12   51.24    3L15      38.36     3.

       1三    20.88     1?・71        18.70       0・6ア

       {bl      (司

   Hj」寓       HIN      HEAN       S白D・      HAX       HIH      HEAN       S.D.

† 122.00   6.00    三5』4   20.56   1 U5』〇  三7』0    59.92   17.09

2   0.21   0』3     0.07    0.0     2   0.31   0.00     0.11    0』8 3   0.15   0.00     0.16    0.03   3   0.臼    0.00     0.08    0.06 4   1』0   0.00     0.61    0.49    陥   1.00   0.00     0.85    0.27 5   1』0   0.00     0.16    0.36    5   0.00   0.00     0.00    0.00 6   凸.00   0』0     0.49    0.86    6   2.00   0.OO     O』4    0.25

7    5白75     1・00        2.50      1.16      7    3● 6     1・1{i       〜.10      0・52

8  2 .00   Z』0     8.36    4.41   8  21.00   6』0     12.78    ;.01 9  10.0    0』0     0・?2    1・言1    9  28.00   0.00     2.51    5.16

10  105.00    8』0     25.臼    15.〒4   10  135』0   27.00     59.92    1?.09

11   1』0   0』0     0. 4    0.49   11   1』0   0.00     0.04    0.19 12  30.15   14.06     ZO.92    2.72   12  52.10   20.35     22.78    2.25

       {e}

   HM      H川        HEAN     S.o.

¶  砧.00   38.OO     4ヨ.00    7』7

2   0.17    0.05      0.11    0』8

3    0.03    0.02      0.02     0.00

4   0.00    0.00      0』n     o.00

5   0』0    0.00      0.00    0.00

6   2』0    2.00      2』0     0.00

7    2. 4    1.56       2』0     0.65

B   9.00    9.OO      9.00    0.00

9    6.00    5.00       550     0.71

10  偲.00   38.00     45』0    7.07

11    1.00    0.00      0.50     0.71

12   29.92   25.60      η.76     コ.05

(4)

110       中山泰雄・大高政浩・矢鳴虎夫

 FORMAT文をまとめてプログラムの最後に書くよう  1|「 ・「一川 11…… II         l:llll;1

       こ      ア  パけロロ   ロヨロ  エ  ロエ   ロ アヤ  セ    コニニじコじコバ

 に指導するとよい。       1・一・・   ・・・…一二         言:1器1

       ぺ       じロコむいぱ        ヒ  ロ ほヨロホづけコい    ロ よ ロふリ ハロ  カロ       にりじロロ 個1行の平均畏さはaで40カラム,cが30カラム、 b,  1_H   〔.、一、自…、II、,.,、.,、、._1、.,、、…ll:11;ll        エ      ちこ  いニニ

d,・は20カラム醗である・コ・ントカ「丁寧である i ……: :ll:㍑㍑lll    iiiiiiii

       ヒ  らにロ いほ ビロ  ロロ ロ れ けニレロじロ      にブロはじ  と畏くなる。尚TSS端末からの平均入力調査でもこ   ; 1、1川、   .1.1、一.,。..、.、_、_,..,、、  ll:跳        ヒ      てロ りいほらパ け けエれまロけ  リ オ  ロい ぼ    じぴ ロロぼ  の値は40カラム程度であった。      l       l m巳 Ll1二叫 亀II咀 uc い訓㎏【LH【t lll治l        l [5臼■ 1     1・,85U 膓」一呵 ♪ ・° {哨岨餉・tコ・  【:匂1。7臼

       じ」白」口〜10

       に   ルロ ノむべ        ロ  ゆしトパリ ヒネし ロい ロ モ い ロリ のもコ  ユロほほコじロはねロ

4.評価採点         i   烈;ぽ瓢1・1:跳ぽ∵iiiiiii

       こ一1.‥7「 °− 「− 「 ト・・一・一凸 凸一 ㊥←一一7・…  ・… ‥・一・一・・一一一・一一・一一一一、≒ nC} む

       に      ロロはバリ

4.1怖騨         ・::1:::∵1…∵Lf 』° ll;一・一・・− iiiiiiii

       びロ エ      えば チゆいいエ コ ロ ロ       いコ ロ ユ  前章で示した統計結果等を考慮し,採点条件の重み,   く  ,、、1、   ,、.眠, 、il1llll拙言ll,1㍑1織1;ll;:ll!・llll賠1       しロ   よロリユの いロペエユヤユハコ ロばよしゃロソピ  ロいロフトロ

許容債限界値等のパラメータを漣した。それらの値  」:1:1 鰐ii:。___..。_1、 iiiiiiii

       ヨ      じ  ロゆ       じにロ ロはロ を表2に示す。       , °問゜已 L 輌  ;三:謂1:i漂::lll;:1漂㍑:;;:1ゴ;;言識言㌫ 1跳i認        ホ       か ロエロドピ ほユエロロロパエトロナリユ ロ  ロばれエロセコ  むフ ゆえゆ

4.2採点例      一_.1,.〔…一・…一・− iiiiiiii

      ロロロい ヨ パコかパ      ロじ  いロ

 表2の基準により学生の採点を行うが,ここである学   、即別勒1     ,、1、M、_,、、,掴1、__,、llllllll

       に       ロユしロけ ぽ   べ じロ ま ほタロけユ りしロ  いコはトコロ

生のスタイル上良好とはいえないレポートブ・グラムと i    i:{il懸il:1;1蕊::1:iiiiiiii

       に       ロロ エコパエトオロリロロ ぽトコリ マドパ    ロロコロぼ

IMSLの1サプルーチンを対象としての採点を示す。プ   1       h・。・L・、,     ll:il;ll

       こ       ロト よ   いロ ロ  り オ  い ヨノ   おロコゆハは

・グ弘を比較すると.レポートではコメントカ・僅か2 1__,  一一1:!・一… iii罵

       ニ  しセむロ ヨ コヨよれ      うニリ トほ

行であり.IMSLではプログラムの頭部に内容の説明    ;;;∴自.、.、       [1:llllI

      ス  エ エ コエ       ロヘロ ロかよユ

があり注な処理単位ごとにそれぞれコメントがつけて  1。::.患・ ;㌦一一    iiiiiiii

      コユ にいロコ ロエ      かロ ロ り

ある。DO文についてみると,前者は全く字下げがな    1ll由       1;:lllll く・後者ではきちんと字下げが行われている。又ラベル      図_1 1MSLサゴルーチンソース

のシーケンスもレポートでは不十分である。変数名の長      プログラムの例 さもレポートでは1.54,IMSLでは3.64と大きく差が

生じている。

 図・−1がIMSLサプルーチンの1例,図一2がレ  の間である。空行の割合もaが4・1点, bが0・9,その ポートの例である。図一3が1MSLの採点結果,図一4  他は0.4前後である・

はレポートの採点結果である。       DO文での字下げではa, eが18点bが12点, c, d 4.3評伍の統計      では0である。組込関数では.c, dでは2点aは1.6  5つのグループについて,この採点基準を適用した1  点bは0.5点,eは0点であり.いずれも組込閲数を余 例を図一5,6に示す。IMSLでは大半が80点前後で   り使用していない。変数名の長さでは, aが9.1点. b あるがテキストの解答例では,かなり低い値である。   が7.0点,c, eが5.5点前後, dが2.8点である。ラペ

これは,最初の非常に短い解答も全てデータとしたのが  ルのシーケンスではaは満点(5.mであるがb, c,

大きな理由である。各項目の得点でみると,コメント行  dでは2.2点前後である。eは0.2点でほとんど得点がな の割合では,aが平均12点であり,その他は0から0.4  い。総合得点ではaは71点, bは31点, cは28点. d        は17点eは48点である。この差の要因は項目2.4.7.10.

         表・−2 評価基準      である・したがって充分にコメントをつけlDO文で

   卵 重み下四 許醐 上限 の字下ぽ変数名を意味のあ鑓さとする・知グラム

 1・蝋 川.、  ・。・ 5・.。o ・弧oo 500.ロ0 5・・.卯  の1つのモジュールを短くする等、で高得点となる。即

 コ ロパロこロリロの   うハロコロ    ロロオロ    ロコらロ    ロコらロ    ロぐヨロ

 i:1;i!:ll:: コ謡: 1:器  呂濫  継1 1:器   ちプログラムのスタイル上での改良が行える事となる。

 ち  エアロロサコ ロ    ニ ロ    ロロきロ    ロロちロ    オ ロ      ロ

 ;1瓢織;:l i;:器  !:ll  ll闘  1紹l ll:器    尚全体の総平均は,40点,最低点は4.3点であった。

 8 則岡VA ...     .口0    5』0   }0』0   うO・OO   叩 帥

 9  O〒0卓..,.   ●m.叩    印.OO   70』0   500.00   500』0

 1コ  VL【●F問..   1,.口    20.OO   50.OO   ,回0.00   ?OO OO  キ1 i晶〒匡巽0,..    5』O    O. O    O.,0    1.ロロ    1.00  η  川」…向亡Lr..    う.OC   1 .00   15.00   口・ロロ   50・00

(5)

CEX口       HEASURE  PO川丁5

c;;灘1離illl二幽……ミ1灘;講lil iil

   10  L(1)=O

      DO ll l.1,N      TOIAL POエ1↓T・ 15.72

      CALL GR

      A=FLOAT(川 ∫10000.0      図一4 図一2のプログラムの採点

      SUI仁SUI軒A      結果

      J=10毒A41       L(J)=L(J)†1

   11 cor」丁INUE      

.DOO

−  5_ロoo エ 

0 1       H二SUト1/FLOAτ(H)       5.000− 10.000 工 0 1       L!RITE(6,601) H        lo.000− @15.ODD I O I

  601F・R・・1^τ(1H,・HEIKIH・・,FIZ.6)   ;;二;8;:;;:lll}1{

      URITE(6,620)       25・000− 30.OOO 1 凸

1

  62・F。Rl帽(1・い・BUI1・ATSU B田・PUI) i;1;ll:i;:;8;1;}

      1r∫RITE(6,602) L        c.ooo − 45.ooo 1 1 1.

  60Z  FonHA丁{111 ,10工5)        〔L5.000 − 50.000 1  3 1■●・

      GOTO1       ;呈:呂器:三呂:呂81{ ;i::::::°

      EHD       60・Oロo − 65・000 1 

8 1.■且;亘1亀■

      SUBROUTINE 6R       65・ooo − 70唱000 1 1D I●・■■宜重・享・■

      CO刊卜10r↓田〆Nr1       ;1:呂呂8:;言:呂器li}{:::::::::::::1::::::::. 、.

      ト1=2主n1       日O.OOO − 85・O〔]0 1  8 1■田章・.・■■

      nlJ=140D【H,10皐倉4)       日5・OOO − 00・OOO I  8 1・.■・工島●■

      N1=国r{      ;!:1}91 :1:;:呂呂8 :  8 {

      RETURH       酬D

      図一5 1MSLの評価点のヒストグ        図一2 良くないプログラムの倒      ラム

       ・OOO 

−  5.000 

1  

1  工富

      5・000 

− 

10・001ユ 1  6  エ章皐宝富書富        10・000 

− 

15・000 

1  

6  工京卑章障墳章

       15.000 

− 

20 000 

1  

6  工富富富富宰富

      HEASURE        POIN「「S       20.000 ● 25 OOO I  g I牢牢培牢享■富富宝        25・000 

− 

30●000  1  7  1意寧牢富牢竃卑  1  HAI■LSENT   68・000000       .45       30・000  − ]55■000  1  11  1享■富■宮富富富富富牢  2  RATE…CH門T     ・602941       14・78      ヨ5・000 ■ 40.000 1 14 1章享竃章竃オ竃車丘*意意古古  ヨ  RATEBLHK      ●161765         5」00       40・000  − 45■000  1  7 1意オ牢富章*牢

 」L  RA1』EIND     1.00{〕000        20_00      

45.000 − 50・000 

1  0 

 5  RATESU日     1.00000[]         5・00       50■000 ■ 55■000  1  4 1‡車卑享  6  }JU卜1FUN(:      ■000000      、〔〕0       55・000 − 60・000  1  4 工富章牢オ  7  AuLENVAR    3.63{18B8        13.19       60.000 − 65・000 1  0 工  8  NUト1UARS    コ6.000000         5.00       65・000 − 70白000 1  1 1享  9  N(三〇TO        ●0000〔〕0         ・00      70・000 − 75−000 1  0 1 10  AuLENPRO   68.000000        「5・00       75・000 − 80■000 1  0 1 1「  RATESEQ      1・000000          5・00       80・000 ■ 85・000  1  0 工 12  AVLEHCLH   39.77gl」04         5白00       85.Ol]0 − 90●000 1  0 1        90.000 − 95・000 1  0 1          TOTAし POIHT =    88.42      95・000 −100・000 1  0 1

図一3 1書一1のプログラムの採点      図_6 教科書解答の評価点ヒスト

      結果       グラム

(6)

lI2       中山泰雄・大高政浩・矢鳴虎夫

5.使用法       6.結び

 このツールは,システムに登録されると,簡単に使用  採点ツールとしては,今後FORTRAN 77を対象とし 出来る。教官の採点では必要な場合,クラス全体の統計  た拡張も考えているが,それとともに,採点結果からス 結果も出力可能である。学生自身が利用する場合では,  タイルの改良点を指導するメッセージを示す診断ッール 次の方法によリソースリストと採点結果が出力される。  とする予定である。又プログラムの複雑性(例えば

!FSAITEN file名ret      Ha』eadの計算値)等も併せて表示する総合評価シス ここでme名はデバッグの終ロたエラーの無いFOR・ テムへの発展も検討中である。終に学生の演習レポート TRANソースプログラムのファイル名である。教官の  を提供していただいた本学電子工学科上松助教授に感謝 採点時には問題の内容に応じて各項目の重みを変えるべ  します。

きである。例えば最初の頃は,項目1,項目5等は重み

を0とする。       参考文献       参膿

      1)B.カーニハン「プログラム書法」共立出版

      2)浦昭二「FORTRAN入門」培風館

参照

関連したドキュメント

本判決が不合理だとした事実関係の︱つに原因となった暴行を裏づける診断書ないし患部写真の欠落がある︒この

遮音壁の色については工夫する余地 があると思うが、一般的な工業製品

捕獲数を使って、動物の個体数を推定 しています。狩猟資源を維持・管理してい くために、捕獲禁止・制限措置の実施又

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

都調査において、稲わら等のバイオ燃焼については、検出された元素数が少なか

「TEDx」は、「広める価値のあるアイディアを共有する場」として、情報価値に対するリテラシーの高 い市民から高い評価を得ている、米国

1時間値が 0.12 ppm 以上になった日が減少しているのと同様に、年間4番目に高い日最 高8時間値の3年移動平均も低下傾向にあり、 2001~2003 年度の 0.11 ppm

「豊かな海・海のつながり」の発信については、目標を大幅に超える、砂浜美術館 Facebook ページへのリーチ数 がありました。関連の投稿数