현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 개발 - 컴파일 원리가 유용합니까? 네, 그 프로그래머는
컴파일 원리가 유용합니까? 네, 그 프로그래머는
내가 너에게 말하는데, 컴파일 원리는 이렇게 유용하다.

저는 모바일 게임입니다. 지금은 게임 엔진입니다. 엔진이기 때문에 상층에 추상적인 것을 제공해야 한다. 여기서는 스크립트 시스템을 소개했습니다.

이 스크립트 시스템에는 기본 입/출력, 4 개의 연산, 시스템 함수 호출, 함수 선언, 호출 등 실제 필요에 따라 직접 설계한 명령 집합이 포함되어 있습니다 (Lua 또는 다른 게임 스크립트를 사용해 본 경우 알 수 있음). 전체 구조에는 명령어 세트, 컴파일러, 가상 시스템 등이 포함됩니다. 이런 식으로 엔진은 그림 그리기, 위치 계산 등과 같은 몇 가지 기본적인 서비스를 제공합니다. , 그리고 스크립트는 게임을 매우 간단하게 제어 할 수 있습니다. 심지어 새로운 게임을 빠르게 만들 수도 있습니다. 뇌신의 망치 엔진을 아시죠?

여기 계산기 애플릿이 있습니다. EBNF 이론을 적용하고 표현식을 지원합니다. 예를 들면 (2+3*6)*4+4 입니다. 그것의 단순함을 경험하고 자신에게 힘을 주다.

/*

EBNF 기반 단순 정수 연산 계산기

& ltexp & gt-& gt;; & ltterm & gt {& ltaddop & gt & ltterm & gt}

& ltaddop & gt-& gt;; +|-

& ltterm & gt-& gt;; & lt 계수>{ & ltmulop & gt& lt 계수>}

& ltmulop & gt-& gt;; *

& lt 계수 & gt-& gt;; (& ltexp & gt)| 숫자

Stdin 에서 문자 행을 입력합니다

오류 또는 결과를 출력합니다.

*/

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltctype.h & gt

Char 토큰 /* 글로벌 토큰 변수 */

/* 재귀적으로 호출되는 함수 프로토타입 */

Intexp (void);

Intterm (void);

Int 계수 (void);

잘못된 오류 (void)

{

Fprintf(stderr, "error \ n");

종료 (1);

}

잘못된 일치 (예상 문자)

{

If (token = = expected token) token = getchar ();

Elseerror ();

}

주 ()

{

Int 결과

토큰 = getchar (); /* 선행 문자가 있는 태그 로드 */

Result = exp ();

If(token = =' \ n ')/* 줄 끝 확인 */

Printf("Result = %d\n ",결과);

Elseerror (); /* 행의 관련 없는 문자 */

0 을 반환합니다

}

Int exp(void)

{

Inttemp = term ();

While ((토큰 = ='+') | | (토큰 = ='-'))

스위치 (토큰)

{

대/소문자 "+":

일치 ('+');

Temp+= term ();

깨뜨리다

대/소문자'-':

일치 ('-');

Temp-= term ();

깨뜨리다

}

반환 온도

}

내부 기간 (부적합)

{

Inttemp = factor ();

While (토큰 = =' *')

{

일치 ('*');

Temp * = factor ();

}

반환 온도

}

정수 계수 (비어 있음)

{

내부 온도

If (토큰 = =' (') {

일치 ('(');

Temp = exp ();

Match (')');

}

Elseif (isdigit (토큰)) {

Ungetc (토큰, stdin);

Scanf("%d ",& amptemp);

토큰 = getchar ();

}

Elseerror ();

반환 온도

}

사실 프로그래밍을 어느 정도 배우면 항상 방향이 없다. 당신은 항상 다음 단계에서 C/C++ 를 어떻게 배우는지 묻습니다. 당신은 이미 이 언어를 마스터했다고 생각합니다. 사실 네가 부족한 것은 바로 이런 부드러운 것들이고, 부족한 것은 이론이다.

컴파일 원리는 단일 이론이 아니며 일반 표현식, BNF, EBNF, 구문 분석 트리, 구문 트리 및 많은 런타임 환경과 같은 다른 많은 지식을 배울 수있는 작은 영역을 다룹니다.

이것들은 너에게 매우 풍성한 보답을 가져다 준다. 말을 많이 하지 않고, 운행을 배우면 C++ 언어 자체에 대한 이해가 깊어진다.

만약 네가 좋은 발전을 원한다면, 너는 공부하는 것이 좋겠다.