定製本身的編程語言

  • 你是否厭倦了學習新的編程語言,去仔細理解設計者各類奇葩的設計?
  • 你是否由於長期不用一種語言,而忘記了這些語言的所謂許多特別之處?
  • 你是否由於工做須要,不得不忍受各類語言的種種限制,去編寫各類算法?

如今有了一種解決這種問題的好辦法,設計本身的計算機語言:git

符合本身習慣的語法
	能自動轉換成工做語言
	把語言的各類奇技淫巧都隱藏起來

我已經實現了這個願望,設計了一種本身的計算機語言:程序員

MyLang算法

這門語言沒有采用任何教科書上使用的編譯技術,而是用了一種語法分離的解析技術。讓設計語言變得異常簡單。由於並不須要設計一堆解析代碼,也不要設計複雜的語法樹數據結構,更不須要設計底層運行語言,只須要設計本身的語言語法,就能容易的擁有本身的計算機語言。編程

也就是說數據結構

普通程序員也能設計本身的語言

這個項目絕大部分代碼是用本身的語言書寫的,編譯運行,都是轉換成別的語言來運行,對我來講:編程語言

別的語言都是底層語言

我能夠用一種風格書寫代碼,但能夠生成 Python,PHP,Ruby, C, Lua, GoLang ... 等許多的語言。學習

若是學習一門新語言,在把這門語言全部的特別之處,集成到 MyLang 語言的轉換代碼中後,就不會去關心這些讓人討厭的東西了,只是須要關注這門語言的模塊功能,新的類的功能。atom

先分享一下這種簡潔的代碼風格:spa

fn match-rules($c:Cursor $rules) str
  my $gather PASS
  for $rule $rules.atoms {
    while $c.readchar.isspace $c.at.inc
    my $match $c.match-rule($rule)
    if $match == FAIL return FAIL
    set $gather $gather.gather($match)
  }
  return $gather

想關注這個項目,一塊兒學習設計本身的語言,輕鬆一點,勝人一籌!設計

https://gitee.com/str/myspp

歡迎私信討論。

相關文章
相關標籤/搜索