compiler-theory

    2

    1답변

    컴파일러 (어휘, 구문 및 의미 분석기)를 구현해야합니다. 나는 플렉스 ++에서 어휘를 이미 구현했다. 재귀 적 (recursive descent)에서 구문을 구현했으며, 의미론 (기존 파서에 의미 규칙을 추가)을 수행하고 있음을 알고있다. 내 질문은 - 속성을 어떻게 구현합니까? 생산을위한 예를 들어 , 모든 문법 기호에 대한 등등 그래서 여기 내가 TY

    7

    1답변

    큰 수식 (수백만 개의 노드)에 해당하는 표현식 그래프에 대해 CSE (Common Subexpression Elimination)를 구현하려고합니다. 이 작업을 수행하는 데 적합한 알고리즘은 무엇입니까? 인터넷에서 구현하기 쉬운 알고리즘을 찾고 있었지만 아무 것도 찾을 수 없었습니다. 가능하면 알고리즘은 완전한 표현식 그래프의 노드 수에 선형 복잡성을 가

    5

    1답변

    이 정확히 숙제이지만이 공부와 관련된 :이 예를 들어 문법 같은 것입니다 : E -> E + E | E에서의 E * | -E | (E) |이된다 모호성을 제거한 후, ID E->-F|F F->F+G|G G->G*H|H H->(E)|id (낮은 우선 오퍼레이터부터) 그리고 왼쪽 재귀 왼쪽 인수를 (이 경우에는 필요하지 않음) 최종 LL1 문법은 제거

    1

    1답변

    숫자를 토큰으로 변환하려면 다음 lex 파일을 사용하고 있습니다. 그러나 프로그램은 부동 소수점 수를 올바르게 구문 분석 할 수 없습니다. 디버깅을 위해 printf 문을 추가했으며 strtof 함수가 숫자를 올바르게 구문 분석 할 수 없음을 보여줍니다. 따라서, 입력 4.2주는 내게 출력 0을 제공합니다. %{ #include <stdlib.h> vo

    7

    3답변

    컴파일러가 수행 할 수있는 최적화에 관한 질문이 있습니다. typedef struct test { short i; } s_test; int function1(char *bin) { s_test foo; lock(gmutex); foo.i = *(int*)bin * 8; unlock(gmutex);

    1

    2답변

    언어를 디자인 중입니다. 나는 "else if"라고 부르는 것에 고민 중이다. 내 언어는 블록에 들여 쓰기를 사용하므로 "else if"에 대한 키워드가 필요합니다. Python은 "elif"(meh ...)를 사용하고 Ruby는 "elsif"(yuck!)를 사용합니다. 개인적으로 나는 약어를 사용하는 것을 싫어하기 때문에이 중 하나를 사용하고 싶지 않습니

    9

    2답변

    Reversible Computing 자주 묻는 질문에서 : 비트 손실의 주어진 속도에 대한 가능한 최대 연산 성능을 달성는 일반적으로 단지 가장 낮은 수준에서 명시 적 가역성하지 필요하지만 computing-의 모든 수준에서 ( 이 강력하지만 아직 공식적으로 입증되지는 않았지만 Frank의 법칙이라고도 함). 내가 알고 있듯이 비트가 0 일 때 에너지가

    6

    2답변

    저는 프로그래밍 (5 년 밖에 안되는) 동안 컴파일러/인터프리터 디자인/구현에 관심이 있었으며 항상 아무도 말하지 않는 "마법"처럼 보였습니다 (운영 체제 개발을위한 최소 2 개의 포럼이 있지만 컴파일러/통역사/언어 개발을위한 커뮤니티는 알지 못합니다.) 어쨌든, 최근에 저는 프로그래밍에 대한 지식을 넓히기를 희망하면서, 저 자신의 작업을 시작하기로 결정했

    5

    3답변

    학교에서 우리는 컴파일러가 기계어를 컴퓨터 프로그램으로 컴파일한다는 것을 배웠습니다. 우리는 또한 기계어가 하드웨어에 대한 직접적인 지시로 구성된다는 것을 배웠습니다. 그런 다음 동일한 컴파일 된 프로그램을 다른 하드웨어를 사용하는 여러 컴퓨터 구성에서 어떻게 실행할 수 있습니까?

    0

    1답변

    두 개의 정수가 곱 해져서 결과가 짧아지고 짧게 할당되면 컴파일러는이를 어떻게 해석할까요? 아래의 int 처음 두 곱셈 (__mulsi3() 사용)을 수행 한 다음 단락에 할당되어야 코드 q =(short)(a*b);의 경우 여기 int a=1,b=2,c; short x=3,y=4,z; int p; short q; int main() { c