トップページ⇒tech
1001コメント415KB

COBOLなら、オレに聞け! <1>

■ このスレッドは過去ログ倉庫に格納されています
0001おちこぼらーNGNG
何でも聞け!
0159デフォルトの名無しさんNGNG
>>158

身の無いレス。kusakabeにレスしたの間違いだったYO!
0160デフォルトの名無しさんNGNG
独数ってなに?
0161おちこぼらーNGNG
>>160
ttp://www3.ocn.ne.jp/~syaminto/omake.html
こういうのですよ。
0162( ゜∀゜)! ◆BqWvGuoc NGNG
>141
ありがとうございます。頑張って勉強します。
数�TでBASIC、、、。
聞いたことが無いんでわかんないですけど、
そんなことされたらもう、、、。泣)
今はトレースが頭の中でややこしくなってます。笑泣)
0163コボルドNGNG
勤務先で使っているのはCOBOL、正確には某社のCOBOLモドキ(これ以上は…モゴモゴ)。
VBA本とかC本とかちらちら見てはいますがよくわかりません。
COBOL(モドキ)歴半年、そもそもコンピュータを仕事で使い始めてやっと3年。
画像アサリ歴なら4〜5年ですが(笑)。
JAVAもおもしろそう。
0164落第(人)生NGNG
COBOLで文字列の連結はどうやればいいんでしょうか?
正規表現とかにも興味があるんですが、標準ライブラリにそういったものはありますか?
0165落第(人)生NGNG
あと、COBOL97やCOBOL2002の仕様を見て感銘を受けたのですが、
H社のメインフレームでの実装はありますでしょうか?
0166デフォルトの名無しさんNGNG
OOCOBOLの使い心地はどうでしょうか。
0167デフォルトの名無しさんNGNG
う〜んCOBOLは難しい
0168デフォルトの名無しさんNGNG
>>164
検索エンジンで「COBOL 文字列連結」で検索してみましょう。
0169おちこぼらーNGNG
>>162
あれ?センター試験の数Iの問題にBASICの問題があったような・・・・・

>>163
COBOLもどき?(笑)どんなのか気になる。
0170個鯔NGNG
>>146
どれもCOBOLには向いていません。それらに向いている言語でやれば
多分100倍以上生産性が高いでしょう。
0171( ゜∀゜)! ◆BqWvGuoc NGNG
>169
先生に聞いてみました。
あるみたいですBASIC。
みんな大変だね、、シミジミ
0172デフォルトの名無しさんNGNG
文字列の連結ってよく使うパターンは

A PIC X(5) VALUE ”12345”
B PIC X(5) VALUE ”ABCDE”
C PIC X(10)

MOVE B(1:5) TO C(1:5)
MOVE A(1:5) TO C(6:5)

とやると変数Cの中身は”ABCDE12345”になる方法
0173デフォルトの名無しさんNGNG
>>172
CをREDEFINESで5&5に分ける手もありますね
0174おちこぼらーNGNG
STRING文で文字列の連結ができますよ。
0175おじさんは詳しいぞーNGNG
これをきっかけにSTRING,UNSTRING文を覚えてしまおー
0176デフォルトの名無しさんNGNG
プログラム言語のど素人です。
COBOLを学校でやっているのですが、興味を持ち家庭でもやりたくなりました。
学校ではCOBOL専用エディタとコンパイラでやっているのですが
どこからダウンロードすればいいのかやり方を教えてください。
(捜したけど英語が読めなくてさっぱりでした。)
0177デフォルトの名無しさんNGNG
http://www.legacyj.com/lgcyj_perc1.html
0178コボルドNGNG
COBOLモドキ-->某F社製OOCOBOLでは全くありません。汎用機です。
何かCOBOL85互換のようなことが書いてあるんですが。
0179おちこぼらーNGNG
汎用機でCOBOLもどきですか。
不思議な環境ですね・・・・・(不勉強ですいません)。
0180名無し三等陸曹 ◆PDTHtNro NGNG
>>178
COBOLモドキ? なんだろ? HimalayaのCOBOLか?
でも「汎用機」って言うからな……

# そもそも、彼は何を言いたいのだろ?
0181高校生NGNG
perlかなんかをつかってCOBOLのクロスコンパイラーでも作ったん
じゃないかなぁ?それで仕事してるからモドッキって事なんだろう?
さすっが面白いことするじゃね〜!!>コボルド
0182コボルドNGNG
かくす事でもないか。某F社製の日本語開発ツール、\P$とかいうやつです。
文字列の連結に関してですが、なぜかうちの環境では二つの文字列の
連結ができない(???三つは出来るのに)ので、その部分だけ
STRING文を書いてます。
180さん。特別主張があるわけではありません(笑)。ほそぼそと
続いた、ただの環境の説明。わたしの亀レス&レス先未記入のため
わかりづらかったですか。
0183デフォルトの名無しさんNGNG
cobolのK&R本みたいのあります?
0184名無し三等陸曹 ◆PDTHtNro NGNG
>>182
了解です。

> 文字列の連結に関してですが、なぜかうちの環境では二つの文字列の
> 連結ができない(???三つは出来るのに)ので、その部分だけ
> STRING文を書いてます

私の場合、文字列連結は素直にSTRING文でやってましたね。


COBOLってよく叩かれるけど、なんでだろうね? 大手通信会社の課金計算
システムとか大規模データベースの新規案件でも、COBOLが主力で使われる
ケースは結構多いんだよな。それだけ信頼性があるってことなんじゃないかな。
システム屋は、いかに効率がよく、保守が楽で、かつ信頼性の高いシステムを
設計・構築するかがすべて。実装うんぬんは二の次だと思うが(個人的に)。

# でも、「COBOL糞」って思うこともあったなぁ。
# 昨年、中堅カード会社のシステム(10数年前に構築された)の修正支援に
# 手下を率いて逝ったんだけど、あれはひどかった酷かった。
# ソースはスパゲッティ(しかもコメントほとんど無し)、仕様書もスパゲッティ
# (以前の変更箇所が別の紙にあって、仕様書に無秩序に張り付けてあった)。
# システム構成図もスパゲッティ。おまえ150円やるから1から作れって言いたく
# なった。私も手下も半泣き状態。地獄だった。

長文スマソ
0185おちこぼらーNGNG
>>184
> COBOLってよく叩かれるけど、なんでだろうね?

なんででしょうねぇ?なんちゃって。

何となく叩いている人の言うことも分かるんだけど
COBOLERだからと言うことに限定も出来ないような気がする。

# おやじCOBOLERがプライド高くて使えない。
# OOを理解しないからむかつく 等々

おやじはプライド高い。おやじは理解力が衰える。

数十年後、今、叩いて居る彼らが新しい技術に直面して
若い技術者に同じように叩かれる。
多分そういうモノ何じゃないでしょうか?

COBOLが終わったという論調の記事も多かったし。
プログラミングの解説でCOBOLが出てくるような話はほとんどないし。
良く知らない人にはマイナーだから叩きやすいって言うのもあるのかも。

って叩かれる論議をすると荒れちゃうかも。
なんか地道にageてる荒らしちゃんもいるし(と火を付けてみる)
0186デフォルトの名無しさんNGNG
>>184
> COBOLってよく叩かれるけど、なんでだろうね?
言語仕様のせいじゃん?

むかーし研修でやったくらいしか知らんのだけど、ネストしたif文が.一個で
全部終了するというのを聞いて目が.になったよ。

今のは違う? OOCOBOLとかCOBOL97、COBOL2002の仕様ってどっかで見られる?
0187おちこぼらーNGNG
>>186
すまん、何を言ってるのかさっぱりわからない。
「一個で全部終了する」っていう部分の一個っていうのは何をさしているの?
というか終了するのはif文?だよね・・・・・。

うーん。ますます謎だ・・・・・。
0188186NGNG
IF FOO
IF BAR

ELSE
.

ネストした内側のifを終らすために.を書くと、
外側のifまで終っちゃうということ。
かなり前の話なんで正確じゃないかも知れん。
0189名無し三等陸曹 ◆PDTHtNro NGNG
>>186
> むかーし研修でやったくらいしか知らんのだけど、ネストしたif文が.一個で
> 全部終了するというのを聞いて目が.になったよ。

確かにコンパイルは通る(と思う)のだが、これはバグの温床になるので、IF と
END-IF は必ず対にして使うべき。

「そういうこともできる」程度に思っておいたほうが良い。

# 新人がそんなプログラム書いてたら蹴りを入れてやりましょう(w
0190おちこぼらーNGNG
>>188
なるほど。昔はEND-IFっていうのが無くてそう言うことがあったみたいですね。
今は三等陸曹(自衛隊の人?)が書いてくださっているようにIFとEND-IFを
対で書くようにと教育されています。というかEND-IFってモノができました。

>>189
蹴りは入れないであげてください(涙
0191名無し三等陸曹 ◆PDTHtNro NGNG
>>190
昔はそうだったみたいですね。COBOL85以降(だったかな?)では、
IF 〜 END-IF を対に使わないとコンパイル中に WARNING が出た
ような気がします。

******************************
*** コンナカンジカナ?         ***
******************************
IF HOGE = DEF-1
  MOVE DEF-A TO VALUE-AREA
  MOVE DEF-B TO FLG-AREA
  IF FOO = DEF-9
*** サマリ ノ サクセイ
    PERFORM KEISAN-SEC
  END-IF
*** カキン ケイサン ショリ
  PERFORM KAKIN-SEC
END-IF.

# ちなみに、私は自衛隊とは無関係です(笑
0192おちこぼらーNGNG
>>191
WARNINGがでるんですか。
今までEND-IFを書かなかったことがないので出た覚えがないです。
外PERFORM先のラベルが<処理名>-SECなんですね。
私がいままでやってきたところでは<処理名>-RTNが多いかな?

KEISAN-SEC SECTION.
KEISAN-RTN SECTION.

対して変わらないですね。どっちでもいいな♪
0193デフォルトの名無しさんNGNG
ひとつのレコードに対して10も20もREDEFINESしないでくれ。
まったく理解できない。
0194おちこぼらーNGNG
>>193
ほぉ、一つのDB(テーブル)のレコードレイアウトが20有るって事?
それって別DB(テーブル)にはできないのかなぁ?興味深い。

たとえばどういう場合なんだろう?

1つのテーブルで20のまったく異なった状態に対応させるってどういうのだろう?
0195デフォルトの名無しさんNGNG
>>184
> COBOLってよく叩かれるけど、なんでだろうね?(中略)

> システム屋は、いかに効率がよく、保守が楽で、かつ信頼性の高いシステムを
> 設計・構築するかがすべて。

これに COBOL が向いていると思っている人がいるから叩かれるのです。
信頼性は別として、作成、保守効率は現存の言語でも最低ランクでしょう?

さらに私の見た例では…
>>193が言ってるような事を Oracle でやっちゃってる人がいました。
もちろん REDEFINES なんてないから文字列ですよ。

本当に、もう、勘弁してください。
叩きたくて叩いているんじゃないんです。
はやく「そんな時代もあったね」って笑える時代にして下さい。
せつにお願いします。
0196名無し三等陸曹 ◆PDTHtNro NGNG
>>191
> WARNINGがでるんですか。
記憶があいまいなので、、、(藁
COBOL は COMPAQ のHimalaya 上でしか使ったことがないので、
他社の汎用機ではどうなのか、よく知らないです、、、

あと、セクション名は、客先によってまちまちでしたね。
べたべたなローマ字だったり(中堅カード会社)、
セクション名の頭に必ず数字がついてたり(大手通信事業者)。
セクション名の付け方はプロジェクトのコーディング規約で規定
されてることもあったので、変な名前つけて、後でSEからゴルァ電話
がかかってきたりしました(w

>>193
なんとなく想像がつく……
あな、恐ろしや……
仕様変更を何十にも重ねた末にそうなったんでしょうな、きっと。
0197名無し三等陸曹 ◆PDTHtNro NGNG
>>195
> 信頼性は別として、作成、保守効率は現存の言語でも最低ランクでしょう?

そうかなぁ? コーディングについては、一度雛形を作ればコピペでなんとか
なっちゃう場合も多かったよ。

保守効率については、、、言えてるかもしれん(w
10年以上前に構築されたシステムは、仕様書読んだだけで吐き気を催すもの
もあったっけ(凄まじいスパゲッティ状態。可読度最悪。ある意味テロ)。

> >>193が言ってるような事を Oracle でやっちゃってる人がいました。
> もちろん REDEFINES なんてないから文字列ですよ。

その仕様を作った人間は、狂ってるとしか思えない(ワラ
ケツバットの刑ですな
0198195NGNG
>>197
コピペが悪なんです。
まず再利用できないかを考えなくては。
そして再利用を考える事は、
環境が再利用を許さない COBOL ではとても厳しいのです。
みなさんも一度 Java あたりを勉強される事をお勧めします。
まともなプログラムが書けるようになれば、現在の言語に比べて COBOL がいかに非力で非効率かがわかると思います。
(Javaでもクソプログラムは書けますので、GoFの23のパターンを理解するくらいまではやらないと駄目です。)

どうかここを見ている真性 COBOLER の方々が
REDEFINES みたいな考え方の元に RDB のテーブル定義をしませんように。
私の知っている COBOL あがりの方々はみんなそれで当然のような顔をしていらっしゃったので。
0199名無し三等陸曹 ◆PDTHtNro NGNG
>>198
> まず再利用できないかを考えなくては。

少しは考えてますよ。
私がいた会社では、汎用的な部分(日数計算、閏年チェックとか)は、
部品化して再利用してました。開発部隊の方針による部分が大きいかと
思います。

> みなさんも一度 Java あたりを勉強される事をお勧めします。
> まともなプログラムが書けるようになれば、現在の言語に比べて COBOL がいかに非力で非効率かがわかると思います。

Javaねえ、Himalaya でも動くけど、はっきり言えば、速度が出ないのよ。
通信会社の課金データベースなんかは、信頼性はもちろん、速くないと
話にならないのね。

> どうかここを見ている真性 COBOLER の方々が
> REDEFINES みたいな考え方の元に RDB のテーブル定義をしませんように。

禿しく同意。ただ、これはそういう設計をする人間がDQNであって、
COBOL自体に罪はないことをお忘れなく。
0200高校生NGNG
>(Javaでもクソプログラムは書けますので、GoFの23のパターンを理解するくらいまではやらないと駄目です。)
其処まで云うと一般的なコボラーには絶望的。こちらが開発したフレーム
ワークの上でおとなしく言われたとおりのコーディングしてもらうしかない。
最低1年はOO言語に慣れてもらわんとGoFはいたずらに混乱を招くだけ。

オブジェクトをRDBにマッピングするためには、それなりのスキーマ
になってないと困るんだよね。。。そこをコボラーに握られちゃうと
オブジェクト指向による分析も設計もおじゃんになっちゃう。

あなた方が改宗するまで正直言って一緒に仕事できません>コボラー
0201高校生NGNG
>私がいた会社では、汎用的な部分(日数計算、閏年チェックとか)は、
>部品化して再利用してました。開発部隊の方針による部分が大きいかと
かなり感覚的にズレていることを自覚してください。間違ってもOO技術者
にそれを再利用などとは言わないでください。アホだと思われて相手にさ
れなくなります。
(オブジェクトの設計はデータベースの設計と同様に重要と心してください)

>COBOL自体に罪はないことをお忘れなく。
だからこそあなた方の無関心な態度がことさら頭にくるのだと思うが?
0202名無し三等陸曹 ◆PDTHtNro NGNG
>>200
つーか、COBOL 使った大規模システムしかやったことのない人間に
Java で構築するシステムの設計をやらせる会社がDQNと思われ

# 以前折れが所属していた部署は、COBOL、C中心のシステム開発部隊と
# Java、VBなどを中心に使うWeb系開発部隊に分かれていた。
# 部署名こそ同じだが、指揮系統は完全に別。交流はほとんどなし。
# 要するに、お互い隔離しあってる(w
0203高校生NGNG
御意>>202
しかし、会社命令だから仕方なくJavaの開発に携わるって態度だけは
払拭してもらわんとこちらとしてもやり切れん

/**
* 若いって事かまだ高校生だし
*/
0204名無し三等陸曹 ◆PDTHtNro NGNG
>>201
> だからこそあなた方の無関心な態度がことさら頭にくるのだと思うが?

無関心? なんのことやら
ただの煽りかい?
煽りたいだけなら死滅スレへ逝ってくれ

# 自分の価値観を人に押しつけるのはやめれ。
# COBOLにはCOBOLの、VBにはVBの、DelphiにはDelphiの、
# そしてJavaにはJavaの世界があるのよ。
# 路線バスとロードスターを同列に扱うようなことして、虚しくないかい?
0205高校生NGNG
レスがフリップフロップ状態だな>名無し三等陸曹

># 自分の価値観を人に押しつけるのはやめれ。
価値観を変えてくれと云わざる得ない人間の気持ち考えたことある?
0206デフォルトの名無しさんNGNG
javaをやると勘違い君になるんか、勘違い君はjavaが好きなんか
どっちにしても迷惑な話だ
0207名無し三等陸曹 ◆PDTHtNro NGNG
>>205
> レスがフリップフロップ状態だな>名無し三等陸曹

うん、そだねー。

> 価値観を変えてくれと云わざる得ない人間の気持ち考えたことある?

変えさせるのは貴方のお仕事。頑張って変えてくれ。God bless !!


> >私がいた会社では、汎用的な部分(日数計算、閏年チェックとか)は、
> >部品化して再利用してました。開発部隊の方針による部分が大きいかと
> かなり感覚的にズレていることを自覚してください。間違ってもOO技術者
> にそれを再利用などとは言わないでください。アホだと思われて相手にさ
> れなくなります。
> (オブジェクトの設計はデータベースの設計と同様に重要と心してください)

言い忘れたが、COBOLの世界では、こういうのを「再利用」って言うんだな(w
大いにバカにしてやってくれや(ww


# >>202 で書いたお互い隔離しあってる部署の中で、折れは両方の部隊に
# 在籍した数少ないPGだった。いろいろ勉強になって面白かったよ。
# 過去形なのは、もう会社を辞めたので。今はC++なただの無職だ。
# 一連の話は激しくスレ違いになってきたので、いろいろ言いたいことがあるなら
# 死滅スレへ頼みます。ヒマだったらレスつけるよん

今日は、デパス飲んでもう寝ます
0208デフォルトの名無しさんNGNG
>>133
「達人プログラマー」所持してないので簡単にどんな内容か書いて欲しいなあ。
どんな内容かちょっと興味ある
0209198NGNG
>>208
こんな感じです。

----------------
あなたの知識と経験はあなたのプロとしての資産の中で最も大事なものなのです。
しかし、そういった資産は残念な事に有効期限付きなのです*注。あなたの知識は新し
い技術、言語、環境が開発されると時代遅れのものとなっていくのです。市場の変化は
あなたの経験を陳腐でまとはずれなものにするのです。「Web時間」という歳月の流れ方に
よって、こういったことはきわめて早く起こるのです。

*注有効期限付きの資産とは時とともにその価値が減少していくものです。例えば倉庫いっぱいのバナナとか野球のチケットと同じです。
----------------
達人プログラマー アンドリュー・ハント/デビッド・トーマス著 村上雅章訳
より。
0210209NGNG
ちなみに 133 は
> コボラーの皆さんは
> 「達人プログラマー」の12ページの下から2行目から13ページの8行目まで読んで下さい。
> その上であなたが回りから「コボラー」と呼ばれる事の意味を考えてみてください。では

という内容でした。
0211193NGNG
>>193
>ほぉ、一つのDB(テーブル)のレコードレイアウトが20有るって事?

そのとおり。マルチフォーマット(?)というやつです。

入力ファイルが1つで、先頭何桁か(うちは3桁)にデータの種類をあらわすコード
が書いてあり、それ以降にデータが続いている。先頭のコードが001なら商品マスタ、
002なら商品部類マスタといった具合に、コードによってレコードを識別して、
REDEFINESしたエリアからデータを取得します。
0212193NGNG
間違えました。>>194宛の返信でした。
0213おちこぼらーNGNG
>>193
面白いね。
マスタなら別DBにしてキーを付けたほうが効率が良いように思うんだけど。

昨日はCOBOL不要論で盛り上がったんですねぇ。
一杯レスが付いていたので驚きました。
0214高校生NGNG
>昨日はCOBOL不要論で盛り上がったんですねぇ。
ハァ?COBOL不要なんて一言もいってないが。。。コボラーの態度が問
われているのだと思うが?

自己投資しないくせに自分の学習曲線が上昇しない理由を教育する立
場の同僚のせいにする。

 「私には出来ない、君が直接作業したほうが効率がいい」

と「こいつほんとに技術を取得する気があるのか?」と疑いたく
なるようなことを口走る。。。
0215おちこぼらーNGNG
>>214
> 自己投資しないくせに自分の学習曲線が上昇しない理由を教育する立
> 場の同僚のせいにする。

はぁ・・・・・。
で?それはCOBOLERだからそうなのだという結論に達したのは何故?

あと、時々高校生ぶるのは何故?
0216195NGNG
>> おちこぼらーさん @ 215

> あと、時々高校生ぶるのは何故?

これは私と高校生さんを同一視していらっしゃるという事でしょうか?
もしそうだとしたら勘違いです。
(私も今朝このスレ見たとき、私が寝た後から高校生さんの発言が続いてたので、私多重人格かなんかになったかな、とちょっと心配しましたが)

まぁ高校生さんも私も CobolerHatable (Hateableか?) インターフェイスを実装してそうですね(ってヲタ的会話を入れてみる。)
0217おちこぼらーNGNG
>>216
?
あなたには何も言ってないですが・・・・・
0218216NGNG
>> おちこぼらーさん

だとしたらよかったです。
「攻撃側」は私と高校生さんくらいに見えたので、
あれ?誤解されてるかな?と思いました。
0219名無し三等陸曹 ◆PDTHtNro NGNG
>>214
OOマンセー厨が、いいかげんにしろ
煽りは死滅スレでやれや
同じ事何度も言わすなヴォケ

●●COBOLって死滅しちゃうの????●●
http://pc.2ch.net/test/read.cgi/tech/1008408669/
0220おちこぼらーNGNG
>>219
あらら、普段はマイルドな語り口調なのにどうしたんですか?

ひょっとして、午前中とらぶった?(笑)
がんばれー!!
まったりいきましょうね。
0221名無し三等陸曹 ◆PDTHtNro NGNG
若手なので、いろいろな会社に支援要員として送られ、いろいろなSE、PGを
見てきた。そのうえで言う。

高校生氏らの言うようなDQNコボラーは、確かに存在する。スパゲッティな
仕様書&ソースをさも当然のごとく渡し、「んじゃ修正たのみます」と言われ
たときはビルの屋上からダイブしたくなった。

だが、そうでない人もたくさんいるのも事実だ。私の元上司は、オヤジ世代
で若い頃はCOBOLのPGだったそうが、新しい技術に興味を持ち、積極的に
学んでいた。

自分の周りの人間だけ見て、「COBOLやってる奴はバカ」と総括するのは、
筋違いもいいところだと思うがどうよ?
0222186NGNG
>>221
> たときはビルの屋上からダイブしたくなった。
ダイブするんじゃなくて、させてやれって(藁

> だが、そうでない人もたくさんいるのも事実だ。私の元上司は、オヤジ世代
> で若い頃はCOBOLのPGだったそうが、新しい技術に興味を持ち、積極的に
> 学んでいた。
>
> 自分の周りの人間だけ見て、「COBOLやってる奴はバカ」と総括するのは、
> 筋違いもいいところだと思うがどうよ?
まぁCOBOLに限らず、「これしか知らん、他のもんはどうでもいい」って奴が
腐れってのは確かだと思うが。
0223名無し三等陸曹 ◆PDTHtNro NGNG
>>222
> まぁCOBOLに限らず、「これしか知らん、他のもんはどうでもいい」って奴が
> 腐れってのは確かだと思うが。

まさしくその通りですな。
オヤジのDQNコボラーは、「自分はロートルではない」or「ロートルだと認めたく
ない」という思いが多少なりともあると思う。
自分が今までやってきたことがすべて否定されてしまうような気になるのだろう。
だから、やたら頑なになったり、しまいには逆ギレしたりするんだろうなぁ。

(教える立場の)高校生氏の言いたいことは、よくわかるのよ、実は。
頭の固まってる人たちにOOを仕込むのは、精神的にかなりつらいと思うよ。
だって、折れも経験者だから(w

# おれは元COBOL使いという立場上、COBOL擁護(になってるか?)をしてるに
# すぎない。
# ただ、ここはあくまで「COBOLプログラミングの相談スレ」なんだなー。
# だから、この手の話は死滅スレがふさわしいと思うのね。
# それだけです。
0224デフォルトの名無しさんNGNG
>>222

ダイブさせる前に、そのCOBOLerが作ったプログラムの仕様書を
きちんと書かせておくことだね。DQNなシステムの仕様はすべて
DQNオヤジの頭の中… そいつがいなくなるとますますスパゲッティ
になっちまうぞ(藁
0225デフォルトの名無しさんNGNG
そんなことさせたらほんとにダイブしちゃうじゃん(藁
ダメだって、シルバーDQNは痛わってやんないと。

つーか、ソースもいっしょにダイブさせて書き直すよろし。
0226名無し三等陸曹 ◆PDTHtNro NGNG
そろそろネタが尽きたかな?

「死の行進」でもやってるのかな?
糞コードの相次ぐ修正で、精神的にやばい状態ですか?

まあ、この業界、年末はいろいろといそがしいからね。

皆様、ご自愛を。
0227おちこぼらーNGNG
>>三等陸曹
逆に調子はどうですか?
こないだ(>>220)はホントにびっくりしましたよ。
私はまたーりとやっております。
ネタも尽きたみたいだししばらくまた落ちていくと思いますが
またあがってきたらよろしくね。
保全書き込みは私にお任せあれ。(考えてみれば一時期落ちる寸前だった)
0228名無し三等陸曹 ◆PDTHtNro NGNG
>>227
私は強化人間なので、精神が不安定なのです(w
0229デフォルトの名無しさんNGNG
○○板に帰れっ
0230名無し三等陸曹 ◆PDTHtNro NGNG
ども。また来ちゃいました。柄にもなくネタ振り。

会社ごと、あるいは大規模なプロジェクトでは、たいていコーディング規約が
あると思うのですが、「なんだ、この規約は!」と思っちゃうような規約って
ありますか?

私が以前携わったプロジェクトでは、追加、変更箇所をすべてコメント文にして
残して置かねばならない、という規約がありました。
その結果、3000行のプログラム中、半分はコメント文の嵐というひどい状況に
なってしまいました。

下にソースの例を書いておきます。可読性は最低最悪(w

******************************
*****<< ソース ノ レイ ダヨモン >>*****
******************************
IF REC-TYPE OF FOO-REC = DEF-1
MOVE ZERO TO RTN-CD
ELSE
 MOVE DEF-1 TO RTN-CD
****** PHASE 2.0 1998/07/11 ADD START ******
 IF W-HOGE OF FOO-REC
******** < PHASE 2.1 2001/08/11 UPDATE START > ********
****  MOVE SPACE TO W-PARAM
  MOVE DEF-6 TO W-PARAM
  PERFORM 2110-FILE-CREATE-SEC
****** PHASE 2.2 2001/11/11 ADD START ******
  PERFORM 2120-FILE-CHECK-SEC
****** PHASE 2.2 2001/11/11 ADD END ******
 ELSE
****  MOVE C-NANIKA TO W-PARAM
  MOVE DEF-ERR TO W-PARAM
****** PHASE 2.2 2001/11/12 UPDATE START ******
****  PERFORM 2111-ABEND-SEC
  PERFORM 2210-REJECT-SEC
****** PHASE 2.2 2001/11/12 UPDATE END ******
******** < PHASE 2.1 2001/08/11 UPDATE END > ********
 END-IF
****** PHASE 2.0 1998/07/11 ADD END ******
END-IF.

>>229
軍事板? シャア専板? どっちもROM専です(ププ
0231デフォルトの名無しさんNGNG
>>三等陸曹
私が以前いた某会社のプロジェクトもそうでした。
コメントだらけのプログラムを修正する苦痛に耐えかねて
修正前にコメントを削除したソースリストを用意したりしたものです(w

あと、ここまで規約で決めないとだめなの?って思ったのが
「"PIC"は40カラム目から」
0232おちこぼらーNGNG
私の携わったプロジェクトも全部修正前のソースはコメントアウトしていました。
ただ修正日は73カラム目以降に入れてましたね。

>>230の例でいけば11〜12行目までが
***  MOVE SPACE TO W-PARAM     010811
    MOVE DEF-6 TO W-PARAM     010811

こんな感じです。
0233デフォルトの名無しさんNGNG
COBOLじゃなくてもこういうとこはあります。
バージョン管理システム使えよっつーと、「ツールに頼りたくない」んだそうで。
じゃハンドアセンブルしろみろよ、テメーら。とか思う。
0234名無し三等陸曹 ◆PDTHtNro NGNG
んで、例のプロジェクトですが、お客さんの方が、あまりの可読性の悪さに
悲鳴をあげたため(でも、やれと言ったのはお客さんだよん(ワラ)、履歴を
残すのは今回の修正分だけ、ということになりました。

>>230 の例で言えば、PHASE 2.2 での修正部分のみで良いってことです。


*********************************
*****<< スコシ ハ マシ ニ ナッタYO! >>*****
*********************************
IF REC-TYPE OF FOO-REC = DEF-1
 MOVE ZERO TO RTN-CD
ELSE
 MOVE DEF-1 TO RTN-CD
 IF W-HOGE OF FOO-REC
  MOVE DEF-6 TO W-PARAM
  PERFORM 2110-FILE-CREATE-SEC
****** PHASE 2.2 2001/11/11 ADD START ******
  PERFORM 2120-FILE-CHECK-SEC
****** PHASE 2.2 2001/11/11 ADD END ******
 ELSE
  MOVE DEF-ERR TO W-PARAM
****** PHASE 2.2 2001/11/12 UPDATE START ******
****  PERFORM 2111-ABEND-SEC
  PERFORM 2210-REJECT-SEC
****** PHASE 2.2 2001/11/12 UPDATE END ******
 END-IF
END-IF.


プログラムの場合は、>>231 さんのような対処法がありますが、
仕様書でこれをやられると、かなり鬱になりますね。
0235oldcobolerNGNG
私のとこも修正履歴はコメントで残すようになっていました。
可読性がどれも悪くなるほど変更は無かったように思います。

他に面白いのはIF文でTHEN無しのELSEを書いてはいけないと
か MOVE と TO はカラムを揃えないといけないとか共通
のサブルーチンがある場合は必ずそれを使わなければいけな
いとか おかげで来月の年月をだすのに20ステップも費やし
たりしておりました。
前の2個はどちらも可読性を悪くする場合があったのでばか
ばかしい規約に思えました。
0236デフォルトの名無しさんNGNG
>>235
> 他に面白いのはIF文でTHEN無しのELSEを書いてはいけないと
これってifの条件を逆にするということ?
0237デフォルトの名無しさんNGNG
>>236

> これってifの条件を逆にするということ?

そのとおりです。
例を示すと

IF 正常終了の条件

ELSE
エラー処理など
END-IF

というような書き方がだめで

IF NOT (正常終了の条件)
エラー処理など
END-IF

というような書き方をしろということです。
正常終了の条件が単純なら同じことですが
これに AND OR が続くと面倒くさい。
0238236NGNG
>>237
うーん、COBOLじゃなくてCなんだけど、しばらく前に

if (hogehoge) {
} else {
 //処理
}

というのを見てブチ切れそうになったんだけど、どうよ?

> IF NOT (正常終了の条件)
> エラー処理など
> END-IF
むしろこっちのほうが普通に思えるんだけど。
0239デフォルトの名無しさんNGNG
おれは、コメントが正しく書いてあれば、どっちでもいいな。
0240デフォルトの名無しさんNGNG
>>238

IF文は条件によって2方向に分岐するもの
であれば分かりやすい条件式を書いてそれで2種類の処理を書けば良い
それをTHENが無い場合は必ず分かりにくくなると思って作ったコーディ
ング規約を変だといっているのです。
私もELSEだけ書くことはあまりありませんが論理式が複雑になった場合
たまに使います。

>>239

同意です。
0241236NGNG
すまん。
規約が変というより、そういう書き方をしようという神経の方が信じられん。
0242( ゜∀゜)! ◆BqWvGuoc NGNG
私は学校の先生から「elseだけ、thenだけ書いても良い。」と教わりました。
その方がプログラムがすっきりするとか、しないとか。
あんまり長くなると見るのもウンザリするのかも?
とその時は思ったりもしましたが。
高校だからか、たいしたプログラム作ってないんでそのせいかも。
0243デフォルトの名無しさんNGNG
>>238
>if (hogehoge) {
>} else {
> //処理
>}

↑の構文だと"!"を見落としてハマってしまうことはないよね。
確かに冗長性のあるウザイ構文ではあるけど。
0244デフォルトの名無しさんNGNG
コボラーはえらい。
君たちがいつまでもコボルばっかりやってくれてるから
俺は最新の言語を楽しめる。
0245デフォルトの名無しさんNGNG
>>237
THEN と ELSE は必ずペアで書くという変なコーディング規約の
あったところが会社がありましたね。何処かは忘れたけど。

  IF AAA = BBB
    処理
  ELSE
*    処理なし
  END-IF

はっきり言ってウザイ
0246名無し三等陸曹 ◆PDTHtNro NGNG
>>244
会社の都合で、いやいややらされてる人の方が多いと思われ(特に若手)
0247デフォルトの名無しさんNGNG
>>244
言語仕様がコロコロ変わったり、処理系が数年で無くなったり
バージョンアップして互換性が無くなったりする最新の言語は
実務では使えませんね。

ま、言語としては面白いけど。
0248デフォルトの名無しさんNGNG

>>241
> すまん。
> 規約が変というより、そういう書き方をしようという神経の方が信じられん。

規約を作った人間と同じ反応だ。なぜ信じられんのかという理由を書いてくれ
おれはELSEだけ使ったほうが設計書に近い書き方になる例を見せてやった。そ
れ以来この規約は有名無実になった。
どちらで書こうとたいして変わらない、ときには分かりやすくなる場合もある
ことを絶対にダメだとする規約は変だ。
0249デフォルトの名無しさんNGNG
>>248
>おれはELSEだけ使ったほうが設計書に近い書き方になる例を見せてやった。

どういう設計書なのか、見てみたいと思ったり。
0250デフォルトの名無しさんNGNG
>>249
ほとんどコードと一対一で対応するような、
効率の悪い設計書なんでねーの?

で、それに合わすために不自然なコーディングをして、
「こっちのほうが設計書に近い」とか言ってるのかも。
0251oldcobolerNGNG
>>249

入力レコードの内容をチェックして正常であれば次の処理
でなければエラーメッセージを出してABORTするようなもので
正常な条件が書いてあればこうなる。
0252デフォルトの名無しさんNGNG
>>251
こう?

IF 入力レコードが正常
 処理
ELSE
 エラーメッセージ
 ABORT
ENDIF
0253通りすがりNGNG
日付が開始日以後 AND 日付が終了日以前なら、
   (正常なので)何もしない
それ以外なら、
   例外処理

とかいうのはどうだろ。
ド・モルガンの法則で条件をORに変えたりすると、
何かの間違いで開始日と終了日とが交差してた場合の挙動が変わってくるし、
括弧を二重に使って NOT で否定というのは、非常にウザいかも。
0254oldcobolerNGNG
>>252

処理がない場合がこれにあたる。たまたま処理が無いだけで違った書き方を
強制する規約はおかしいのではないか?
せっかく機能があるのだから使えばいいではないか。

>>253

同意


おかしな例を揚げて話を変な方向にしてしまったが、もとの考えは問題が
あって解決方法がある。最初から解決方法に制限を設けるのはおかしいの
ではないかといいたかった。
COBOLは分かりにいが強力な機能が少ない。COBOLに限らなければ再帰は分
かりにくいから使うな、ポインタはわかりにくいから使うな、オブジェク
ト指向は分かりにくいから使うな、というのと同レベルの規約に見える。
0255デフォルトの名無しさんNGNG
COBOLer にはドキュソが多いのでコーディング規約を細かく決めた。
ドキュソな COBOLer は、コーディング規約の本質的な部分を理解出来なくなってしまった。
そして、いつのまにかコーディング規約が一人歩きを始めた。

コーディング規約の本質的な部分を理解出来る COBOLer は何処へ逝ってしまったのか?
彼らは、Web Server Side プログラムの世界で生き残っている。
彼らは、ホスト・オンラインシステムとWeb Server Side プログラムが
本質的に何も変わらない事を知っている。
0256デフォルトの名無しさんNGNG
× ホスト・オンラインシステム
○ ホスト・オンラインプログラム
0257デフォルトの名無しさんNGNG
>>253
> 何かの間違いで開始日と終了日とが交差してた場合の挙動が変わってくるし、

って
> 日付が開始日以前 OR 日付が終了日以後なら、
を
> 日付が終了日以前 OR 日付が開始日以後なら、

と間違うっつーこと? それは正常条件を判断する式にしたってもちろん挙動は
変わってくるから関係ないのでは。
0258デフォルトの名無しさんNGNG
最初はさびれそうだったけど、結構レスついてるじゃん
■ このスレッドは過去ログ倉庫に格納されています