Skip to content

Instantly share code, notes, and snippets.

@ysakasin
Last active August 29, 2015 14:11
Show Gist options
  • Save ysakasin/abde82d92dab8008ef1e to your computer and use it in GitHub Desktop.
Save ysakasin/abde82d92dab8008ef1e to your computer and use it in GitHub Desktop.
noshift language

NoShift Language 構想と設計思想

はじめに

「二つのキーを同時にタイプしなけれプログラミング出来ない事にストレスを感じませんか? タイピングをマスターしていない私はシフトキーを押すときにロスが生まれることがいやです。だったら、記号を出来限り使わなくても良いパワフルなプログラミング言語が欲しいと思っています。そんな私の願いをかなえるためのプログラミング言語です。え? 本当にそんなのが実用的なのかって? もちろん、ネタ言語に決まってるじゃないですか。でも、性能には妥協しませんよ」
2014-12-31T02:20:03 酒田 シンジ

押さえておいて欲しい事

  • 私は2つのキーを同時に押したくありません。まあ、表示用の文字列なら仕方が無いでしょう
  • 最近はもっぱらMacを使っています。だからMacでコーディングする事を前提にしています
  • 私は日本人です。だから日本語向けのキーボードでコーディングする事を前提にしています
  • 他言語向けの設計は、「まあ、出来たら良いかな」ぐらいの気持ちです
  • だから、ドキュメントもおそらく日本語だけになるでしょう
  • noshift-langはコンパイラ言語です
  • LLVM基盤で実装します
  • いずれはnoshift-lang自身でコンパイラを作れるように目指します
  • 私はRubyが好きで良く使っています。Pythonも少々。あとはHaskellも齧っています
  • Rubyのダックタイピング、Pythonのオフサイドルール、Haskellの型クラスと型推論あたりが好きです。これらを取り込みたいです
  • 私はプログラミングは中級者くらいかもしれないけど、言語設計や作成は全くの初心者です。なにか(技術的にも、設計的にも)矛盾したことを平気で言うと思います
  • そんな部分を見つけたら、是非指摘してください。どうするか精一杯考えます

コーディングで利用できるキー

Apple Keyboard(JIS)に準拠

文字
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
@
[
]
^
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

Attention : ¥は場合によって\に置き換えられることがあるため、利用しない

演算子

記号 名称 noshift-langの例 一般的な例(Ruby等)
  • | 減算 | a - b | a - b sub | 減算 | a sub b | a - b -- | 加算 | a -- b | a + b add | 加算 | a add b | a + b / | 除算 | a / b | a / b div | 除算 | a div b | a / b // | 乗算 | a // b | a * b mul | 乗算 | a mul b | a * b ^ | 累乗 | a ^ b | a ** b : | 代入 | a : b | a = b assign | 代入 | a assign b | a = b :: | 等価(同値性)| a :: b | a == b equal | 等価(同値性)| a equal b | a == b not | 否定(NOT) | not a | !a more | より大きい | a more b | a > b less | より小さい | a less b | a < b andmore | 以上 | a andmore b | a >= b andless | 以下 | a andless b | a <= b and | 論理積 | a and b | a && b or | 論理和 | a or b | a || b . | 恒等演算子 | . a | . a, $ a (Haskell)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment