language/C#
식 트리 - 이진 트리(Expression)
ETIT
2020. 10. 2. 13:15
식 트리에서는 부모가 노드가 되며, 피연산자는 자식 노드가 됩니다.
순서(상향식) : 잎 노트 -> 자식 노드 -> 루트
식 트리 자료 구조는 컴파일러나 인터프리터를 제작하는 데도 응용됩니다. 컴파일러는 프로그래밍 언어의 문법을 따라 작성된 소스 코드를 분석해서 식트리로 만든 후 이를 바탕으로 실행 파일을 만듬
이름 c#에서 직접 트리를 조립할 수 있으며, 프로그램 실행 중에 동적으로 무명 함수를 만들어 사용할 수 있게 해준다는이야기!!
식 트리를 다루는 데 필요한 클래스들은 Expression 클래스와 파생 클래스들 입니다.
Expression의 파생 클래스 | 설명 |
BinaryExpression | 이항 연산자를 갖는 식을 표현 |
BlockExpression | 변수를 정의할 수 있는 식을 갖는 블록 표현 |
conditonalExpression | 조건 연산자가 있는 식을 나타냄 |
ConstantExpression | 상수가 있는 식을 나타냄 |
DefaultExpression | 형식이나 비어있는 식의 기본값을 표현 |
DynamicExpression | 동적 작업 실시 |
GotoExpresstion | return, break,continue, goto와 같은 점프문을 나타냄 |
IndexExpression | 배열의 인덱스 참조 |
InVocationExpression | 대리자나 람다식을 호출 |