문제 › 095

095. 미니 컴파일러

Hard 바이브코딩 MCPCompilerParser
문제 설명
[문제] 아주 단순화한 미니 컴파일러 MCP 서버를 구현한다. 컴파일러는 보통 소스 코드를 (1) 토큰으로 쪼개고(tokenize), (2) 구조로 분석하고(parse), (3) 실행(execute)하는 단계를 거친다. 이 서버는 "단일 변수 대입 + 사칙연산" 정도만 다루도록 크게 단순화했다. 예: "x = 5 + 3". - 토큰화: 공백을 기준으로 조각낸다. - 파싱: 단순화를 위해 토큰들을 공백으로 다시 이어 붙인 문자열을 반환한다(실제 구문 트리는 만들지 않음). - 실행: "="의 오른쪽 식을 계산한 정수 결과를 반환한다. [구현할 함수] - tokenize(input_string: str) -> array<string> 공백을 기준으로 input_string을 토큰 배열로 나눠 반환한다. - parse(tokens: array<string>) -> str 토큰 배열을 공백으로 이어 붙인 문자열을 반환한다. - execute(ast: str) -> int ast에서 "="의 오른쪽 식을 산술 계산한 정수 결과를 반환한다. 예: "x = 5 + 3"이면 5 + 3 = 8. [입력·상태] 별도의 상태를 유지하지 않는다. 각 단계는 입력만으로 결과가 정해진다. [제약] - input_string과 ast는 문자열이고, tokenize의 반환은 문자열 배열이다. - 토큰은 공백 하나를 기준으로 나누고, parse는 토큰들을 공백 하나로 다시 잇는다. - [힌트] execute에는 문자열 산술식 계산이 필요하다(Python: 토큰 파싱 또는 ast.literal_eval 기반 / C++: 간단 파서 / Java: ScriptEngine 또는 간단 파서). [예시] tokenize("x = 5 + 3") -> ["x", "=", "5", "+", "3"] parse(["x", "=", "5", "+", "3"]) -> "x = 5 + 3" execute("x = 5 + 3") -> 8
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.