오늘날의 디지털 세계에서는 누구나 모바일 앱을 만들거나 소프트웨어를 작성하는 것이 쉽습니다. 자바, 자바스크립트, 파이썬및 기타 프로그래밍 언어.
하지만 항상 그런 것은 아니었습니다. 컴퓨터의 기본 언어가 이진 코드이기 때문에 초기 프로그래머는 펀치 카드를 사용하여 컴퓨터에 어떤 작업을 완료해야 하는지 지시했습니다. 각 구멍은 단일 이진 숫자를 나타냈습니다.
그것은 1952년에 바뀌었습니다. A-0 컴파일러영어 등의 고급 언어를 기계가 읽을 수 있는 이진 코드로 자동 번역하는 일련의 사양입니다.
이제 컴파일러는 IEEE 마일스톤에 의해 개발되었습니다 그레이스 호퍼수석 수학자로 일했습니다. 에커트-모클리 컴퓨터 주식회사이제의 일부 유니시스필라델피아에서.
IEEE Fellow의 혁신은 프로그래머가 영어 명령을 사용하여 더 빠르고 쉽게 코드를 작성할 수 있게 해주었습니다. 그러나 그녀에게 가장 중요한 결과는 현대 프로그래밍 언어의 개발에 미친 영향으로, 모든 사람이 코드를 더 쉽게 작성할 수 있게 되었다고 합니다. Penn Engineering Today 기사.
A-0 컴파일러의 IEEE Milestone 헌정식은 5월 7일 필라델피아에서 열렸습니다. 펜실베이니아 대학교그것이 바로 Eckert-Mauchly Computer Corp.가 시작된 곳입니다.
“이 이정표는 컴퓨터를 사용하여 자체 프로그래밍의 지루한 부분을 자동화하는 첫 단계를 기념합니다.” 안드레 드혼전기 시스템, 공학 및 컴퓨터 과학 교수는 헌정식에서 이렇게 말했습니다. 의식.
펀치카드 시스템 제거
컴퓨터를 프로그래밍하기 위해 초기 기술자들은 어셈블리 언어로 작업을 작성했습니다. 어셈블리 언어는 사람이 읽을 수 있는 기계 코드를 작성하는 방법으로, 이진 숫자로 구성되어 있습니다. 그런 다음 그들은 어셈블리 언어를 기계 코드로 수동으로 번역하고 이진 숫자를 나타내는 구멍을 카드에 펀칭했습니다. 중간 기사 방법에 따라. 카드는 구멍을 읽고 데이터를 컴퓨터에 입력하는 기계에 넣어졌습니다.
펀치 카드 시스템은 힘들었습니다. 작업을 완료하는 데 며칠이 걸릴 수 있었습니다. 구부러진 모서리와 같은 사소한 결함이 있어도 카드를 사용할 수 없었습니다. 이 방법은 또한 인적 오류의 위험이 높았습니다.
개발을 주도한 후 전자 수치 적분기 및 컴퓨터 (ENIAC) 펜실베이니아 대학의 컴퓨터 과학자들 J. 프레스퍼 에커트 그리고 존 W. 모클리 펀치 카드를 대체할 수 있는 기계를 만드는 데 착수했습니다. ENIAC은 2차 세계 대전 중 미국 포병의 정확도를 높이기 위해 만들어졌지만 두 사람은 상업용 애플리케이션을 위한 컴퓨터를 개발하고 싶어했습니다. 펜실베이니아 책 센터 기사.
그들이 설계한 기계는 최초로 알려진 대규모 전자 컴퓨터였습니다. 유니버설 자동 또는 UNIVAC I. 호퍼는 개발팀에 있었습니다.
UNIVAC I은 6,103개의 진공관을 사용했고 33제곱미터의 방을 차지했습니다. 이 기계에는 메모리 장치가 있었습니다. 펀치 카드 대신 컴퓨터는 자기 테이프를 사용하여 데이터를 입력했습니다. 오디오, 비디오 및 서면 데이터를 저장할 수 있는 테이프는 길이가 최대 457m였습니다. Pennsylvania Center for the Book 기사에 따르면, 이전 컴퓨터와 달리 UNIVAC I에는 키보드가 있어 작업자가 명령을 입력할 수 있었습니다.
“이 이정표는 컴퓨터를 적용하여 자체 프로그래밍의 지루한 부분을 자동화하는 첫 단계를 기념합니다.” —안드레 드혼
하지만 기술자들은 새로운 프로그램을 실행하기 위해 여전히 컴퓨터에 수동으로 지침을 입력해야 했습니다.
시간이 많이 소요되는 그 프로세스는 “프로그래머는 형편없는 복사공이기 때문에” 오류가 발생했다고 Hopper는 말했습니다. 말했다 ~에 대한 연설에서 컴퓨터 기계 협회. “4가 델타로 바뀌는 경우가 얼마나 많은지, 델타는 우리의 우주 기호였고, A로 바뀌는 경우도 얼마나 많은지 놀랍습니다. 심지어 B도 13으로 바뀌었습니다.”
에 따르면 히든 히어로즈 기사호퍼는 프로그래밍을 단순화할 수 있는 아이디어를 생각해냈습니다. 컴퓨터로 영어를 기계 코드로 번역하는 것이었습니다.
그녀는 컴퓨터 과학자로부터 영감을 받았습니다. 베티 홀버튼‘의 정렬/병합 생성기와 Mauchly의 단축 코드. 홀버튼은 ENIAC을 프로그래밍하여 몇 초 만에 포병 궤적을 계산한 여섯 명의 여성 중 한 명이며, 그녀는 UNIVAC I에서 호퍼와 함께 일했습니다. 1951년 UNIVAC I을 위해 발명된 그녀의 정렬/병합 프로그램은 자기 테이프에 저장된 대용량 데이터 파일을 처리했습니다. 호퍼는 정렬/병합 프로그램을 프로그래머의 지시 없이 자동으로 오버레이를 사용했기 때문에 가상 메모리의 첫 번째 버전으로 정의했습니다. 스탠포드 프레젠테이션 프로그래밍 언어에 대한 정보입니다. 1940년대에 개발된 Short Code는 기술자들이 기계 코드 명령어에 직접 대응하는 짧은 영어 단어 시퀀스를 사용하여 프로그램을 작성할 수 있게 해주었습니다. 이는 인간이 읽을 수 있는 코드와 기계에서 실행할 수 있는 명령어 사이의 격차를 메웠습니다.
“컴퓨터를 사용하여 프로그램을 작성할 수 있다는 것을 알려주는 첫 번째 단계는 정렬/병합 생성기라고 생각합니다.” 호퍼는 프레젠테이션에서 이렇게 말했습니다. “그리고 Short Code는 프로그래머에게 원래 기계 코드와 전혀 닮지 않은 언어로 프로그램을 작성할 수 있는 실제적인 권한을 부여하는 방향으로 나아가는 첫 번째 단계였습니다.”
더욱 쉽고 빠르고 정확한 프로그래밍
컴퓨터가 인간이 컴퓨터 언어를 말하는 것보다 인간과 유사한 언어를 말해야 한다고 생각한 Hopper는 프로그래머가 영어를 사용하여 특정 코드를 호출할 수 있는 방법에 대해 생각하기 시작했습니다. IT 전문가 윤곽.
하지만 그녀는 컴퓨터가 참조할 수 있는 자주 사용되는 명령어 라이브러리와 영어를 기계 코드로 번역할 시스템이 필요했습니다. 그렇게 하면 컴퓨터가 어떤 작업을 완료해야 하는지 이해할 수 있었습니다.
그런 라이브러리는 없었기 때문에 Hopper는 자신의 라이브러리를 만들었습니다. 여기에는 그녀가 서브루틴이라고 부르는 작업에 자주 사용되는 명령어가 들어 있는 테이프가 포함되었습니다. 각 테이프에는 하나의 서브루틴이 저장되어 있으며, UNIVAC I이 올바른 테이프를 찾을 수 있도록 3개 숫자의 호출 부호가 지정되었습니다. Stanford 프레젠테이션에 따르면 숫자는 세 개의 메모리 주소 세트를 나타냅니다. 하나는 서브루틴의 메모리 위치, 다른 하나는 데이터의 메모리 위치, 세 번째는 출력 위치입니다.
그녀는 “내가 해야 할 일은 일련의 콜 번호를 적고 컴퓨터가 테이프에서 그것을 찾도록 한 다음 추가하는 것뿐이었습니다.”라고 말했습니다. 컴퓨팅 역사 센터 기사. “이것이 최초의 컴파일러였습니다.”
이 시스템은 코드가 한 가지 언어로 작성된 후 기계어로 “컴파일”되었기 때문에 A-0 컴파일러라는 별명이 붙었습니다.
이전에는 수동 코딩에 한 달이 걸렸던 작업이 이제는 5분 만에 완료될 수 있다고 합니다. Cockroach Labs 기사.
호퍼는 에커트-모클리 컴퓨터 임원들에게 A-0을 선보였습니다. 하지만 그들은 흥분하기는커녕, 컴퓨터가 스스로 프로그램을 쓸 수 있다고 믿지 않는다고 말했습니다.
“실행 중인 컴파일러가 있었는데 아무도 건드리지 않았어요. 컴퓨터는 산술 연산만 할 수 있고 프로그램은 할 수 없다고 조심스럽게 말했거든요.” 호퍼가 말했다. “사람들이 시도하게 하는 것이 판매의 일이었어요. 새로운 아이디어라면 사람들이 변화에 알레르기가 있기 때문에 나가서 아이디어를 팔아야 한다고 생각해요.”
회사 경영진이 A-0을 수용하는 데 2년이 걸렸습니다.
1954년, 호퍼는 UNIVAC 사업부의 자동 프로그래밍 책임자로 승진했습니다. 그녀는 다음을 포함한 최초의 컴파일러 기반 프로그래밍 언어를 만들었습니다. 플로우매틱최초의 영어 데이터 처리 컴파일러. UNIVAC I 및 II 기계를 프로그래밍하는 데 사용되었습니다.
Hopper는 또한 개발에 참여했습니다. 코볼가장 초기의 표준화된 컴퓨터 언어 중 하나입니다. 컴퓨터가 숫자뿐만 아니라 단어에도 응답할 수 있게 했으며, 여전히 비즈니스, 금융 및 행정 시스템에서 사용됩니다. Hopper의 Flow-Matic은 COBOL의 기초를 형성했으며, 첫 번째 사양은 1959년에 공개되었습니다.
A-0을 인정하는 명판은 현재 펜실베이니아 대학교에 전시되어 있습니다. 다음과 같이 적혀 있습니다.
1951년~1952년 동안 그레이스 호퍼는 링커/로더로 기능하는 일련의 사양인 A-0 컴파일러를 발명했습니다. 자동 프로그래밍의 선구적 업적이자 서브루틴 관리를 위한 선구적 유틸리티 프로그램이었습니다. A-0 컴파일러는 산술 및 비즈니스 프로그래밍 언어의 개발에 영향을 미쳤습니다. 이로 인해 COBOL(Common Business-Oriented Language)이 생겨나 비즈니스 애플리케이션을 위한 지배적인 고급 언어가 되었습니다.
그만큼 IEEE 필라델피아 섹션 후보 지명을 후원했습니다.
에 의해 관리됨 IEEE 역사 센터 기부자들의 지원을 받는 Milestone 프로그램은 전 세계적으로 뛰어난 기술 개발을 인정합니다.
그레이스 호퍼에 대하여
호퍼는 컴퓨터 프로그래머로 시작하지 않았습니다. 그녀는 본질적으로 수학자였으며 1928년에 수학과 물리학 학사 학위를 취득했습니다. 바사 칼리지뉴욕 포킵시에서 그녀는 수학과 수리물리학에서 석사 및 박사 학위를 받았습니다. 예일 대학 각각 1930년과 1934년에.
그녀는 Vassar에서 수학을 가르쳤지만 진주만 폭격 그리고 미국이 2차 세계 대전에 참전하자 호퍼는 전쟁에 참여했습니다. 그녀는 바사에서 휴가를 내어 미국에 합류했습니다. 해군 예비군 (여성 예비군) 1943년 12월. 그녀는 선박국 계산 프로젝트 ~에 하버드그녀가 수학자로 일했던 곳 하워드 에이컨. 그녀는 최초의 전기 기계 컴퓨터 중 하나인 Mark I을 개발한 Aiken 팀의 일원이었습니다. Hopper는 이 기계를 프로그래밍한 세 번째 사람이자 최초의 여성이었습니다.
전쟁이 끝난 후 그녀는 연구원이 되었습니다. 하버드 컴퓨팅 연구실. 1946년 그녀는 Eckert-Mauchly Computer Corp.에 입사하여 1971년 은퇴할 때까지 근무했습니다. 1959년에는 펜실베이니아 대학의 시간강사였습니다. 무어 전기공학부.
그녀의 프로그래밍 작업으로 인해 그녀에 대한 항목에 따르면 그녀는 “놀라운 은혜”라는 별명을 얻었습니다. 공학 및 기술 역사 위키.
호퍼는 해군 예비군으로 남았고, 1967년에 현역으로 복귀했습니다. ETHW 항목에 따르면, 그녀는 군용 프로그래밍 언어를 표준화하는 노력을 이끌었습니다. 그녀는 결국 소장으로 진급했습니다. 1989년 79세의 나이로 해군에서 은퇴했을 때, 그녀는 모든 미국 군대에서 가장 나이 많은 복무 장교였습니다.
그녀가 받은 수많은 영예 중 하나는 1991년 미국 국가 기술 및 혁신 메달 “컴퓨터 기술을 단순화하고 훨씬 더 큰 사용자 세계로의 문을 연 컴퓨터 프로그래밍 언어 개발에 있어서 그녀의 선구적 업적에 대해.”
그녀는 대학으로부터 명예 박사학위를 40개나 받았고, 해군은 그녀의 이름을 따서 군함에 이름을 붙였습니다.