나무 숲

프로그래밍 오류의 종류 - 컴파일 에러/런타임 에러/링킹 에러/논리 에러/파스 에러 본문

Career

프로그래밍 오류의 종류 - 컴파일 에러/런타임 에러/링킹 에러/논리 에러/파스 에러

wood.forest 2017. 4. 15. 10:10



경고 창에 뜨는 에러 메세지 등을 보고, 디버깅을 통해 프로그램을 고쳐 나가는 것은 정말 중요합니다.

메세지에서 어디가 틀렸는지 알려주니 정말 고마운 기능이 아닐 수 없습니다..ㅎㅎ








컴파일 에러/컴파일러 에러 Compilation error


프로그램의 실행을 막는 오류입니다. Visual Basic 컴파일러가 이해하지 못하는 코드를 발견하면 컴파일러 오류가 발생합니다.

대부분의 컴파일러 오류는 코드 입력 시의 실수, 다시 말해 문법적인 오류 때문에 발생합니다. 

예)

1) 키워드의 맞춤법이 틀리거나

2) 필요한 문장 부호를 빠뜨리거나 (;인 경우가 가장 많은 듯..)

3) If 문을 먼저 사용하지 않고 End If 문을 사용

4) 선언되지 않은 변수 사용












런타임 에러 Run-time error


이름 그대로 프로그램 실행 중에 발생하는 오류입니다. 이러한 오류는 일반적으로 프로그램에서 수행할 수 없는 작업을 시도할 때 발생합니다.

프로그램 작성 시 설계 미숙으로 인한 경우가 많다고 하는데요, 저는 아직도 미숙한 듯 하네요..ㅎㅎ 물론 그 외 기계적 결함에 의해서 발생하기도 하지만 드문 일이니까요..

설계 미숙에서 드러나는 예는 아래와 같은 것들이 있습니다.

1) 0으로 나누는 경우

2) 무한 루프에 빠지는 경우

3) Null point error

4) segmentation fault/bus error - 존재하지 않는 메모리 위치에 접근하려 할 때











논리 에러 Logic error


논리 오류는 사용자가 의도한 작업을 프로그램에서 수행하지 못하는 오류입니다. 코드는 오류 없이 컴파일 및 실행될 수 있지만 작업 결과가 예상과 다를 수 있습니다. 작성자가 예상한 알고리즘 등이 틀렸다는 것을 나타내는데요, 따라서 에러 메세지가 따로 나타나지 않아 오류를 교정하는 것이 어렵습니다.(저는 디버깅으로 한줄씩 해봅니다..)
















링킹 에러 Linking error


흩어진 소스 코드 파일들을 컴파일한 뒤 각자 연결할 때 발생하는 에러입니다. 이름그대로..

예를 들어 어딘가에 선언되어 있는 헤더 파일이나 다른 코드 파일이 실제로는 존재하지 않을 때 이러한 오류가 나타납니다.

파일이 위치에 맞게 제대로 있는지, 선언하는 과정에서 또는 함수명에서 철자 등을 빼먹거나 오타를 낸 것은 아닌지 확인해봐야 합니다.
















파스 에러 Parse error


인터프리터 언어에서 발생하는 에러로, 문법의 오류로 인해 나타나는 에러를 뜻합니다.

흔히 나타나는 것은 맨 뒤 세미콜론; 을 잊거나 중괄호}를 제대로 닫아주지 못한 경우입니다.

인터프리터의 컴파일 에러 같은 느낌이네요 (컴파일을 안하니까..)





-

https://msdn.microsoft.com/ko-kr/library/s9ek7a19(v=vs.90).aspx

https://books.google.co.kr/books?id=aTSrAwAAQBAJ&pg=PA644&lpg=PA644&dq=%EB%85%BC%EB%A6%AC+%EC%97%90%EB%9F%AC&source=bl&ots=9ONIFINwgV&sig=wWssfoieq8K6qGimGNNayLu0oN0&hl=ko&sa=X&ved=0ahUKEwj-wrPngaHTAhUJerwKHbNFBiEQ6AEITjAH#v=onepage&q=%EB%85%BC%EB%A6%AC%20%EC%97%90%EB%9F%AC&f=false

https://en.wikipedia.org/wiki/Compilation_error

https://www.quora.com/What-is-a-linker-error-in-C

https://www.cs.bu.edu/teaching/cpp/debugging/errors/



728x90
반응형

'Career' 카테고리의 다른 글

gcc vi편집기 명령어  (0) 2017.04.20
GCC 컴파일 과정  (0) 2017.04.18
[C++] cin 에서 쓸만한 것들 ( istream 라이브러리)  (0) 2017.04.13
매개변수로서의 스택 사용  (0) 2017.04.11
직업/ 국가정보원 (국정원) NIS  (0) 2017.04.09
Comments