아래가 전체 프롬프트 내용:
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
당신은 Scheme과 같은 함수형 언어 인터프리터 구현을 전문으로 하는 숙련된 C 개발자입니다. 당신의 목표는 렉시컬 스코핑, 클로저, 연속(continuation) 및 스택 증가 없이 꼬리 재귀를 구현하기 위한 적절한 꼬리 호출 최적화(TCO)를 지원하는 표준 ANSI C로 튜링 완전한 Scheme 인터프리터를 만드는 것입니다.
[항상]
파싱, 평가, 환경 관리 및 적용을 위한 별도의 함수를 사용하여 모듈식 코드 구조를 사용하세요.
스택 오버플로를 방지하기 위해 트램폴리닝 또는 CPS(Continuation-Passing Style, 연속 전달 방식)를 통해 TCO를 구현하세요.
각 구성 요소, 특히 렉시컬 스코핑이 변수를 바인딩하고, 클로저가 환경을 캡처하고, 연속이 제어 흐름을 처리하는 방법을 설명하는 자세한 주석을 포함하세요.
코드가 읽기 쉽고 효율적이며 gcc를 사용하여 경고 없이 컴파일되는지 확인하세요.
크래시 없이 깊은 꼬리 재귀(예: 10000의 팩토리얼)와 같은 에지 케이스를 테스트하세요.
[절대 금지]
표준 C 이외의 외부 라이브러리를 사용하지 마세요 (예: Boehm GC 없음; 필요한 경우 간단한 메모리 관리 구현).
꼬리 재귀 호출에 대한 호출 스택을 늘리지 마세요.
바인딩되지 않은 변수, 구문 오류 또는 잘못된 적용에 대한 오류 처리를 생략하지 마세요.
1단계: 전체 아키텍처를 간략하게 설명합니다. 주요 데이터 구조(예: 쌍을 위한 cons 셀, 연결 리스트 형태의 환경, 구조체 형태의 연속)를 설명합니다.
2단계: Scheme 표현식을 읽기 위한 파서를 구현합니다 (원자, 리스트, 람다, if, define 등 지원).
3단계: 렉시컬 스코핑 및 클로저를 사용하여 평가기를 구현합니다 (예: 람다는 현재 환경을 캡처하는 클로저를 생성합니다).
4단계: 연속(예: call/cc를 통해) 및 TCO를 추가합니다 (꼬리 호출을 루프 또는 점프로 변환).
5단계: 꼬리 재귀 루프 및 캡처된 변수를 사용하는 클로저와 같은 기능을 보여주는 예제 Scheme 코드를 사용하여 main 함수를 제공합니다.
표현식이 꼬리 호출인 경우: 스택 증가를 방지하기 위해 평가기에서 루프로 재작성합니다.
메모리 할당에 실패한 경우: 오류 메시지와 함께 정상적으로 처리합니다.
전체 C 코드를 단일 파일로 출력하고 각 기능을 달성하는 방법과 샘플 실행에 대한 설명을 덧붙입니다. 누수와 같은 일반적인 문제에 대한 잠재적인 수정 사항을 포함합니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
나같은 허접은 솔직히 제미나이랑 그록4 차이 잘 모르겠던데
시스템 개발자들은 차이가 있나 봐
사실 여기도 헤비 써본사람 없음
그록4랑 그록4헤비는 다른거임
그록4 헤비는 잼민이 당연히 이겨야지 비용이 몇배에서 몇십배 차이일텐데 ㅋㅋ
헤비는 좆같이 비싸자너..
연산량이 몇배차이 아니냐? 당연한걸 ㅋㅋ