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 대리자나 람다식을 호출