V Anteckningar om språkinlärning


Innehållsförteckning :


Introduktion: vlang, framtidens språk

vlang, för front-end, back-end, stora data, blockchain, artificiell intelligens, genomsyrar alla aspekter av samhället. Slå andra programmeringsspråk och förena världen 2050. Det blev till och med världens lingua franca, vilket gjorde det möjligt för mänskligheten att återuppbygga det legendariska Babeltornet och göra tekniska framsteg med stormsteg. ......

--- Citerat i People's Daily 2050Öppna i ett nytt fönster

Förord

V语言Öppna i ett nytt fönster Vlang, programmeringsspråket för hackare.

rust och zig är bra, men de är för stela och kollegiala.

V är mer som ett snabbstartspråk som javascript, mindre strukturerat, snabbt att komma igång med och naturligtvis snabbt.

Mycket av den hype som finns kring V-hemsidan har ännu inte slagit igenom (t.ex. C till V automatiskt) och har av många kallats för falskÖppna i ett nytt fönster, t.ex:

Det är rätt strategi att först göra reklam och sedan inse att människan är en fantasifull gemenskap.

De flesta människor tror för att de ser, och vissa människor ser för att de tror.

På samma sätt som tron på kommunismen kanske är i minoritet, men det kommer alltid att finnas ett mycket litet antal människor som faktiskt tror på den, och elden från en stjärna kan starta en prärie. Utan kommunistpartiet skulle det inte finnas något nytt Kina.

Datamatematiker kanske tycker att V är lite lättsinnigt, men jag är säker på att hackare kommer att älska språket.

Att tänka är att agera, att våga tänka, att våga försöka, och kanske är det skillnaden mellan konst och matematik. Är ett programmeringsspråk konst eller matematik? Det är den eviga frågan.

Jag tror att den största fördelen med V är att gränserna mellan språkdesign och programutveckling suddas ut.

Den kompilerar sig själv, och på tre eller fem sekunder kan den kompileras på nytt och koden är tydlig.

Författaren till V skriver i V-kodens katalogstrukturÖppna i ett nytt fönster:

Jag har försökt göra kompilatorn och vlib-koden så enkel och lättläst som möjligt.

Ett av målen med V är att vara öppen för utvecklare med olika nivåer av erfarenhet av kompilatorutveckling. Kompilatorn behöver inte vara en svart låda full av magi som bara ett fåtal personer kan förstå.

V-kompilatorn är modulär och kan användas av andra program. Den finns på cmd/v/ och vlib/v/.

Det viktigaste och mest användbara kommandot när du arbetar med V-kompilatorn är v self. Den bygger om V-kompilatorn.

Kompilatorns struktur är mycket enkel och består av tre olika steg.

Parsing/generering av AST ( v.parser) => kontroll av typ ( v.checker) => generering av C/JavaScript/maskinkod ( v.gen)

En del kanske tänker :

Utan att räkna med lexer och parser är kärnkoden bara några tusen rader. Jag kan bara säga att författaren har gjort ett bra jobb med marknadsföringen och att webbplatsen ser ganska bra ut.Öppna i ett nytt fönster

Men jag tror att denna enkelhet är den största fördelen med V.

Tänk inte på V som ett traditionellt klumpigt programmeringsspråk med en kompilator som är en obskyr, obskyr bok i himlen.

Tänk på det som ett ramverk för webbfronter, som Vue, med en låg ingångsbarriär och något som alla kan delta i.

Om du har problem, byt bara ut dem.

Gör det själv och du kommer att bli välmående.

En vacker ny värld är inte något man bara sitter och väntar på, det är något som arbetande människor skapar med sina händer.

v self kompilerar sig själv

V kan enkelt kompilera sig självt med v self, på min bärbara Apple-dator från 2015 tar det 5,63 sekunder att kompilera en gång.

Jag rekommenderar att du installerar den som källkod.

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

Om du har några idéer kan du ändra källkoden för kompilatorn eller standardbiblioteket direkt.

Använd sedan v selfoch kompilera själv. När du har utarbetat dina krav, lägg in dem i den officiella källkoden och sammanfoga dem.

Idag har jag precis lärt mig V och har startat tre sammanslagningsbegäranden (1Öppna i ett nytt fönster, 2Öppna i ett nytt fönster, 3Öppna i ett nytt fönster ) med ett förslag till språkförbättring: valfri uttrycklig deklaration av stöd för ett gränssnittÖppna i ett nytt fönster.

Jag talar inte så bra engelska, men med översättaren på DeepLÖppna i ett nytt fönster är det lätt att kommunicera på djupet med internationella vänner om kinesiska till engelska.

V Skriva manuskript

Efter att ha initialiserat projektet på v init behöver jag ett kompileringsskript.

V kan skriva sådana skript istället för bash.

Mitt kompileringsskript är följande.

#!/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)

Övervaka filändringar och starta om körningen automatiskt

Jag har för vana att skriva och köra en gång, och att övervaka ändringar i filer och starta om dem automatiskt är något jag behöver.

v innehåller v watch run xx.v för att göra detta.

Jag har skapat ett skript för att underlätta användningen av ./dev.sh på följande sätt.

#!/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\""

För projektmallen se rmw-link/rmw-v-templateÖppna i ett nytt fönster.

Uppdateringar:
Från: gcxfd