컴퓨터과학/cs50(8)
-
[컴퓨터 과학 cs50] 디버깅의 유래와 디버깅에 대해서
Grace Hopper라는 아주 유명한 컴퓨터 과학자가 수년 전 동료들과 함께 Mark 2시스템이라는 것을 만들며 작성한 노트이다. Harvard Science Center에 가보면 건물 1층에 아주 큰 기계가 있을 텐데 그게 Mark1이다. Mark2는 말 그대로 벌레가 안에 들어가 작동에 문제를 겪었다. 그건 나방이였다!! Grace Hopper는 이를 기록하며 벌레(bug)가 발견된 첫 사례라고 적었다. 물론 이전에도 사람들이 어떤 시스템의 문제를 가리켜 버그라는 표현을 사용했지만, 이게 바로 컴퓨터 과학자들 사이에서 전해 내려오는 최초의 버그이다! 즉 버그는 우리가 의도하지 않은 프로그램 내 실수를 뜻한다. Help50은 CS50이 제공하는 도구 중 하나다 CS50 샌드박스를 연다! (visual..
2021.01.29 -
[컴퓨터 과학 cs50] c언어의 동작원리는 어떻게 될까? 컴파일링과 어셈블링 링킹에 대해서!
지난 시간에 보았던 C코드입니다 우선 main이라는 함수가 있습니다. 프로그램의 시작점으로써 실행 버튼을 클릭하는 것과 같습니다. printf는 출력을 담당하는 함수입니다. printf 함수를 사용하기 위해서는 stdio.h 라이브러리가 필요합니다. Q. stdio.h가 무엇을 의미할까? 헤더 파일로서, C언어로 작성되어 있으며, 파일명이 .h로 끝나는 파일이다. 이 파일에는 printf함수의 프로토타입이 있어서 Clang컴파일러가 프로그램을 컴파일러 할 때 printf가 무엇인지 알려주는 역할을 한다. 맨 끝에 붙은 ;은 새(new) 줄을 의미하며, 커서가 다음줄로 넘어간다. int나 void같은 부분들을 이번 시간에 배워나간다. 코드를 clang hello.c로 컴파일하고 ./a.out 명령으로 프로..
2021.01.28