Create a new repository

全力で行くらしい

言語制作の進捗

どもども新名です。
今回は、@KaitoMiyazaki1君に会いに神戸まで行きました。

神戸のRubyコミュニティにも参加しましたが、
先に、@KaitoMiyazaki1君との言語の進捗から。

@KaitoMiyazaki1君との言語制作の近況

Githubのissuesの状態です

f:id:tetsunari_niina:20140406214335p:plain

言語仕様の深堀りが完了し、大まかに以下のようなことが決まりました。

イメージ : Rubyベースのオブジェクト指向を持つ、Pythonに近いDRYな言語。

モットー:最も早く書くことができ、生産性、保守性、可読性を保持する言語

具体的には、

  • 生産性
    • ブロックのインデント化
    • 単語の短縮化
      ex. attr_reader -> reader, initialize -> init, Node.new -> Node()
  • 可視性
    • castの明確化
      ex. str(exp)
  • 可読性
    • unlessなどnot構文の削除
      ex. unless -> if not
  • 保守性
    • 最低限の構文 - 保守の大変な多種多様なメソッドはいらない
  • 構文
    • Pythonのように押し付けすぎないかつDRY

な感じです。

こんな感じの構文になるイメージです。

import sys

class Node 
  include Module
  def __init__
    # init
    @str = "abc"    # instance variable

  def self.class_method
    # Class Method

  def instance_method(argument)
    if @str == "abc"
      print str

# global variable
node = Node()

制作は開始しているのですが、他の言語を少しずつ参考にして、 慎重に設計をしています。

非公開リポジトリではない言語公開用のリポジトリも作りましたー

Github: Rychle

定期的に確認してくださると嬉しいです。 5月の末には公開したいと思っています。

それでは〜〜〜

# 言語制作にまだ若干の不安があるけど、何とかしていきたいと思います。
# アドバイスとかコメントくれるとありがたいです!