컴파일러 채용-얼마나 많은 교육이 필요한가 [폐쇄]


15

나는 Compiler Construction As A Subject 질문 에 동기를 부여 받았으며 이것을 물어볼 것이라고 생각했습니다.

나는 몇몇 사람들로부터 그들이 좋은 "컴파일러 팀"을 가지고 있다는 것을 들었습니다. ?

학부 과정에 수업이 있다는 것을 알고 있지만 대학원 학위가 최소가 될 수있는 것입니까 (최소한 석사 등)?

나는 두 달 안에 컴퓨터 과학 석사 과정을 시작할 예정이며 학교에 두 개의 컴파일러 수업이 있습니다. 컴파일러 개발을하는 직업을 갖기에 충분합니까, 아니면 더 많은 시간을 투자해야합니까?


2
오픈 소스 컴파일러 프로젝트 (예 : llvm)에 참여하면 큰 이점이됩니다.
SK-logic

Ditta @ SK-Logic 저는 현재 IB CS 파이널 용 컴파일러를 작성하고 있습니다. 컴파일러 작성 경험을 얻는 것이 아마도 가장 좋은 방법 일 것입니다.

1
컴파일러와 런타임에서 가장 큰 이름 중 하나에 학위가 없다는 것을 지적했습니다. 앤더스 헤 즐스 버그 ... 터보 파스칼, 델파이, C #을, 타이프 라이터 뒤에 뇌
마태 복음 회칠 한

답변:


17

컴파일러 개발은 매우 하드 코어이므로 많은 인내심, 열정 및 탄탄한 지식이 필요합니다. 인내심, 열정 및 탄탄한 지식을 어느 정도의 학위와 혼동하지 마십시오. 우리는 strlen()4 줄의 C 코드로 도 인식 할 수없는 석사 학위를 가진 여러 지원자를 보았습니다 .

확실히 그 수업에 참석하고 실용적인 지식을 습득하십시오. 어쩌면 컴파일러 개발을 좋아하지는 않지만 경험이 있으면 흥미로운 개발 작업을 얻는 데 도움이 될 것입니다.


답변 주셔서 감사합니다. 자기 교육을 받았으며 학업 CS 배경이없는 사람에게 기회를 주실 수 있습니까?
Jetti

3
그냥 MIT OCW의 과정을 체크 아웃
segfault

3
@Jetti : 나는 배경에 관계없이 수년 동안 오픈 소스 컴파일러에 상당한 기여를 한 사람에게 기회를 줄 것입니다. :)
Matthieu M.

@Jetti : 나는 그들이 일단 그들이 진짜 지식을 가지고 있다는 증거를 가지고 올 것이다. 예를 들어, 컴파일러 최적화 코드 생성기에 대한 테스트를 작성한 경우 평균 대학 졸업생보다 가치가 높습니다.
sharptooth

컴파일러가 자체 언어로 작성되면 더욱 흥미로워집니다.
ott--

5

첫 번째 단계는 좋은 CS 배경을 갖는 것입니다. 잠재적으로 더 우수하지만 적어도 BSc Honors 학위를 이수한 것입니다. 컴파일러 (일반적으로 언어 번역기)와 관련 기술 (lexing, parsing)은 컴퓨터 과학의 기초에 대해 잘 연구되어 있다는 점에서 실제로 이에 대한 정당성이 있습니다.

필자는 실질적인 산업 (오픈 소스 포함) 컴파일러 개발은 물론 학업 자격 증명의 부족을 완화시킬 것이라 생각하지만 후보자의 배경에 크게 의존합니다. 여기서 컴파일러 개발은 해석기 및 구문 분석을위한 관련 도구를 다룹니다.

소프트웨어 엔지니어링에 대한 일반적인 역량이 필요합니다. 우수한 컴파일러 (예 : 과학적 계산, 게임 개발) 또는 고급 언어의 일반적인 프로그래밍 배경 이상의 어셈블리 언어 프로그래밍 경험이 필요한 응용 프로그램에 대한 도메인 지식도 장점입니다. 컴파일러가 구현하는 언어에 대한 전문가 수준의 지식도 장점입니다.

면책 조항 : 저는 컴파일러 개발자이며 후보자를 인터뷰하는 데 참여했습니다.


5

오늘날 Flex , YACC 및 여러 유사한 도구와 같은 도구로 인해 컴파일러 구성이 훨씬 간단 해졌습니다. 당신이 매료되기 때문에 취미처럼 접근하고 싶다면, 이러한 도구가 도움이 될 것이며 한 달 안에 괜찮은 컴파일러 프론트 엔드를 만들 수 있습니다.

Dragon Book 은 컴파일러 구성을 독학하고 싶은 사람이라면 누구나 가장 좋아하는 책 중 하나입니다. 그리고 계속 진행하면서 언젠가 오픈 소스를 읽는 데 소비합니다. 컴파일러 코드를 합니다.


5

컴파일러 경력에 대해 진지하게 생각한다면 적어도 언어 이론, 특히 유형 이론, 형식 의미론 및 계산 이론에 대한 공식 교육이 필요하다고 생각합니다. 이러한 영역은 학업 환경 밖에서는 배우기가 어렵습니다. 대부분의 경우 컴파일러 구성 자체는 똑똑한 개발자가 스스로 기본 사항을 배울 수있는 주제입니다. 그러나 보안 및 최적화를 위해 광범위한 의미 론적 분석 및 계측을 사용하는 최첨단 컴파일러에서 작업하려면이 영역에서 최소한 석사 논문이 필요할 수 있습니다.


1
이는 "제품 엔지니어링 역할"보다는 R & D 역할과 비슷합니다. 저는 armcc 및 LLVM (두 생산 품질 C / C ++ 컴파일러)의 제품 엔지니어였으며 이러한 주제가 전혀 필요하지 않았으며이 분야에서 일하고있는 2 년 동안 이들에 대한 언급도 보지 못했습니다.
dune.rocks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.