V Notities over het leren van talen


Inhoudsopgave :


Inleiding: vlang, de taal van de toekomst

vlang, voor front-end, back-end, big data, blockchain, kunstmatige intelligentie, doordringt elk aspect van de samenleving. Het verslaan van andere programmeertalen en het verenigen van de wereld in 2050. Het werd zelfs de lingua franca van de wereld, waardoor de mensheid de legendarische Toren van Babel kon herbouwen en de technologie met sprongen vooruitging ......

--- Geciteerd uit People's Daily 2050Open in een nieuw venster

Voorwoord

V语言Open in een nieuw venster , Vlang, de programmeertaal voor hackers.

roest en zig zijn goed, maar ze zijn te rigoureus en academisch.

V is meer een snelstarttaal zoals javascript, minder gestructureerd, snel aan de slag en natuurlijk snel.

Veel van de hype op de V-homepage is nog niet doorgedrongen (b.v. C tot V automatisch) en is door velen valse propaganda genoemdOpen in een nieuw venster, b.v. :

Het is de juiste strategie om eerst voor propaganda te gaan en het dan waar te maken; de mens is een gemeenschap van verbeelding.

De meeste mensen geloven omdat ze zien, en sommige mensen zien omdat ze geloven.

Net zoals het geloof in het communisme misschien in de minderheid is, maar er zal altijd een zeer klein aantal mensen zijn dat echt gelooft, en het vuur van een ster kan een prairiebrand doen ontbranden. Zonder de Communistische Partij zou er geen nieuw China zijn.

Computer wiskundigen vinden V misschien een beetje frivool, maar ik denk dat hackers de taal geweldig zullen vinden.

Denken is handelen, durven denken, durven proberen, en misschien is dat het verschil tussen kunst en wiskunde. Is een programmeertaal kunst of wiskunde? Dat is de eeuwige vraag.

Het beste aan V vind ik de vervaging van de grenzen tussen taalontwerp en programma-ontwikkeling.

Het compileert zichzelf, en in drie of vijf seconden, kan het opnieuw gecompileerd worden, en is de code duidelijk.

De auteur van V schrijft in de V-code directory structuurOpen in een nieuw venster:

Ik heb geprobeerd om de compiler en de vlib-code zo eenvoudig en leesbaar mogelijk te maken.

Een van de doelstellingen van V is om open te staan voor ontwikkelaars met verschillende niveaus van compiler ontwikkelervaring. De compiler hoeft geen zwarte doos vol magie te zijn die slechts een paar mensen kunnen begrijpen.

De V-compiler is modulair en kan door andere toepassingen worden gebruikt. Het is gelegen op cmd/v/ en vlib/v/.

Het belangrijkste en nuttigste commando bij het werken met de V compiler is v self. Het herbouwt de V compiler.

De structuur van de compiler is zeer eenvoudig en bestaat uit drie verschillende stappen.

Parsing/genereren van AST ( v.parser) => controleren van het type ( v.checker) => genereren van C/JavaScript/machinecode ( v.gen)

Men zou kunnen denken :

De lexer en parser niet meegerekend, is de kerncode slechts een paar duizend regels. Ik kan alleen maar zeggen dat de auteur goed aan marketing heeft gedaan en dat de officiële website er ook zo uitziet.Open in een nieuw venster

Maar ik denk dat deze eenvoud het beste is aan V.

Denk niet aan V als een traditionele lompe programmeertaal met een compiler die een obscuur, obscuur boek in de hemel is.

Zie het als een web front-end framework, zoals Vue, waar de toetredingsdrempel laag is en iedereen mee kan doen.

Als je een probleem hebt, verander je het gewoon.

Doe het zelf en je zult genoeg te eten hebben.

Een mooie nieuwe wereld is niet iets waar je maar op zit te wachten, het is iets wat werkende mensen met hun handen creëren.

v self Compileer het zelf

V kan zichzelf gemakkelijk compileren met v self. Op mijn 2015-versie van Apple's laptop duurt het 5,63 seconden om één keer te compileren.

Ik raad aan het als broncode te installeren.

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

Als je ideeën hebt, ga je gang en pas je de broncode van de compiler of standaardbibliotheek direct aan.

Gebruik dan v selfen compileer het zelf. Als je je vereisten hebt uitgewerkt, commit ze dan en voeg ze samen in de officiële broncode.

Vandaag heb ik net V geleerd en ik heb 3 merge requests gelanceerd (1Open in een nieuw venster, 2Open in een nieuw venster, 3Open in een nieuw venster ) met een suggestie voor taalverbetering: optionele expliciete verklaring van ondersteuning voor een interfaceOpen in een nieuw venster.

Ik spreek niet goed Engels, maar met de vertaler op DeepLOpen in een nieuw venster is het gemakkelijk om van het Chinees naar het Engels om te zetten voor een diepgaande communicatie met internationale vrienden.

V Schrijven van scripts

v init Na het initialiseren van het project, heb ik een compilatie script nodig.

V kan gebruikt worden om dit script te schrijven in plaats van bash.

Mijn compilatie script is als volgt.

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

Bewaak bestandswijzigingen en start de run automatisch opnieuw op

Het is mijn gewoonte om een script één keer te schrijven en uit te voeren, en te controleren op veranderingen en het automatisch opnieuw te starten is wat ik nodig heb.

v komt met v watch run xx.v om dit te doen.

Ik heb een script gemaakt om het gebruik van ./dev.sh als volgt te vergemakkelijken.

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

Voor het project sjabloon zie rmw-link/rmw-v-templateOpen in een nieuw venster

Updates:
Van: gcxfd