IBM 704 어셈블리 (SAP / SHARE Assembly Program)
Entity (인물·조직)lectureverified2026-05-09

IBM 704 어셈블리 (SAP / SHARE Assembly Program)

#vch#lecture-intro#A-language#g1

IBM 704 어셈블리 (SAP / SHARE Assembly Program)

1. 한 줄 요약

IBM 704 는 1954년 출시된 세계 최초의 양산형 부동소수점 하드웨어 컴퓨터 로, 그 위에서 SAP(Symbolic Assembly Program)·FORTRAN·LISP 가 동시에 탄생하면서 어셈블리어와 고급 언어가 동일한 하드웨어 위에서 공존 한 첫 무대가 되었다.

2. 등장 시기·배경

IBM 704 는 1954년 IBM 이 발표하고 1955~1960년 사이 123 대를 생산했다. 위키피디아는 설계자를 John Backus and Gene Amdahl 로 명시한다. "the first mass-produced computer with hardware for floating-point arithmetic" 즉 부동소수점 연산을 하드웨어로 직접 처리하는 첫 양산 컴퓨터였고, 초당 12,000 회의 부동소수점 덧셈을 수행할 수 있어 "pretty much the only computer that could handle complex math" 라고 평가받았다.

이 환경 위에서 두 갈래의 언어 진화 가 동시에 일어났다.

  1. SAP (Symbolic Assembly Program) — 704 의 표준 어셈블러. 이후 SHARE 사용자 그룹에 의해 SHARE Assembly Program 으로 배포되며 산업 표준화.
  2. FORTRAN (1957) — John Backus 팀이 같은 IBM 704 위에서 어셈블리보다 빠르게 수치 계산 코드를 작성할 수 있는 고급 언어를 개발.
  3. LISP (1958) — John McCarthy 가 같은 IBM 704 위에서 기호 처리와 AI 연구를 위한 함수형 언어를 개발.

같은 하드웨어 위에서 상극에 가까운 두 언어 패러다임(절차형 FORTRAN, 함수형 LISP)이 동시에 탄생한 것은 컴퓨터 과학사의 결정적 순간이다.

3. 핵심 특징

  1. 부동소수점 하드웨어 — 별도 라이브러리 없이 단일 명령으로 부동소수점 연산 수행. 과학 계산 코드의 길이를 극단적으로 줄였다.
  2. 36 비트 워드 구조 — 단일 정밀도 부동소수점이 한 워드에 들어가 메모리 사용 효율이 높았다.
  3. 자기 인덱스 레지스터 — 인덱스 레지스터 3 개를 갖춰 배열 처리·반복 루프가 단순해졌다. 이는 FORTRAN 의 DO 루프 구현 기반이 되었다.
  4. SAP 어셈블러의 매크로 기능 — 반복적 코드 패턴을 매크로로 정의해 재사용 가능. 어셈블리에서 추상화 가 가능해진 분기점.
  5. SHARE 사용자 그룹의 표준화 — 1955년 결성된 SHARE 가 SAP 을 표준으로 채택해 IBM 704 보유 기관들 사이에 코드 공유 문화가 정착. 오픈소스의 70년 전 원형.

4. 주 용도

위키피디아는 IBM 704 의 응용 분야를 "satellite orbit calculations in Operation Moonwatch (1957)", 천체물리, 핵물리 시뮬레이션, 통계 처리, Frank Rosenblatt 의 Perceptron 신경망 구현(Cornell) 등으로 기록한다. 즉 수치 계산이 무거운 모든 학문 분야 가 사용자였다.

흥미로운 약점도 함께 기록되어 있다. "failed around every 8 hours" — 8시간마다 한 번씩 고장 나는 신뢰성 한계 때문에, 초기 FORTRAN 컴파일러도 너무 큰 프로그램을 한 번에 컴파일하지 못했다. 신뢰성이 곧 프로그램 크기의 상한 을 정한 시대.

5. 그 시대의 설계 도구 매핑 ★

IBM 704 시대(1954~1960)는 어셈블리와 고급 언어가 공존했기 때문에, 설계 도구도 두 단계로 진화 했다.

설계 도구역할
플로차트 (1947 Goldstine·von Neumann)여전히 알고리즘 설계의 산업 표준. IBM 의 모든 매뉴얼이 플로차트를 사용.
★ IBM 플로차트 템플릿 (1959)IBM 이 플라스틱 플로차트 템플릿 을 정식 발매. 사각형·다이아몬드·평행사변형 모양을 종이에 빠르게 그릴 수 있게 됨. 이후 30년간 모든 프로그래머의 책상 위 표준 도구.
메모리 맵 + 카드 덱 구성도펀치카드 시대답게 카드 덱의 물리적 순서 가 곧 프로그램. 카드 덱 도면이 별도 설계 산출물.
SHARE 라이브러리 카탈로그EDSAC 카탈로그(1951)의 산업 확장판. 여러 기관이 공동으로 SAP 서브루틴을 등록·공유.
SAP 매크로 라이브러리자주 쓰는 코드 블록을 매크로로 사전 정의. 코드 재사용의 단위가 함수에서 매크로로 한 단계 더 추상화 된 사례.

핵심은 플로차트 가 1947년 도입 후 1990년대까지 50년 가까이 산업 표준으로 군림했다는 사실이다. 어셈블리·FORTRAN·COBOL·C 가 차례로 등장해도, 알고리즘을 종이에 그리고 코드를 그 다음에 쓴다 는 워크플로는 변하지 않았다. 강의 핵심 명제 — 설계의 중요성은 처음부터 일관되었다 — 의 가장 긴 연속 사례가 바로 플로차트다.

6. 언어 그룹 분류

SAP 자체는 저수준 어셈블리어. 명령형(imperative)·절차형(procedural) 패러다임. 다만 IBM 704 라는 플랫폼 이 절차형(FORTRAN)과 함수형(LISP)의 공통 토대가 되었다는 점에서, 어셈블리는 모든 패러다임의 공통 분모 라는 사실이 다시 확인된다.

7. 강의 도입 활용 포인트

IBM 704 위에서 FORTRAN(절차형) 과 LISP(함수형) 이 동시에 탄생 한 사실은 강의에서 결정적 대비 사례가 된다. 같은 하드웨어 위에 완전히 다른 사고방식 의 두 언어가 동시에 등장했다는 사실은, 언어가 문제 영역의 사고방식 을 형상화한다는 점을 보여준다. 이 통찰은 LLM 시대의 자연어 프롬프트가 "어떤 사고방식을 형상화할 것인가" 라는 본 강의의 핵심 질문으로 이어진다.

출처

그룹 시리즈

synthesis/group-g1 (시대 그룹 종합 카드)