Betty Holberton — 중단 점 뒤의 두뇌

그리고 우리는 영원히 감사합니다!

디버깅은 프로그래밍의 중요한 부분입니다. 중단 점 (정의상 프로그램에서 의도적 인 중지 또는 일시 중지 위치) 은 종종 디버깅 프로세스 중에 핵심입니다. 이를 통해 개발자는 실행 중에 프로그램 값에 대한 통찰력을 얻을 수 있습니다.이 시점에서 해당 값은 완료시 예기치 않은 결과를 생성하도록 변경 될 수 있습니다. 중단 점이 있다는 것은 개발자가 특정 값을 검사 할 수 있도록 실행이 여러 단계에서 일시 중지됨을 의미합니다. 중단 점 이후에 코드의 각 줄을 하나씩 실행할 수있는 기회를 가지면 문제가 발생한 부분을 쉽게 찾을 수 있습니다.

오늘날 모든 통합 개발 환경 (IDE)에는 이러한 중단 점을 제자리에 배치 할 수있는 통합 디버거가 포함됩니다. 또한 그렇게하기가 매우 쉽습니다! 내가 함께 작업 한 모든 IDE는 중단 점을 적용하는 동일한 방법을 채택했습니다. 특정 코드 라인의 번호 바로 앞을 클릭하면됩니다. 코드 줄 것이다 더 자주 요구가 충족 될 것을 조건으로하고는 포함하지보다 충족, 짜잔합니다. 해당 지점에 도달하면 애플리케이션이 일시 중지되어 변수, 클래스, 구성 개체 등의 현재 상태를 볼 수 있습니다. 이것은 프로그램이 예기치 않은 값을 반환하는 경우에 매우 유용합니다. 중단 점에 도달하고 그 뒤에 오는 코드를 점진적으로 실행함으로써 개발자는 잘못된 값이 설정되는 위치와 그 이유에 대해 더 깊이 이해할 수 있습니다.

이러한 프로그래밍 기능의 기원은 매력적입니다. 최근에 나는 소프트웨어 버그 에 대해 글을 썼고 그 버그가 어떻게 발생했는지 썼습니다 . 이번에는 중단 점 의 기원에 대해 알아보기 위해 역사로 돌아갔습니다 .

모든 것이 시작된 곳

모든 것은 30 톤 디지털 컴퓨터와 최초의 프로그래머로 시작되었습니다. 1940 년대 동안, 6 여성들은 전자 수치 통합 자 및 컴퓨터에 대한 프로그래머로 선정되었다 , 더 잘 알려져 ENIAC . 미군이 자금을 지원하고 제 2 차 세계 대전에서 승리 할 수 ​​있도록 고안된이 회사는 수천 개의 수치 문제를 해결 하고 1 초에 최대 5000 개의 추가 사항을 실행할 수있었습니다 .

그러나 오늘날 우리가 볼 수있는 유비쿼터스 컴퓨터와 달리 '자이언트 브레인 (Giant Brain)'은 전자 케이블로 제어되는 추가 기계 모음에 가깝습니다. 아키텍처는 특정 데이터와 코딩이 라우팅되는 6000 개 이상의 스위치 로 매우 복잡했습니다 . 때로는 새 프로그램을 시스템에 다시 작성하는 데 며칠이 걸렸습니다. 그럼에도 불구하고 인간-컴퓨터 로 해결하는 데2 년 이 걸리는 문제를 ENIAC는 단 2 시간 만에 해결 합니다. 그 당시에 그것을 매우 효율적인 기계로 만듭니다!

물론 역사상 최초의 디지털 컴퓨터 였지만 처음에는 완벽하지 않았습니다. 선택한 6 명이 해결해야하는 기술적 결함이 많이있었습니다. 그것은이었다 베티 호 버튼 이 가지고 도움이 될 것을 깨달았다 - 6 개 프로그래머 중 하나 - 디버깅하기 위해 실행을 통해 프로그램 중간에 멈출 수있는 순간 문제. ENIAC의 초기 설계에서 프로그램 흐름은 한 장치에서 다른 장치로 케이블을 연결하여 설정되었습니다. 특정 지점에서 프로그램을 중지하기 위해 케이블을 간단히 제거했습니다. 프로그램 실행 도중에 이러한 케이블을 제거하는 것은 오늘날 우리 모두가 좋아하고 사용 하는 "중단 점" 으로 명명되었습니다 .

"Betty는 놀라운 논리적 사고력을 가지고 있었고 다른 사람들이 깨어 난 것보다 더 많은 문제를 해결했습니다."— Jean J. Bartik

그래서 거기에 있습니다! 프로그래밍 역사상 처음으로 프로그래머는 중단 점 개념을 사용하여 디버깅했습니다!

이제 ENIAC에서 어떻게 디버그합니까?! 그것은 프로그래머가 그것의 진행이나 계산을 따르는 것이 매우 쉬운 방식으로 설계되었습니다 . 전자 메모리의 전체 내용은 네온 불빛이있는 축전지에 표시되었습니다. 이 시점에서 변경이 필요한 경우 스위치를 변경하여 변경할 수 있습니다.

하지만 IDE 중단 점은 어떻습니까? 오늘날 우리 모두가 알고있는 것들. 그게 처음 이었나요? 있었음에 틀림 없다!

ENIAC를 넘어서

우리는 요즘 프로그래머로서 꽤 좋은 것들을 가지고 있습니다. IDE 이전에 프로그래머는 펀치 카드에 모든 코드를 작성한 다음 별도의 컴파일러로 가져와 코드를 실행하고 컴파일했습니다. 우선 순위에 따라 카드는 몇 분에서 며칠까지 실행 대기열에있을 수 있으며 그 후 개발자가 검토 할 수 있도록 일부 출력이 인쇄됩니다. 출력에 오류가 기록되면 프로세스가 다시 시작됩니다.

COBOL, PL / I 및 Assembler로 작성된 프로그램의 디버깅을 용이하게하는 OLIVER (1974) 라는 주제를 조사 할 때 메인 프레임 디버거를 우연히 발견 했습니다 . 배치 디버깅에 사용되는 SIMON 은 OLIVER 이후 6 년 만에 또 하나 출시되었습니다.

IDE의 경우 역사상 첫 번째 항목을 집중적으로 검색 한 후 1983 년에 출시 된 Turbo Pascal 은 첫 번째 IDE 프로그래머가 기억하는 것처럼 많은 부분을 차지했습니다. 그러나 버전 6.0이 출시 될 때까지 디버거가 중단 점과 감시를 지원했습니다. 그럼에도 불구하고,이 것으로 간주됩니다 다음 사람을위한 길을 열어 IDE.

요약

"중단 점"이라는 용어를 처음 만든 사람은 ENIAC에 대한 지침을 실행하기 위해 프로그래머로 선택된 6 명의 여성 중 한 명인 Betty Holberton이었습니다. 이것은 잘못 실행되는 프로그램을 디버깅하는 데 매우 도움이 될 것이라는 사실을 깨달은 후 발생했습니다. 이를 달성하기 위해 케이블을 ENIAC 장치에서 빼내어 프로그램 실행을 중지하고 효율적인 디버깅을 허용했습니다. ENIAC의 특성으로 인해 메모리의 전체 내용을 누산기에서 쉽게 읽을 수 있습니다. 따라서 일단 중지되면 문제를 정확히 찾아 내고 스위치를 변경할 수있었습니다.

38 년 후 Turbo Pascal은 오늘날 우리가 사용하는 인기있는 IDE를위한 길을 열었습니다. 초기 릴리스에서는 중단 점 및 시계와 같은 중요한 디버깅 기능이 누락되었지만 나중에 버전 6이 릴리스 된 1990 년에 도입되었습니다.

오늘날 코드 디버깅에서 가장 큰 촉진자가 된 것의 기원에 대한이 짧은 이야기를 즐기 셨기를 바랍니다.

재미있는 사실 : 이 뛰어난 프로그래머는 처음으로 또 다른 개념 인 Sort Merge Generator 를 발명 한 것으로도 알려져 있습니다. 그녀의 혁신은 컴퓨터를 사용하여 컴퓨터 프로그램을 만든 첫 번째 예였습니다!

Suggested posts

운영 체제 21 | I / O 장치, CPU 및 장치 상호 작용, 가상 파일 시스템 추상화 및 Inode 이해 소개

운영 체제 21 | I / O 장치, CPU 및 장치 상호 작용, 가상 파일 시스템 추상화 및 Inode 이해 소개

보시다시피 애플리케이션 실행은 CPU와 메모리에만 의존하는 것이 아니라 다른 여러 유형의 하드웨어 구성 요소에 의존합니다. 이러한 구성 요소 중 일부는 입력 또는 출력을 제공하기 위해 특별히 연결되어 있거나 둘 다 I / O 장치라고합니다.

JavaScript의 이벤트 루프

호출 스택, 웹 API, 이벤트 대기열, 마이크로 작업, 매크로 작업

JavaScript의 이벤트 루프

이벤트 루프는 JavaScript의 비동기 프로그래밍의 비밀입니다. JS는 단일 스레드에서 모든 작업을 실행하지만 몇 가지 스마트 데이터 구조를 사용하면 멀티 스레딩의 환상을 얻을 수 있습니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.