V Nyelvtanulási jegyzetek
Tartalomjegyzék :
Bevezetés: vlang, a jövő nyelve
vlang, front-end, back-end, big data, blockchain, mesterséges intelligencia, a társadalom minden területét áthatja. Más programozási nyelvek legyőzése és a világ egyesítése 2050-ben. Még a világ lingua francájává is vált, lehetővé téve az emberiség számára, hogy újjáépítse a legendás Bábel tornyát és ugrásszerűen fejlődjön a technológia terén ......
--- Idézi a People's Daily 2050
Előszó
V语言
, Vlang, a hackerek programozási nyelve.
A rozsda és a zig jó, de túl szigorúak és akadémikusak.
A V inkább olyan gyorsindító nyelv, mint a javascript, kevésbé strukturált, gyorsan elkezdhető és persze gyors.
A V honlapon található hype-ok nagy része még nem vált be (pl. C-ről V-re automatikusan), és sokan hamis propagandának nevezték, például :
Az a helyes stratégia, hogy először a propagandára törekszünk, és csak azután valósítjuk meg; az emberek a képzelet közösségei.
A legtöbb ember azért hisz, mert lát, és néhányan azért látnak, mert hisznek.
Ahogyan a kommunizmusban való hit is lehet, hogy kisebbségben van, de mindig lesz egy nagyon kis számú ember, aki valóban hisz, és egy csillag tüze préritüzet gyújt. A kommunista párt nélkül nem lenne új Kína.
A számítógépes matematikusok talán kissé komolytalannak találják a V-t, de szerintem a hackerek imádni fogják a nyelvet.
A gondolkodás cselekvés, merész gondolkodás, merész próbálkozás, és talán ez a különbség a művészet és a matematika között. Egy programozási nyelv művészet vagy matematika? Ez az örök kérdés.
Szerintem a legjobb dolog a V-ben az, hogy elmosódnak a határok a nyelvtervezés és a programfejlesztés között.
Magától lefordítja magát, és három-öt másodperc alatt újrafordítható, és a kód tiszta.
A V szerzője a V kód könyvtárszerkezetében írja :
Igyekeztem a fordítót és a vlib kódot a lehető legegyszerűbbé és olvashatóbbá tenni.
A V egyik célja, hogy nyitott legyen a különböző szintű fordítófejlesztői tapasztalattal rendelkező fejlesztők számára. A fordítónak nem kell egy varázslatokkal teli fekete doboznak lennie, amelyet csak néhány ember érthet meg.
A V fordító moduláris, és más alkalmazások is használhatják. Az alábbi címen található:
cmd/v/
ésvlib/v/
.A V fordítóval való munka során a legfontosabb és leghasznosabb parancs a
v self
. Újraépíti a V fordítót.A fordító felépítése nagyon egyszerű, és három különböző lépésből áll.
AST elemzése/generálása (
v.parser
) => típusellenőrzés (v.checker
) => C/JavaScript/gépi kód generálása (v.gen
)
Azt gondolhatnánk :
De szerintem ez az egyszerűség a legjobb dolog a V-ben.
Ne úgy gondolj a V-re, mint egy hagyományos, nehézkes programozási nyelvre, amelynek fordítója egy homályos, homályos könyv az égvilágon.
Gondolj rá úgy, mint egy webes front-end keretrendszerre, mint a Vue, ahol a belépési korlát alacsony, és mindenki részt vehet benne.
Ha problémája van, csak változtasson rajta.
Csináld magad, és lesz mit enned.
Egy szép új világ nem olyasmi, amire csak ülsz és vársz, hanem olyasmi, amit a dolgozó emberek a kezükkel teremtenek.
v self
Állítsd össze magad
A V könnyedén lefordítja magát a v self
segítségével. Az én 2015-ös verziójú Apple laptopomon 5,63 másodperc alatt egyszer lefordítja magát.
Javaslom, hogy forráskódként telepítsd.
git clone git@github.com:vlang/v.git
make
sudo ./v symlink
Ha van valami ötlete, menjen előre, és módosítsa közvetlenül a fordító vagy a szabványos könyvtár forráskódját.
Ezután használja a v self
címet, és fordítsa le saját maga. Miután kidolgoztad a követelményeidet, rögzítsd és egyesítsd őket a hivatalos forráskóddal.
Ma tanultam meg a V-t, és elindítottam 3 egyesítési kérelmet (1, 2, 3 ) egy nyelvfejlesztési javaslattal: egy interfész támogatásának opcionális explicit deklarálása.
Nem beszélek jól angolul, de a DeepL weboldalon található fordítóval könnyű kínairól angolra váltani, így a nemzetközi barátokkal való mélyreható kommunikációhoz könnyű a fordítás.
V Forgatókönyvek írása
v init
A projekt inicializálása után szükségem van egy fordítási szkriptre.
V használható a szkript megírására a bash helyett.
A fordítási szkriptem a következő.
#!/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)
A fájlváltozások figyelése és a futás automatikus újraindítása
Az a szokásom, hogy egyszer írok és futtatok egy szkriptet, és a változások figyelése és automatikus újraindítása az, amire szükségem van.
v a v watch run xx.v
oldalon található, hogy ezt megtehesse.
Létrehoztam egy szkriptet a ./dev.sh
használatának megkönnyítésére a következőképpen.
#!/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\""
A projektsablonért lásd rmw-link/rmw-v-template