프로그래밍 언어를 만들고 있습니다. 어떻게 생겼어?
안녕.
나는 또 다른 프로그래밍 언어를 만들고 있는데 당신이 여기 있는 이유는 당신이 직접 만드는 데 흥미가 있거나 프로그래밍 언어가 어떻게 만들어지는지 배우고 싶어하기 때문일 것입니다.
솔직히 말해서, 우리는 다른 프로그래밍 언어가 필요하지 않을 것이며, 당신이 합리적으로 요구할 수 있는 만큼 기존의 언어가 훌륭하다고 확신합니다. 따라서 내 언어의 핵심을 설명하기 전에 내가 왜 이 일을 하기로 결정했는지 설명해야 할 것입니다.
이것이 제가 이것을 시작하게 된 세 가지 동기이며, DEV.to는 프로그래밍 언어를 만드는 방법에 대한 내 생각/세미 튜토리얼의 일종의 블로그/두뇌 덤프 역할을 할 것입니다. 내가 성공하기를 바랍니다. 즐기다!
자, 드디어 제목의 질문에 답할 시간입니다.
그래서 어떻게 생겼어?
음, TL;DR 방식으로 이 언어의 폭을 설명하는 코드 스니펫이 있습니다.
use date
use strings
struct Message: strings::ToString {
string message = "Hello World"
date::Time time
}
impl Message {
toString(&self) string {
return strings::Builder()
.push("[").push(self.time).push("]: ")
.push(self.message)
.build()
}
}
main() {
time := date::Time.now()
mut msg := Message{
message: default,
:time
}
msg := msg.message + "!"
println(msg) // [UTC 11:44:23 27/1/22]: Hello World!
}
보시다시피 Go , Rust , V , 그리고 Pony 에서 영감을 얻은 일부 구문 설탕의 융합입니다. 나는 그것이 거의 모든 사람에게 친숙하고 전체적으로 그루크하기 쉽다고 생각합니다. 나는 Bob Nystrom과 그의 책 "Crafting Interpreters"에서 언어 디자인에 많은 영감을 받았습니다.
그런데 어떻게 이런 디자인을 하게 되었나요?
계획. Google 슬라이드 프리젠테이션에 내용을 작성하고(지금까지 슬라이드가 100개가 넘었는데... 마음에 들지 않습니다) 디자인 선택에 대해 토론하는 데 많은 시간이 소요되었습니다. 언어 디자이너에게 언어에 대한 몇 가지 핵심 공리를 만들 것을 적극 권장합니다. 여기 내 것:
그리고 무엇보다도 "프로그래머가 더 나은 코드를 작성할 수 있도록 언어가 제시하는 제한 사항이 있어야 합니다."
이것들이 제가 언어를 더 잘하는 데 도움이 되기를 바랍니다. 그리고 지금까지 그것들은 제가 어려운 결정을 내리고 무엇을 잘라내고 무엇을 유지해야 하는지 아는 데 도움이 되었습니다.
글쎄... 지금은 그게 다야. 이것은 Cure에 대한 시리즈의 첫 번째 게시물이므로 언어 디자인 드롭 및 개발 업데이트를 계속 지켜봐 주십시오. 아래에 어떻게 생각하는지 알려주고 언어에 대한 아이디어를 좋아하거나 싫어하는지 확실히 말해주세요. 확실히 이 문제에 대해 더 많은 외부 영향이 필요하다고 느낍니다. 언어에 대한 모든 정보가 있는 웹사이트를 만들려고 하고 있지만 시간이 좀 걸릴 수 있습니다.
좋은 시간 되시고 행복한 발전하세요!
Reference
이 문제에 관하여(프로그래밍 언어를 만들고 있습니다. 어떻게 생겼어?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theoneandonly/im-making-a-programming-language-whats-it-look-like-3a0h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)