소스 코드에 대한 OCR(옵티컬 문자 인식)

올해는 NEC PC-8001 발매 40주년이다.재판본인'파소콤미니 PC-8001'도 나왔다.이 기계에는 당시 N-Basic 시뮬레이터가 탑재돼 있었고, 이전 Basic 프로그램이 실행 중이었다고 한다.
자체 프로그래밍을 시작한 것은 카시오의 FX-502P 프로그램 계산기(1978년)를 구매한 뒤였다.이때부터 화학 분야에서도 제작 프로그램이 유행해 다양한 서적을 발간했다.
산업화학에 사용되는 BASIC 프로그래밍(1983), 실례컴퓨터-분자의 조립(1984), 마이크로컴퓨터의 화학공학적 계산(1985), Basic 기반의 화학공학적 프로그래밍(1985), ASOG 및 UNIFAC-BASIC의 화학공학적 성질에 따른 추산(1986), 컴퓨터를 이용한 고분자화학연습(1986), 컴퓨터 화학공학편(1988)컴퓨터로 풀었던 화학공학(1990) 등이었다.
대학생 시절 PC-8801을 구매해 컴퓨터 프로그래밍이 화학에 미치는 영향을 몸소 느끼고 취직(1985)했을 때 꽃이 피기 시작했다.이 책들은 잘라서 자기가 밥을 해서 맥에 보관한다.
당시 서적에는 BASIC 프로그램이 많이 나열되어 있었다.따로 파는 디스켓으로 사면 5만엔이 되니까 법외 가격이라 밤마다 넣는 물건이에요.(처음에는 Hardisk가 없었고 테이프에서 백업하는 것이 그립다) 자기 입력원 = 프로그램 학습이 된 것은 좋은 경험이었다.
이렇게 컴퓨터 화학의 여명기 프로그램 중 몇 개는 아직 유행을 타지 않았다.화학이라는 학문은 매우 긴 역사를 가지고 있다. 물리처럼 이론적으로 처리할 수 없기 때문에 지금까지 당시의 절차는 여전히 유용했다.그럼 그거 다시 해요?그러고 보니 (은퇴 전 주변 정리를 할 나이가 된 나) 그렇게 기운이 나지 않는다.우연히'ASOG 및 UNIFFAC-BASIC의 화학공학적 물성 추계(1986)'를 썼고, 일본대 도치기 선생님과 그 책의 디지털 교과서판을 만들기 위해 들뜬 나는 당시 진행됐던 소스코드에 관한 광학 문자인식을 적어보고 싶었다.
나의 기계는 맥을 사용하기 때문에 광학 문자인식 소프트웨어는 유한하다.Adobe의 Acrobat pro 또는 FineReader OCR pro를 사용합니다.FineReader OCR pro는 사용에 있어 취미가 있지만, Acrobat보다 더 세부적인 설정을 할 수 있기 때문에 사용한다.우선 책에서 프로그램 부분만 잘라내는 PDF를 만든다.나는 FineReader OCR pro로 그걸 읽는다.PDF의 내용을 텍스트, 이미지, 테이블로 나누는 방식으로 PDF를 분석합니다.프로그램이기 때문에 모두 수첩으로 텍스트로 변경합니다.다음에 문자의 종류를 지정합니다.

텍스트에 프로그램이 쓰여 있기 때문에 영어, BASIC, 수량을 지정합니다.실제로 프로그램에도 print문에 있는 영화 가명이 있지만 아무래도 다시 써야 하기 때문에 무시한다.그리고 페이지 메뉴에서 모든 페이지를 읽는 것을 선택하면 광학 식별이 시작됩니다.그게 끝나면text로 써.

제작된 TEXT의 Main 프로그램의 일부를 나타냅니다.
OCR을 통해 읽은 Basic 소스 예 3860 -------MaIN-----------
3870 CLS 3880 '
3890 IF ZCONST = ”T"THEN 3950 3900 TC = 0#
3910 FOR 1 = 1 TO N
3920 TC = TBP(I) * XL(l,I) + TC
3930 NEXT I
3940 1
3950 FOR JJ = 1 TO NDATA 3960 • VLE-P CAL
3970 IF ZCONST = "P"THEN GOSUB 4140 3980 ’
3990 * VLE-T CAL
4000 IF ZCONST = "T” THEN GOSUB 4580 4010 ’
4020 GOSUB 5690 4030 *
4040 NEXT JJ 4050 '
4060 PRINT : PRINT
4070 PRINT "7*'J>*- V ->a-J'la? 7 ( Y /N ) ";
4080 ZKEY = INPUTS(1)
4090 1F ZKEY = "N"OR ZKEY = "n"THEN 4130 4100 ’
4110 GOSUB 5890 4120 *
4130 END
4140 • .............VLE-P................
4150 NO = 0 4160 FF = -1#
4170 ’
4180 WHILE .000001# <= ABS(FF)
4190 ’
4200 NO = NO ♦ 1
4210 IF 100 < NO THEN 4540
4220 '
4230 GOSUB 4800 4240 ’
4250 FF = -1#
4260 DFF a 0#
4270 ’
4280 FOR I = 1 TO N
4290 VP(I) = 10# * (ANTA(I) - ANTB(I)/(ANTC(I) + TC))
4300 YV(JJ.I) = GAM(I) * VP(I) * XL(JJ,J>/PR 4310 FF = FF + YV(JJ,I)
4320 DVP(I) = LOG(10#) * VP(I) * ANTB(I)/<(ANTC/PR 4340 NEXT I 4350 *
4360 DTC = -FF/DFF
4370 IF (ABS(DTC) <= 5#) THEN 4390
Print 문의 오류를 허용하면 상당히 고품질의 소스 코드를 얻을 수 있습니다.
이런 프로그램이 재판본인'파소콤미니 PC-8001'에서 작동할지 기대된다.
BASIC, C,Fortran을 읽을 수 있기 때문에, 그것을 내가 잘하는 언어, 자바, 자바스크립트로 바꾸는 것도 힘들지 않다.이전 책(이곳의 책 내용도 OCR로 읽기 완료)과 함께 ePub3의 디지털 교과서(본문 읽기, 실제 화학기술 계산)를 만들어 보았다.
이런 프로그램 언어의 이식은 얼마나 자동화될 수 있습니까?
f2c(Fortran을 C 언어로 변환)
j2cl (java를javascript로 변환)
다양한 소프트웨어가 있지만 NEC만의 N-BASIC, N88-BASIC 변환 프로그램은 아무도 하지 않을 수도 있다.
모두가 알다시피 마이크로소프트가 GiitHub을 인수했다.마이크로소프트는 왜 인수하려고 합니까?외국 친구와 이야기를 나누다가 이런 대답을 들었다.MS는 AI로 하여금 GiitHub의 프로그램을 배우게 하고, Visual Studio와 VScode의 프로그래밍 사용자를 프로그래밍을 배우는 AI가 돕게 할 것이다.
응, 그 시대에 OCR BASIC 프로그램을 GiitHub에 놓으면 AI가 자동으로 수정하고 다른 언어로 전환할지도 몰라.화학자로서 나는 다행이라고 할 만한 것이 없지만, 원본 코드의 저작권은 앞으로 어떻게 될 것인가.
글쎄, 큐타 기사도 이미 AI가 공부하고 있다고!?

좋은 웹페이지 즐겨찾기