중위 표기법
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
중위 표기법은 연산자를 피연산자 사이에 위치시키는 표기법으로, 이항 관계나 산술 연산에서 널리 사용된다. 전위 표기법이나 후위 표기법에 비해 컴퓨터가 구문 분석하기 어렵지만, 많은 프로그래밍 언어에서 사용된다. 중위 표기법은 괄호를 사용하여 연산 순서를 명확히 하거나, 연산자 우선순위 규칙을 통해 모호성을 해결한다. 함수 표기법과 비교하여, 연산 순서 결정에 괄호 사용이 필요하며, 연산자 우선순위 및 결합 법칙을 통해 모호성을 해결할 수 있다.
더 읽어볼만한 페이지
- 연산자 (프로그래밍) - 형 변환
형 변환은 프로그래밍에서 변수의 데이터 타입을 변경하는 것으로, 암시적 형 변환과 명시적 형 변환으로 나뉘며, 객체 지향 프로그래밍에서는 업캐스팅과 다운캐스팅이 발생하고, 각 언어는 고유한 규칙과 방법을 제공하며 잘못된 형 변환은 오류를 유발할 수 있다. - 연산자 (프로그래밍) - 연산자 오버로딩
연산자 오버로딩은 프로그래밍 언어에서 기존 연산자를 사용자 정의 자료형에 대해 재정의하여 내장 자료형처럼 다루도록 하는 기능으로, 코드 가독성과 표현력을 높이지만 남용 시 코드 의미를 모호하게 만들 수 있다. - 수학 표기법 - 기수법
기수법은 수를 나타내는 방법 또는 체계로, 십진법을 비롯한 다양한 종류가 존재하며, 일진법, 명수법, 위치값 기수법 등으로 분류되고, 가장 널리 사용되는 십진법은 힌두-아라비아 숫자 체계를 기반으로 위치값 기수법의 발전과 0의 도입으로 수학적 계산의 효율성을 높였다. - 수학 표기법 - 괄호
괄호는 문장 내에서 추가 설명, 인용, 강조 등 여러 기능을 하는 문장 부호로, 소괄호, 대괄호, 중괄호, 화살괄호 등이 있으며, 다양한 분야에서 특수한 의미로 활용된다.
중위 표기법 | |
---|---|
개요 | |
종류 | 표기법 |
분야 | 수학, 컴퓨터 과학 |
표기 위치 | 연산자를 피연산자 사이에 표기 |
같이 보기 | |
관련 표기법 | 전위 표기법 후위 표기법 함수 표기법 |
2. 사용법
중위 표기법은 전위 표기법(예: '''+''' 2 2)이나 후위 표기법(예: 2 2 '''+''')에 비해 컴퓨터가 구문 분석하기 더 어렵다.[2] 그러나 많은 프로그래밍 언어들이 사람이 보기에 친숙하다는 이유로 이를 사용한다. 중위 표기법은 산술에서 더 많이 사용되며, 예를 들어 5 '''×''' 6과 같은 형태로 나타난다.[1]
2. 1. 이항 관계
이항 관계는 종종 중위 기호로 표시된다. 예를 들어 집합 ''A''가 원소 ''a''를 포함할 때 집합 소속을 나타내는 ''a'' ∈ ''A''와 같은 방식이다. 기하학에서 수직인 직선 ''a''와 ''b''는 로 표기하며, 사영기하학에서 두 점 ''b''와 ''c''가 원근법적으로 위치할 때는 로, 사영성으로 연결될 때는 로 표기한다.2. 2. 특수 분야
이항 관계는 집합 ''A''가 원소 ''a''를 포함할 때 집합 소속을 나타내는 ''a'' ∈ ''A''와 같이 중위 기호로 표시되는 경우가 많다. 기하학에서 수직인 직선 ''a''와 ''b''는 로 표기하며, 사영기하학에서 두 점 ''b''와 ''c''가 원근법적으로 위치할 때는 로, 사영성으로 연결될 때는 로 표기한다.중위 표기법은 전위 표기법(예: '''+''' 2 2)이나 후위 표기법(예: 2 2 '''+''')에 비해 컴퓨터가 구문 분석하기 더 어렵다.[2] 그러나 많은 프로그래밍 언어들이 친숙성 때문에 이를 사용한다. 중위 표기법은 산술에서 더 많이 사용되며, 예를 들어 5 '''×''' 6과 같은 형태로 나타난다.[2]
2. 3. 프로그래밍 언어
중위 표기법은 전위 표기법(예: '''+''' 2 2)이나 후위 표기법(예: 2 2 '''+''')에 비해 컴퓨터가 구문 분석하기 더 어렵다. 그러나 많은 프로그래밍 언어들이 연산자와 피연산자의 배치 순서가 직관적이고 사람이 보기에 친숙하다는 이유로 중위 표기법을 사용한다.[2] 예를 들어 5 '''×''' 6과 같이 산술에서 더 많이 사용된다.[2]3. 다른 표기법과의 비교
중위 표기법은 함수의 이름이 특정 연산을 나타내고, 그 인수들이 피연산자가 되는 함수 표기법과 구분된다.
3. 1. 함수 표기법
중위 표기법은 함수 표기법과도 구분될 수 있는데, 함수 표기법에서는 함수의 이름이 특정 연산을 나타내고, 그 인수들이 피연산자가 된다. 이러한 함수 표기법의 예로는 '''S'''(1, 3)가 있으며, 여기서 함수 S는 덧셈("합")을 나타낸다. S(1, 3) = 1 + 3 = 44. 연산 순서
중위 표기법에서는 전위 표기법이나 후위 표기법과 달리, 피연산자와 연산자 그룹을 둘러싼 괄호가 연산이 수행되어야 할 순서를 나타낸다. 괄호가 없으면 특정 우선순위 규칙이 연산 순서를 결정한다.
4. 1. 모호성
중위 표기법에서는 전위 표기법이나 후위 표기법과 달리, 연산자와 피연산자의 그룹을 묶는 괄호가 연산 순서를 나타내는 데 필요하다. 괄호가 없을 경우, 특정 우선 순위 규칙이 연산 순서를 결정한다.다음은 BNF 구문 규칙 집합으로 정의되는 중위 표기법 문법이다.
`
`
`
`
이 문법에는 모호성(ambiguity, 흔히 모호성이라고도 하지만, “모호하다”는 말에는 “윤곽이 명확하지 않다”는 뜻도 있으므로 여기서는 그런 의미가 아니다)이 있다(모호한 문법 참조). 예를 들어,[1]
"1 - 2 + 3"
은 이 구문 규칙으로부터 “(1 - 2) + 3”과 “1 - (2 + 3)” 중 어느 것에 해당하는 구문 트리에도 구문 분석될 수 있다.[1]
4. 2. 연산자 우선순위 및 결합 법칙
중위 표기법에서는 전위 표기법이나 후위 표기법과 달리, 연산자와 피연산자의 그룹을 묶는 괄호가 연산 순서를 나타내는 데 필요하다. 괄호가 없을 경우, 특정 우선 순위 규칙이 연산 순서를 결정한다.[1]yacc 등에서는 BNF에 의한 정의에 더하여 “연산자의 우선 순위”와 “연산자의 결합성”( 결합 법칙#프로그래밍 언어 참조)에 해당하는 규칙을 추가할 수 있으며, 이것은 매우 유용한 기능이다. 특히 (yacc는 다르지만) 재귀 하강 구문 분석 등 LL(1) 구문 분석의 구문 분석에서는 사칙연산의 식과 같은 왼쪽에서 오른쪽 순서를 단순하게 구현하면 좌재귀 문제가 있으므로, 문제를 피하고 간결하게 정의하는 방법이 있으면 좋다.
참조
[1]
웹사이트
The Implementation and Power of Programming Languages
http://www.cs.man.ac[...]
2014-08-30
[2]
웹인용
The Implementation and Power of Programming Languages
http://www.cs.man.ac[...]
2014-08-30
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com