compiler-construction

    6

    1답변

    나는 학생들을 위해 버퍼 오버플로 운동을 c에 작성하려고한다. 일반적으로 스택 프레임은 함수 매개 변수, 반환 주소, 기본 포인터 및 로컬 변수로 구성됩니다. 하지만 때로는 추가 포인터가 기본 포인터와 함께 저장된다는 것을 발견했습니다. 수업에서 캐일 (calee)에 저장된 레지스터는 사용하기 전에 저장해야한다는 것을 기억합니다. 그러나 C 코드를 컴파일하

    1

    5답변

    나는 최근에 컴파일러 디자인의 용서를 읽었습니다. 컴파일러에는 기계 독립적 코드를 생성하는 단계 중 하나 인 중간 코드 생성 기능이 포함되어 있습니다. 그렇다면 C가 Java와 같은 플랫폼 독립적 인 언어로 개발되지 않은 이유는 무엇입니까?

    0

    1답변

    나는 다음과 같은 문법에서 (1) 파서 SLR 카메라를 쓰고 있어요 : 모든 1) S -> aSb 2) S -> cB 3) B -> cB 4) B -> ε 첫째, 관련 LR을 찾기 시작 (0) 증강 된 문법을 사용하여 자동화를 구현하여 다양한 상태를 계산하기 시작했습니다. 내가 찾은 주들은 다음과 같습니다 : I0 = {S '-> • aSb, S-

    2

    1답변

    학사 과정에서 컴파일러 디자인 과정을 수강하고 있습니다. 학습 과정의 일부로 언어에 대한 컴파일러를 개발해야합니다. Bash 용 컴파일러를 작성할 수 있습니까? C/C++와 같은 일반적인 프로그래밍 언어 용 컴파일러를 설계하는 것보다 어렵지 않으므로 적어도 초보자는 생각할 수 없습니까?

    -2

    1답변

    A-0 시스템 컴파일러가 처음에는 많이 읽었지만 "20 세기의 컴퓨터 역사"라는 책을 발견했으며 윌리엄 슈미트 (William Schmitt)가 1949 년에 짧은 코드를 구현했다고 설명했습니다. 그레이스 호퍼 (Grace Hopper)는 컴파일러를 작성한 최초의 사람 이었지만 이것은 1952 년에 작성되었습니다.

    0

    1답변

    저는 Vishal Kochhar가 우수 사례 인 article을 C++ 컴파일러에서 어떻게 구현하는지에 대한 기본적인 아이디어를 얻었습니다. 은 try/CATCH 구문은 함수에 나타날 때마다 기본적으로, 컴파일러는 다음과 같이 프롤로그/에필로그 코드를 생성합니다 : 질문은 push -1 push offset new_handler mov eax, fs:[

    1

    1답변

    objdump 파일을보고 레지스터 유출을 인식하는 방법은 무엇입니까? 제 생각에 스택 포인터를 추적하여 수행 할 수 있습니다 : sp 함수 프롤로그 및 에필로그 이상으로 이동, 레지스터 누출을 나타냅니다. 어떤 코드 줄이 레지스터 누출을하는지 알고 싶습니다. 또한 복원 된 레지스터가 전역 변수를 가리키는 곳은 어디입니까?

    0

    2답변

    이 질문은 순전히 호기심에서 벗어 났으며 대답은 컴파일러에 달려 있다고 확신합니다. 이것은 또한 유지 보수가 불가능한 코드로 이어질 극 미세 최적화입니다. CPU는 분명히 각 계산을 수행하고 그것을 어딘가에 저장해야하기 때문에 기능적으로 동일 할 수도 있습니다. 더 적은 변수를 사용하면 본질적으로 빠른 실행 코드로 이어질 지 궁금합니다. 예를 들어, 긴 계

    0

    1답변

    lex/yacc을 사용하여 자체 컴파일러를 만들려고하는데, 두 개의 코드 만 있고 지금 당장 (별도의 헤더없이) 실행되도록 생각하고 있습니다. 그래서이 내 렉스 파일 (FP.l)입니다 : %{ #include "FP.tab.h" %} KEYWORD Program|Function|return|if|then|else|while|do|or|and|print

    0

    2답변

    그래서이 미친 약간 들릴 수는 있지만, 나는 다음과 같은 생각이 ... C에서 ++는 #이의를 포함하거나 단순히 복사 및 붙여 넣기를 사용하여 하나 개의 파일에 모든 코드를 삽입 할 때이 단결 빌드를 호출했다. 이렇게하면 번개를 빠르게 편집 할 수 있습니다. 이제 간단히하기 위해 헤더 전용 라이브러리가 있다고 가정하고 클래스 만 사용하도록 제한합니다 (예