新歓ブログリレー2020 60日目です
2020年5月にv言語 ヴァージョン0.2がリリースされる(予定)なので、その流れに乗り遅れないようにするために広めようと思います。
V言語ってなんだ
V言語は2019年に公開された非常にモダンなプログラミング言語です。
「高い安全性」と「速さ」の両立を設計思想にしているようです。
「速さ」はただ単純なプログラムの実行速度だけでなく、コンパイルもインストールも非常に高速でストレスフリーです。(Cを予めインストールしないといけないのでインストールが速いというのは半分真で半分偽のような気もしますが…)
また文法もGoに似ており、割ととっつきやすいと思います。
また、ヴァージョン0.3でC/C++からVへの変換機能の実装予定とありめが話せません。
残念ながら、AtCoderはV言語には対応していないようです。(今のところ)
V言語をインストール
V言語のインストールにはCコンパイラのインストールが必須であり、まずそこから行う必要があります。
windowsの場合は、mingw-w64またはVisual Studio等を入れてからのインストールになります。macやLinuxも同様にcコンパイラを入れます。
詳細はwindowsにCでコンパイラ , macやLinux を参照。
Cコンパイラを入れてからようやくV install battleがスタートするので(Cコンパイラが入っていないと)割と面倒なインストール作業です。
詳細はすべて ここ に書いてありますが一応。
また、Dockerが入っているならDocker上でも動かすことができるようです。
git clone https://github.com/vlang/v
cd v
docker build -t vlang .
docker run --rm -it vlang:latest
v
macにインストール
git clone https://github.com/vlang/v
cd v
make
を行った後、
sudo ./v symlink
シンボリックリンクを貼る作業を行うと終わりです。
windowsにインストール
大体macと同じですが…
git clone https://github.com/vlang/v
cd v
make.bat
makeでも動くようです。そして、vの入れたところ(例: C¥:Users¥{{ユーザー名}}¥v
)をシステム環境変数を追加して、pathを通してあげると環境構築完了です。
gitコマンドが使えない場合はGitを入れる必要があります.
V言語を動かそう
import os
fn main(){
program := os.input('')
memorysize := 65536
mut arr := []byte{ len: memorysize, default: 0 }
mut pointer := 0
mut i := 0
mut bra := 0
for i < program.len {
if program[i] == `+` {
if 0 <= pointer && pointer < memorysize{
arr[pointer] += 1
}else{
return
}
i += 1
}else if program[i] == `-` {
if 0 <= pointer && pointer < memorysize{
arr[pointer] -= 1
}else{
return
}
i += 1
}else if program[i] == `<` {
pointer -= 1
i = i + 1
}else if program[i] == `>` {
pointer += 1
i += 1
}else if program[i] == `,` {
inp := int(os.input('')[0])
arr[pointer] = inp
i += 1
}else if program[i] == `.` {
print(byte(arr[pointer]))
i += 1
}else if program[i] == `[` {
if arr[pointer] == 0{
bra = 1
for bra > 0{
i += 1
if i < program.len && program[i] == `[`{
bra += 1
}else if i < program.len && program[i] == `]`{
bra -= 1
}else if i>=program.len {
return
}
}
}
else{
i += 1
}
}else if program[i] == `]` {
if arr[pointer] != 0{
bra = 1
for bra > 0{
i -= 1
if i >= 0 && program[i] == `[`{
bra -= 1
}else if i >= 0 && program[i] == `]`{
bra += 1
}else if i < 0 {
return
}
}
}
else{
i += 1
}
}else{
i += 1
}
}
}
brainf***のインタプリタをサクッと書いたので動かしてみましょう。
oisu-
と表示するbfのプログラムは+[------->++<]>+.------.++++++++++.++.-[++>---<]>-.
なので、v run ファイル名.v
で実行させてプログラム入力すると…
動いた!やった!
V言語アップデート
v up
するだけです。
また、開発中でホットな言語なだけあって、v up
を回すと結構バージョンが上がります。
最後に
バージョン0.2が出る前に インストールして圧倒的成長!!
明日の記事は@mazrean です楽しみ〜