#21 Re: 讲讲IBM 7094的历史
发表于 : 2025年 3月 2日 18:03
你这假设人家没有很多COBOL的语料,这不太可能。COBOL的语料肯定很多。IBM的documentation还是很全的,现在这些AI公司到处疯狂扒数据,啥没见过。
wdong 写了: 2025年 3月 2日 17:53 我折腾这么一番,最终目的当然是要用来测试AI到底能不能写程序,能不能把AI和古老的系统连起来做点什么事情。题目是写一个程序打印100以内的素数。当然这个是比较有挑战的,因为目标是1960年代的Cobol,语法和现在已经很不一样了。比赛结果,Claude 3.7 完胜。
我希望通过这个例子破除AI不能写程序,AI不能学习的疑虑。我相信任何今天的AI训练数据中60年代的cobol数据都少得可以忽略。所以AI需要通过错误消息来猜测怎么改能改对。这里的学习主要是in-context learning。整个过程很容易自动化。谁要是不服,自己可以试试看。
Claude 3.7成功破题 https://claude.ai/share/dcf7e3d4-bd1c-4 ... ef3b5148c4
GPT o1我放弃了 https://chatgpt.com/share/67c4e0d3-37d0 ... 652ae18fd8
方法就是反复把系统错误贴回去让它改。
$JOB COBOL PRIME NUMBERS
$EXECUTE IBJOB
$IBJOB GO,LOGIC,MAP,FIOCS
$IBCBC PRIMES FULIST,REF,NODECK,M94,XR7
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. PRIMES.
000300 AUTHOR. USER.
000400 INSTALLATION. IBM 7094.
000500 DATE-WRITTEN. MARCH 2025.
000600 DATE-COMPILED. MARCH 2025.
000700
001200 ENVIRONMENT DIVISION.
001300 CONFIGURATION SECTION.
001400 SOURCE-COMPUTER. IBM-7094.
001500 OBJECT-COMPUTER. IBM-7094.
001600 INPUT-OUTPUT SECTION.
001700 FILE-CONTROL.
001800
001900 DATA DIVISION.
002000 WORKING-STORAGE SECTION.
002100 01 NUM PICTURE 999 VALUE 2.
002200 01 DIV PICTURE 999 VALUE 0.
002300 01 QUOT PICTURE 999 VALUE 0.
002400 01 REM PICTURE 999 VALUE 0.
002500 01 FLAG PICTURE 9 VALUE 1.
002600 01 MSG PICTURE X(3).
002700
002800 PROCEDURE DIVISION.
002900 MAIN-PARA.
003000 GO TO START-PROGRAM.
003100
003200 START-PROGRAM.
003300 IF NUM GREATER THAN 99 GO TO FINISH-PROGRAM.
003400 MOVE 1 TO FLAG.
003500 MOVE 2 TO DIV.
003600 GO TO CHECK-DIV.
003700
003800 CHECK-DIV.
003900 IF DIV EQUAL TO NUM GO TO CHECK-RESULT.
004100 COMPUTE QUOT = NUM / DIV.
004200 COMPUTE REM = NUM - (QUOT * DIV).
004300 IF REM EQUAL TO 0 MOVE 0 TO FLAG.
004400 IF REM EQUAL TO 0 GO TO CHECK-RESULT.
004500 ADD 1 TO DIV.
004600 GO TO CHECK-DIV.
004700
004800 CHECK-RESULT.
004900 IF FLAG EQUAL TO 1
005000 MOVE NUM TO MSG
005100 DISPLAY MSG.
005200 ADD 1 TO NUM.
005300 GO TO START-PROGRAM.
005400
005500 FINISH-PROGRAM.
005600 STOP RUN.
$CBEND