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

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

■ このスレッドは過去ログ倉庫に格納されています
0001おちこぼらーNGNG
何でも聞け!
0002文責:名無しさん NGNG
2
0003おちこぼらーNGNG
なんだぁみんな遠慮深いなぁ。
どんどん質問しなさいよ。
0004デフォルトの名無しさんNGNG
6分で何が出来るんだ?>>1
0005デフォルトの名無しさんNGNG
最近のCOBOLってオブジェクト指向なの?
0006おちこぼらーNGNG
オブジェクト指向を取り入れようとしている・・・・・が
どうなのかねぇ?????(フゥ
0007デフォルトの名無しさんNGNG
OOCOBOL やってるやつはいるのですか?
0008おちこぼらーNGNG
残念だけど俺は趣味でパソコンで試したぐらいだねぇ。
メーカー関係(FとかH)なら開発したことあるやついるかもねぇ。
0009デフォルトの名無しさんNGNG
フリーのコンパイラってあるの?
0010デフォルトの名無しさんNGNG
COBOLERはもう絶滅しましたが、新手の方ですか。
0011おちこぼらーNGNG
>>9
フリーのコンパイラはない。

>>10
希少種なので大切にしてね。
0012デフォルトの名無しさんNGNG
COBOL のコンパイラを探す人々
(検索してみることを知らない?人々)

>>9
http://mentai.2ch.net/test/read.cgi/infosys/983290914/l50
http://mentai.2ch.net/test/read.cgi/infosys/971557991/l50
http://piza.2ch.net/tech/kako/967/967223926.html
http://piza.2ch.net/tech/kako/981/981294237.html
http://piza.2ch.net/tech/kako/989/989382761.html
http://piza.2ch.net/tech/kako/985/985662918.html の 40
http://piza.2ch.net/tech/kako/988/988820934.html の 44
http://www.google.com/search?q=cache:cnom8tWSx8w:mentai.2ch.net/prog/kako/968/968004233.html の 9
0013デフォルトの名無しさんNGNG
そういえば漏れもこぼらーだったよ。早く忘れたいっす。
00149じゃないけどNGNG
>おちこぼらー
>フリーのコンパイラはない。

その話が本当なら、これって一体!?↓
http://www.coboler.com/tinycobol.htm
こーゆーサイトも、あるYO!↓
http://www.coboler.com/opencobol.htm
よろしこ。
0015デフォルトの名無しさんNGNG
http://www.thefreecountry.com/developercity/cobol.html

とかもね!
0016デフォルトの名無しさんNGNG
コボちゃんって、将来COBOLを使うと約束された子供の事ですか?
0017おちこぼらーNGNG
>>14-15
すんません。知ってるなら早く教えてくれればいいのにぃ。い・け・ず!
0018デフォルトの名無しさんNGNG
>>1
スレが1000までいく訳ないのにスレ名に連番ふるなYO!
0019おちこぼらーNGNG
そんなのやってみなくちゃわかんないじゃないかYO!
(いや分かってるんだけどね(゚ε゚)キニシナイ!!)
0020見習こぼらーNGNG
>1
WINDOWSで動くCOBOLのソフトってないでしょうか?
0021おちこぼらーNGNG
>>20
ある。>>12から探してみてくれ。
Fから出しているのは結構有名だとおもう。
0022デフォルトの名無しさんNGNG
新卒なのにCOBOLを習う羽目になる漏れは逝って良しですが?
業務は日電のツールを使うといっていましたが。
当方一応システム開発らしいです。
0023デフォルトの名無しさんNGNG
いや、だからコボル自体が悪いんじゃなくてコボルしか知らない
年寄りプログラマが悪いんじゃない?
若者は他の言語もやっとかんとなー。
0024おちこぼらーNGNG
ビジネスロジックでのCOBOLの利便性はかなり高いと思うけどなぁ。
そうは言っても新規に汎用機を入れるような会社は今時ないし。
これからのCOBOLERは肩身が狭いだろうね。
年寄りプログラマを馬鹿にするのもいいけど、彼らから学べることも
かなりあると思うけどなぁ。最近はハードウェアのことなんか意識しないで
も良いようになったけど、昔の話を聞くとためになること結構あるよ。
0025デフォルトの名無しさんNGNG
COBOLの90日前を算出できる関数があれば教えてください。
0026おちこぼらーNGNG
>>25
それぐらいのロジック自分で組みなさいよ。
0027デフォルトの名無しさんNGNG
>>25
COBOLには関数はないはずですが、何か?(w
0028デフォルトの名無しさんNGNG
>>23
同意!
COBOLしか知らない年寄り、うざい
0029おちこぼらーNGNG
COBOLってやっぱり斜陽なのね、まぁ簡単だから聞くこともないのかな?
0030デフォルトの名無しさんNGNG
>>29
COBOLは仕事でやる場合がほとんどで、詰まったからといってインターネットで
解決しようと発想する人が少ないんじゃないの?
「家帰ってまでコンピュータ触りたくない」という人も多いし、
仕事場のマシンはエミュ端ばかりでインターネットにはつながらないだろうし。
0031おちこぼらーNGNG
>>30
最近はWinで走るエミュを使っているところが多いから。
ネット環境も整備されてると思うけどなぁ。
0032デフォルトの名無しさんNGNG

まえ、オラのいたとこはつながったべ。世界へアクセスするずら
0033ビチローNGNG
五次元テーブルはもう無理・・・
0034デフォルトの名無しさんNGNG
>>31
メインフレームのつながったネットワークに firewall が置いてあるの?
それが今風なのか‥‥‥。
0035デフォルトの名無しさんNGNG
>>30
コボル歴の長い女性とかってコボル以外のことできないんだよね。
他の言語どころか一人じゃネットにも繋げない。家にマシン無い奴が
結構イルヨー。
0036おちこぼらーNGNG
やば、死にそうだ。
0037おちこぼらーNGNG
しむぅ・・・・
0038デフォルトの名無しさんNGNG
面白いからそのまま細々とsage続けてください。
蔭ながら応援します。
0039おちこぼらーNGNG
やばいあと後ろに100ぐらいしかない。。。
0040デフォルトの名無しさんNGNG
土俵際までもうちょっとですね。:D
0041おちこぼらーNGNG
なんだか急に落ち具合が下がってきたな・・・・・
0042おちこぼらーNGNG
だれか聞いてよぉ。
0043名無しNGNG
COBOLについて教えてください・・・
いまとっても困ってます。
コンパイルで死にそうな状態になりました・・・
0044デフォルトの名無しさんNGNG
>>43
コンパイルで死ねるかな?
0045おちこぼらーNGNG
なにで困ってるのかわからないと
教えようがないですよぉ(;;)(;;)
0046名無しNGNG
COBOLにつてなんですけど、コンパイルしたらエラーがかなり出てその大半が
『項目が定義されていません』って出るんだけどこれだけでどのような原因が考えられるんでしょうか?
0047仕様書無しさんNGNG
コボラーの皆さん。
業務系の開発では、Kingaku だの Goukei だのというダセェ変数名が
広く使われているのですが、それをはじめたのが貴様らだというのは本当ですか。
何で英語にしませんか。あんたらのおかげでプログラマーは世間からバカだと
思われているのです。
逝っていいですよ。
0048名無しNGNG
みなさん>>46に愛の手を
0049デフォルトの名無しさんNGNG
>>46
どっかの項目定義とかで
ピリオド打ってないとか、そういうおちじゃない?
0050ビル・ジョブスNGNG
>>1
数年前におれが立てたスレと同じじゃねーか?
"2"にしろよ!

ちなみに、定数の配列を定義する方法しってるか?>ALL
0051ご隠居コボラーNGNG
>>47
それは事実なのじゃが。ゴホゴホ。コボラーが悪いのではないのじゃ。
COBOLが悪いじゃよ。ゴホッ。
COBOLは予約語がやたらと多いのでな、下手に英語の変数名を使うと、
すぐ予約語とばってぃんぐしてしまうのじゃ。ううう。
それにのぉ、ワシらコボラーの少年時代はのぉ、英語は敵性語とされ、学ぶ
ことはかなわなんだのじゃ。

わかってくれたかのぉ。お若いの。
0052デフォルトの名無しさんNGNG
最近のCOBOLでは各SECTION内でのローカル変数が使えると
どっかで聞いたのだが。ホント?
0053仕様書無しさんNGNG
MSさん、VisualCOBOLきぼ〜ん!!
0054ビル・ジョブスNGNG
いらねーよ
0055デフォルトの名無しさんNGNG
Visual COBOL++.NETきぼん
0056おちこぼらーNGNG
>>46
こんばんは。
通常、定義されていない変数名をプログラム中で使用した場合に
でるんんですけど。該当行の変数でデータディビジョンで定義されて
居ないものはありませんか?
以外とあるミスはコピー句で定義した変数名が間違っている場合とか。
定義しなければならないコピー句を定義していないとか。
たくさん出ているのならそのあたりが臭いかもしれません。

>>47
変数名が日本語だからださいというのは何故ですか?
日本人なんだから日本語でも良いと思うけど。
むしろ変な(まちがった)英語で変数名を定義された方が
よっぽどへこみます。たまにめまいがするような英語の変数名を
付ける方がいらっしゃいますからね。

>>50
定数の配列ってどういうことを実現したいのかよく分からないけど。
まず配列を定義して、配列に入れたい定数を別の変数でVALUE句で定義して
それを MOVE 集団項目 TO 集団項目 するっていうのを良く見かけますよ。

なんかあんまり寝てないから変な事言ってるかもしれないですけど多めに見てね。
0057おちこぼらーNGNG
>>52
各セクション内でのローカル変数?
そのセクションにいくと動的に割り当てられて(??セクション内で定義するのかな)
セクションから抜けると割り当てられた領域が開放されるっていう意味ですか?
聞いたこと無いです・・・・・。
ちなみにどこで聞いたのか差し支えなければ教えてくれませんか?
0058おちこぼらーNGNG
>>46
布団に入ってからふと思いついたのですが、根本的なところに戻って
コンパイルオプションでコピー句のある場所をパラメタで設定している
でしょうか?
なんか色々言ってしまってすいませんね。状況がいまいち分からないので
いろんな可能性があるので・・・・・ではお休みなさい。
0059仕様書無しさんNGNG
>>47
中国人が書いたコードの中国語の変数名にも凹んだぞ。
まあ、公開しないコードなら、日本語のほうが開発効率も上がる。
ネットで公開するなら別だけど、業務系システムのコードなんか
外に漏らさないだろ。
0060デフォルトの名無しさんNGNG
ro-majinokouritsugaiitohatotemoomoen.
0061仕様書無しさんNGNG
KOURITSUTEKIDAYODATTEKONNANIYOMIYASUIJANAIKA.
COBOLERNOBUNKAHAIDAIDANE.YAPPANIHONGODESHO.
DOUSEPUROGURAMANANTEHOTONDOEIGOWAKARANEENDAKARAYO.
NA.
0062デフォルトの名無しさんNGNG
>>50
REDEFINES
0063名無しNGNG
いろいろありがとうございました。
何とか『項目が・・・』がなくなりましたが今度は無限ループに陥ってしまいました・・・
これだけじゃ何がなんだかわからないと思いますが、無限ループに陥った経験がある方
その時の原因は何でしたでしょうか?
0064おちこぼらーNGNG
>>63
君はおもしろいね。おもしろいしとっても興味深いです。
せっかくなのでどうやって「項目が・・・」が無くなったかを教えてください。

無限ループについてですが、内PERFORM文での終了条件に
誤りがあるとか、GOTO文での飛び先に誤りがあるとかでしょうか。

あと、経験年数と習得済みの言語なんかも教えていただけると
うれしいです。
0065おちこぼらーNGNG
あと、DISPLAY文を利用するとデバッグが容易になりますよ。
使ってますか?DISPLAY文。
0066平清盛NGNG
こぼらーは人に非ず
0067デフォルトの名無しさんNGNG
コボルってけっこう本人の意思ではなく、会社で必要だからって人が多いですね。
自分も憶えるはめに・・・。(ほんとはCやりたかった・・・。)

で、質問なんですがCOBOLの本てあんまり本屋では見かけないけど、
おすすめってありますか?C言語でいうK&Rみたいな定番はあるの?

あと、やっててちょっとわからんとこあったのでおせーて。
NEXT SENTENCE
って命令(?)を見たのですが、これはなんすか?

それと、コボルという言語はやはりGOTO文は避けては通れないの
でしょうか?C言語ではgotoは基本的に使わないのが鉄則だったんで
すが・・。でもループなどから抜ける命令がなさそうなので、やっぱ
使わないといけないのかなぁ・・。どうもラベル貼りまくってビュンビュン
GOTOで飛び回るのは好きじゃないのですが・・・。はぁ・・・。
0068デフォルトの名無しさんNGNG
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.

しまったカラム数が違う! 文法エラー (w
0069おちこぼらーNGNG
>>67
定番本は聞いたこと無いですね。
というか他人のソースを見れば理解できるレベルの言語だとおもうけど。
NEXT SENTENCEは今ならCONTINUEと同じと考えて良いでしょうね。
実際は全然違うのですけど・・・・・

あとGOTO文はあまり使わないです。
もし多用するようであれば自分のプログラミング技術はその程度なのだと
あきらめてください。
0070おちこぼらーNGNG
あ、まてよ。
プリコンパイルが必要になるような環境の場合
GOTO文を書かなくてはならないような羽目に陥る事があります。
そういう環境なのだったらごめんなさい。
0071デフォルトの名無しさんNGNG
>>69
うーむ、そうですか。たしかに他人のソース見れば理解はできそう
ですが、その人のコーディング様式が良いのか悪いのか・・・コボル
をあまり知らん状態では、判断がムズイです。

とりあえずCかじってたので、それっぽくなっちゃうんですよ。
とりあえずメインセクションみたいの作って、そこはプログラムの
骨格のような感じで、PERFORMでの呼び出しがメイン。
あとは節をいくつか作っていく感じです。段落ってほとんど付けない
んですが、先輩のソース見ると、やたら段落名がつけられてて、使われて
ないものもあるし・・・。とにかくコーディングの仕方でいろいろ悩む
ので、模範的なソースとかたくさん見たいという意味で、定番本を探し
ているんですが・・・。会社の先輩のやり方をそのまま信用するのも危険
だと思いますし。まぁ、自分で考えることも大切なんでしょうけどね。
なにせ、すぐ仕事でくまされるからなぁ・・・。
0072おちこぼらーNGNG
>>71
なるほど。
COBOLのプログラマーは他人のソース(骨格)をコピーしてきて
書き換える人が多いです。そう言った意味では使われないラベル
が出てくるようなこともあるかもしれないですね。

「コーディング規約ってありますか?」とか
「このラベルってどういう意味なんですか?」とか
聞いて見る方がはやいと思いますよ。
たぶん市販の本ではそう言ったことは書いていないと思います。

先輩のやり方をそのまま信用するのはもちろん危険ですけど
先輩に聞かずに自分勝手にやってしまうほうがよっぽど危険です。

と、あなたが新人だと勝手に仮定して書いてますけど。
新人さんですよね???
0073おちこぼらーNGNG
そうそう、NEXT SENTENCEに関係あるのですが、先輩のソースでは
命令毎にピリオドが打たれていますよね?
もしセクション毎にピリオドが打たれていたりするとCONTINUEと
意味は同じとは行かなくなります・・・・(なんだかちょっと不安になってきた)
0074デフォルトの名無しさんNGNG
うちの場合、最初の制御ルーチンで、
初期処理
繰り返し処理
後処理
と、いきなり処理を飛ばしてるよ。簡単なのでも。
これは、COBOLがどうかとかじゃなくて、
プログラムを組めばどんなのでも
鉄則じゃないかな。

あとPG変更に対しての保守性を重視するなら、
極力、Cっぽく関数化されてる色が強い方が
優れているし美しいと思いますが、
特に、変更作業が起こりにくいものとかの場合、
あんまり細切れにしてサブルーチン化すると
嫌がる人も結構いるって感じ。追いにくいって
いう意味で。

あと、GOTOについては、IF文の入れ子で長く
なって見づらくなるときとかにもあえて使ったり
することはあります。
(使わないとすると、1個フラグが増えるから)
とはいえ、画面系とかのPGでない限り、
GOTOは使わないのが普通じゃないでしょうか。
俗に言う構造化ってやつで。
0075仕様書無しさんNGNG
>>72
会社以外でわざわざCOBOLやるヤツもいないと思われ。
0076おちこぼらーNGNG
>>74
セクションコーディングして初期処理、繰り返し処理、後処理という
教科書通りのプログラミングができない環境があるんですよ。

>>75
>>72のどこの発言の指摘でしょうか?そしてわざわざそれを発言することの意味は?
007771NGNG
わたしはもちろん新人です。

そういえば、1つのセクション内にある命令すべてにピリオドを
つけるやり方と、最後の命令のみピリオドつけるやり方あります
よね。これは好みの問題だけですかね・・・。何か他に違いが
でてくるのですか?

NEXT SENTENCEはもしや、ピリオドの直後の命令に行くのですか?

やはりコボルでもGOTOは基本的に使わないのですね。Cを
やってた人間にとっては歓迎できることであります。ただGOTO
を使ったほうが簡潔になる場合もありますよね、きっと。Cでも
たまにありますので。
しかしコボルとう言語はベーシックっぽくもCっぽくも書けてしまうん
ですねぇ・・・。

ところで、コボルにはループからぬけるための命令ってありますか?
(ぜんぜん勉強不足バレバレですが・・・。)
Cでいうbreakのような命令です。ループ内の真ん中あたりで、
ループからぬけたい〜ということがあるかと思いますが。
GOTOを使わないとなると、どうなるんでしょう・・・。
それと、これと似たことなんですが、セクションの途中で
後の命令全部とばしたい(つまりセクションを終わらせたい)
時は、何か命令ありますか?セクションの最後に段落名とEXIT.
をつけてそこへGOTOで飛ばさないといけないの?
Cでいえば(俺ってこればっか)関数の途中でreturnするような
感じです。セクションをCの関数のように見たててしますんです、
どうしても。
0078デフォルトの名無しさんNGNG
>>77
それ、環境によると思うよ。
ちゃんとピリオドをつけないといけないのと、
つけなくていいのと両方の環境を体験した。
当然だが、終わりにしか付けない方が
はるかに効率がいい。
理由ははぶくが、入れ子になったときとか。

ループを抜けるのはGOTOしかないような
記憶あり。
breakでも出来たような・・・ってVBだっけか。
なんかあったような気もするけど。

EXITさせるには、そうするしかないと思うよ。
PERFORM A THRU A-EXIT
とかちゃんとやってるコーディングの仕方
であれば、GOTO A-EXITって書けるけどね。

A-EXIT.
  EXIT.
0079デフォルトの名無しさんNGNG
>>76
よくわからんが、75>> みたいな奴は
どこにでもいるだろ。相手にするな。

PG追うときでいうと、わけわからんゴミ
みたいなのをいかに「ゴミ」と判別して、
重要な部分を「重要」と認識して追えるか
ってのが能力っていうかさ。
0080デフォルトの名無しさんNGNG
>>75は、いわゆる「ゾンビ関数」だな。
>>72を指しているが、指している部分との
つながりがわからない。
なんのことはない、>>75自体が前のプログラム
の残りかすなわけで、>>72とは、前のプログラム
の72を指しているので、意味がわかるわけない
っていう。
0081デフォルトの名無しさんNGNG
COBOLER
逝ってよし
0082おちこぼらーNGNG
>>77
うーん、会社の先輩が居るのになんでここで聞くの?
別に教えたくないわけじゃないんだけど(このスレ立てたの私だしね)
先輩に聞くのも良い勉強になるよ?うまくいってないの?

あと、Cによっぽど傾倒しているみたいだけれど、言語の特性
というものもあるから今はCの事は頭の片隅に残っている程度で
いいんじゃないかな。私も最初はCOBOLなんてやりたくなくて
Cの勉強ばかりしていたけど、COBOLはCOBOLでしかないかないからね。

内PERFORMの途中から抜け出す、セクションの途中から抜け出すのは
GOTO文を使わずにはできないです。

最後にマッチング・ソート・マージ・ブレーク等の用語を理解していますか?
0083 NGNG

71がまじで、マッチング・コントロールブレイクを知らなかったら笑えるね。

71さんは、ここで質問するより、
会社の人間に聞いたほうが早いんじゃないの?
環境のこととか、結構重要なことを教えてくれると思うよ。
0084デフォルトの名無しさんNGNG
//JOB
//STP000 EXEC C86CL
//SYSIN DD *
(コボルソース)
/*

んな事も昔やってたなぁ(しみじみ
0085おちこぼらーNGNG
>>83

> 71がまじで、マッチング・コントロールブレイクを知らなかったら笑えるね。

別に笑えない。誰もが最初は知らないから。
0086デフォルトの名無しさんNGNG
COBOL嫌い・・・。
何で無くならないのでしょうか?
0087コボルドNGNG
>>86 さん
わかりやすいから(笑)。
わたし(専攻フランス美術史)のような完全文系でも覚えられなくは
ないから。
0088デフォルトの名無しさんNGNG
それこそ内PERFORMからNEXT SENTENCEで抜けられないんですか?
>>最近のCOBOLのひと。
0089デフォルトの名無しさんNGNG
NEXT SENTENCEは「廃要素」です。
というかマニュアルに書いてあるような事聞いたり
自分でちょっと確かめれば分かるような事聞くのは
マニュアルがないから?
0090デフォルトの名無しさんNGNG
なんでCOBOLにこだわるのかわかりません。
今どきCOBOLやって何かメリットがあるのでしょうか?
既存の資産をどうこうというのは抜きで。
0091デフォルトの名無しさんNGNG
> 既存の資産をどうこうというのは抜きで。

いったいどういう回答を期待してるの?
0092デフォルトの名無しさんNGNG
>>77、>>78、>>82
漏れが使ってる環境では、
PERFORM のループは EXIT PERFORM で抜けられるし、
SECTION は EXIT の一言で抜けられるんだけどなあ。
あれは COBOL の正式仕様じゃないのかな?
どうも良くわからん。
0093名無しさん@お腹いっぱい。NGNG
以前、友人と話してたとき俺COBOLやりたいって言ったら、COBOLは需要が無いからやるだけ無駄といわれた。
これホントですか?俺はCOBOLを勉強したいと思ってるんだけど・・・
情報処理技術者試験でCOBOLあるんだから、まだ平気ですよね?
0094デフォルトの名無しさんNGNG
>>93
COBOLやるくらいならJAVAやったほうが良いと思うよ。
0095デフォルトの名無しさんNGNG
COBOLの方が給料いいかも・・・。
0096デフォルトの名無しさんNGNG
>>95
いや、COBOLくらいなら勉強しなくてもすぐに出来るようになるよ。
今ならむしろJAVAとか勉強していた方が職に就きやすいでしょう。
って学生なら何勉強しても対して河原内規もするけどね。
0097デフォルトの名無しさんNGNG
96に同意するよ。初期投資が少なくてすむ、あまり勉強しなくて
も使える、っていうのがCOBOLのいいところなんだからさ。
せっかく勉強するなら他の言語も知っておいたほうが、後々
役に立つきがするよ。
0098デフォルトの名無しさんNGNG
>>97
初期投資が少ないの?
Javaの方がよっぽど初期投資は少なそうだけど・・・。
むろん、インターネットにアクセスしやすい環境という条件がつくけど。

インターネットでの情報量が違うからねえ。

Yahoo!検索結果
COBOL 36500
Java 540000
0099デフォルトの名無しさんNGNG
>98
すまん、言葉が足りなかった。理解するまでに必要な勉強量
(テキストとか、時間とか)が少なくてすむ、つまり簡単、
って言いたかったんだ。
0100おちこぼらーNGNG
よっしゃー100げっとーぉ!!!

COBOLは本当に簡単だよ。情報処理試験を受験するために
勉強するならCOBOLよりはCの方がいいんじゃない?
0101おちこぼらーNGNG
すまん言葉が足りなかったね。
COBOLは簡単だから必要な時になれば自然と覚えられる
だからあえて必要も無いのに勉強する必要は無いと思うよ。
Cは再帰やポインターなどを学べるから情報処理試験を
受験するために勉強するならついでに習得し他方が良いと
思います。
試験を取得することだけが目的ならCOBOLの方が楽なのかも
しれないけど・・・・・。
■ このスレッドは過去ログ倉庫に格納されています