프로그래밍 언어에서 Error의 종류. Syntax와 Semantics의 차이

2020. 11. 22. 22:23·Computer Science/Concept
728x90

Syntax와 Semantics의 정의


Syntax : 문법(Form), 일정형태의 형식에 맞게 작성된다.

-  문장이 언어의 문법(grammer)에 따라 유효한지 혹은 타당한지 확인하는 것과 관련있다.

 

Semantics : 문법에 맞는 형식을 취했을 때 그 문법이 하는 일, 의미

- 문장이 타당한 의미를 지니는지 아닌지를 판별하는 것과 관련있다

 

 

 

 

 

 

ERROR의 종류


소프트웨어의 오류는 크게

Syntax Error(구문 오류), Runtime Error(실행 오류), Semantic/Logical Error(의미적 오류)로 나눌 수 있다.

 

 

1. Syntax Error(구문적 오류)

프로그래밍 언어의 문법적인 에러를 말한다.

컴파일 과정에서 나오는 것들이며, 구문 오류, 컴파일 타임 에러라고도 한다.

예를 들어, 키워드를 잘못 작성하거나, 구두점을 빠뜨리거나, 괄호를 연 후 닫지 않는 것과 같은 경우를 말한다.

문법 오류는 보통 컴파일러가 어떤 줄에서, 어떤 이유로 발생했는지 알려주기 때문에 해결하기 쉬운 편이다.

 

 

 

 

2. Runtime Error(실행 오류)

프로그램 실행 중 발생하여 프로그램이 비정상적으로 종료되게 하는 오류를 말한다.

프로그램이 실행되는 중 실행할 수 없는 연산을 만나면 발생하는 오류이다.

대표적인 런타임 에러로는 잘못된 입력이 있는 경우 발생하는 입력오류가 있다.

 

 

 

 

3. Semantic Error(의미적 오류)

프로그래밍 언어의 문법은 정상적이지만 실행의 결과가 원하는 대로 나오지 않는 오류을 말한다.

문법적으로는 옳기 때문에 컴파일 오류는 나타나지 않지만, 의도하지 않은 결과가 나온다는 점에서 문제가 된다.

컴파일러가 오류를 잡아주지 않아 사람이 검출해야 해서 다른 오류보다 수정이 어렵다.

 

 

 

* Semantic Error  vs  Logical Error

둘은 프로그램의 결과가 의도대로 나오지 않는 다는 점에서 비슷하다.

Logical Error는 글자 그대로 의미적인 오류가 아닌 논리적인 오류가 발생한다.

예를 들어 설명하자면,

Semantic Error는 변수 X를 사용해야하는 곳에서 변수 Y를 사용하여 의도하지 않은 결과가 나온 것이고,

Logical Error는 문제를 잘못 이해하여 X+Y 연산을 해야하는 곳에서 X-Y연산을 하여 의도치 않은 결과가 나온 것이라고 말할 수 있다.

 

728x90
저작자표시 (새창열림)

'Computer Science > Concept' 카테고리의 다른 글

TDD (Test Driven Development) 방법론과 테스트 기법의 종류  (0) 2021.10.11
Debugging(디버깅)이란?  (0) 2021.01.12
'Computer Science/Concept' 카테고리의 다른 글
  • TDD (Test Driven Development) 방법론과 테스트 기법의 종류
  • Debugging(디버깅)이란?
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339) N
      • Web (8)
      • Java (7)
      • Spring (19) N
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    알고리즘
    java
    MySQL
    c++
    oracle
    SourceTree
    JavaScript
    codeup
    git
    web
    C
    CSS
    단계별로 풀어보기
    CodeUp 기초 100제
    github
    clean code
    BOJ
    웹
    Cloud
    Tistory
    Python
    db
    aws
    Programmers
    자료구조
    myBatis
    VS Code
    HTML
    spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
프로그래밍 언어에서 Error의 종류. Syntax와 Semantics의 차이
상단으로

티스토리툴바