V 言語学習ノート


目次 :

[[toc]]です。


はじめに:vlang、未来の言語

フロントエンド、バックエンド、ビッグデータ、ブロックチェーン、人工知能など、社会のあらゆるシーンに浸透しているvlang(ブラング)。他のプログラミング言語を打ち負かし、2050年に世界を統一する。世界の共通語になり、人類は伝説の「バベルの塔」を再建し、飛躍的な技術の進歩を遂げることができたのだ・・・・・・。

--- 人民日報2050号より引用新しいウィンドウで開く

序文

V语言新しいウィンドウで開く , ハッカーのためのプログラミング言語「Vlang」。

rustやzigは良いが、厳しすぎるし、アカデミックすぎる。

Vはどちらかというと、javascriptのようなクイックスタート言語に近く、あまり構造化されておらず、すぐに始められ、もちろんスピードも速いです。

Vのホームページに書かれている誇大広告の多くはまだ定着しておらず(CからVに自動的に移行するなど)、多くの人から偽のプロパガンダと呼ばれて新しいウィンドウで開くいる、例えば:

まずプロパガンダに走り、それを実現するのが正しい戦略であり、人間は想像力の共同体である。

多くの人は見るから信じるのであって、信じるから見るという人もいる。

共産主義を信じる人は少数派かもしれないが、本当に信じている人は必ずいるし、星の火は草原の火を起こすことができるのと同じである。共産党がなければ、新しい中国もない。

コンピュータ数学者はVを少し軽薄に感じるかもしれませんが、ハッカーはこの言語を好きになると思います。

考えることは行動すること、あえて考えること、あえてやってみること、それがアートと数学の違いかもしれませんね。プログラミング言語は芸術か数学か?それが永遠の課題です。

私が考えるVの一番の特徴は、言語設計とプログラム開発の境界を曖昧にしたことだと思います。

自分でコンパイルして、3秒か5秒で再コンパイルすれば、コードはクリアになります。

Vの作者は、 Vコードのディレクトリ構造で新しいウィンドウで開く 書き込みを行う:

コンパイラとvlibのコードは、できるだけシンプルで読みやすいものになるように心がけました。

Vの目標のひとつは、さまざまなレベルのコンパイラ開発者に開かれたものであることです。コンパイラは、一部の人にしか理解できない魔法の詰まったブラックボックスである必要はないのです。

Vコンパイラはモジュール化されており、他のアプリケーションで使用することができます。場所は、 cmd/v/vlib/v/

Vコンパイラで作業するときに最も重要で便利なコマンドは、 v selfです。Vコンパイラをリビルドします。

コンパイラの構造は非常にシンプルで、3つのステップで構成されています。

ASTのパース/生成 (v.parser) => 型のチェック (v.checker) => C/JavaScript/機械語コードの生成 (v.gen)

と思うかもしれません。

レキサーやパーサーを除けば、コアコードは数千行に過ぎません。作者がマーケティングを頑張ったとしか言いようがないし、公式サイトもかなりそれっぽい。新しいウィンドウで開く

でも、このシンプルさがVのいいところだと思うんです。

Vを、コンパイラを持つ伝統的なポンコツプログラミング言語で、天下無双の無名本だと思わないでください。

Vueのように、参入障壁が低く、誰もが参加できるWebフロントエンドフレームワークとお考えください。

問題があれば、変えればいいだけです。

自分でやれば、たくさん食べられますよ。

美しい新世界は、ただ座って待っているものではなく、働く人たちが手を動かして創り出すものです。

v self 自分でコンパイルする

Vは v self を使って簡単に自分でコンパイルすることができます。私の2015年版のAppleのノートパソコンでは、1回のコンパイルに5.63秒かかっています。

ソースコードとしてインストールすることをお勧めします。

git clone git@github.com:vlang/v.git
make
sudo ./v symlink

何か思いついたことがあれば、コンパイラや標準ライブラリのソースコードを直接改変してください。

その後、 v self、自分でコンパイルしてください。要件がまとまったら、コミットして正式なソースコードにマージしてください。

今日、私はVを学んだばかりで、言語改善の提案として3つのマージリクエスト(1新しいウィンドウで開く,2新しいウィンドウで開く, 3新しいウィンドウで開く)を立ち上げました: インターフェースに対するサポートのオプションの明示的宣言新しいウィンドウで開くです。

私は英語が苦手なのですが、 DeepLの新しいウィンドウで開く 翻訳機を使えば、中国語から英語に簡単に変換できるので、海外の友人と深いコミュニケーションをとることができます。

V スクリプトの作成

v init プロジェクトを初期化した後、コンパイルスクリプトが必要です。

Vはbashの代わりにこのスクリプトを書くために使うことができます。

私のコンパイルスクリプトは以下の通りです。

#!/usr/bin/env -S v run

import v.vmod

fn sh(cmd string){
  println("❯ $cmd")
  print(execute_or_exit(cmd).output)
}

vm := vmod.decode( @VMOD_FILE ) or { panic(err) }

name := vm.name

sh('v -autofree -prod ${name}.v')

suffix := $if windows { '.exe' } $else { '' }
src := name + suffix
bin := join_path_single('bin',src)
mkdir('bin') or {}
mv(src, bin)?

println('  '+bin)

ファイルの変更を監視し、自動的にランを再開

スクリプトを一度書いて実行し、変更を監視して自動的に再起動させるのが私の習慣です。

vには、これを実現するために、 v watch run xx.v

./dev.sh を使いやすくするために、以下のようなスクリプトを作成しました。

#!/usr/bin/env bash

DIR=$(dirname $(realpath "$0"))
cd $DIR
set -ex

NAME=$(cat v.mod|grep name|awk -F\' '{print $2}')
SH="v watch run $NAME.v"

exec $SH \
  -i '.git' \
  -i 'bin' \
  -c -s --before "printf \"\e[90m❯ ${SH}\e[0m\n\""

プロジェクトのテンプレートは、 rmw-link/rmw-v-templateを新しいウィンドウで開く参照してください。

アップデート:
より: gcxfd