V Hinweise zum Sprachenlernen


Inhaltsverzeichnis :


Einführung: vlang, die Sprache der Zukunft

vlang, für Front-End, Back-End, Big Data, Blockchain, künstliche Intelligenz, durchdringt jeden Aspekt der Gesellschaft. Andere Programmiersprachen besiegen und die Welt im Jahr 2050 vereinen. Sie wurde sogar zur Weltsprache und ermöglichte der Menschheit den Wiederaufbau des legendären Turms von Babel und einen sprunghaften technischen Fortschritt ......

--- Zitiert aus People's Daily 2050In einem neuen Fenster öffnen

Vorwort

V语言In einem neuen Fenster öffnen Vlang, die Programmiersprache für Hacker.

rust und zig sind gut, aber sie sind zu streng und akademisch.

V ist eher eine Schnellstartsprache wie Javascript, weniger strukturiert, schnell einsatzbereit und natürlich schnell.

Vieles, was auf der V-Homepage angepriesen wird, hat sich noch nicht durchgesetzt (z.B. C zu V automatisch) und wurde von vielen als falsche Propaganda bezeichnetIn einem neuen Fenster öffnen, z.B. :

Es ist die richtige Strategie, erst Propaganda zu machen und sie dann zu verwirklichen; die Menschen sind eine Gemeinschaft der Phantasie.

Die meisten Menschen glauben, weil sie sehen, und manche Menschen sehen, weil sie glauben.

Genauso wie der Glaube an den Kommunismus in der Minderheit sein mag, aber es wird immer eine sehr kleine Anzahl von Menschen geben, die wirklich daran glauben, und das Feuer eines Sterns kann einen Präriebrand auslösen. Ohne die Kommunistische Partei gäbe es kein neues China.

Computermathematiker mögen V ein wenig frivol finden, aber ich glaube, dass Hacker diese Sprache lieben werden.

Denken ist Handeln, sich trauen zu denken, sich trauen zu versuchen, und vielleicht ist das der Unterschied zwischen Kunst und Mathematik. Ist eine Programmiersprache Kunst oder Mathematik? Das ist die ewige Frage.

Das Beste an V ist meiner Meinung nach die Verwischung der Grenzen zwischen Sprachdesign und Programmentwicklung.

Er kompiliert sich selbst, und in drei oder fünf Sekunden kann er neu kompiliert werden, und der Code ist eindeutig.

Der Autor von V schreibt in der V-Code-VerzeichnisstrukturIn einem neuen Fenster öffnen:

Ich habe versucht, den Compiler und den vlib-Code so einfach und lesbar wie möglich zu gestalten.

Eines der Ziele von V ist die Offenheit für Entwickler mit unterschiedlicher Erfahrung in der Compilerentwicklung. Der Compiler muss keine Blackbox voller Magie sein, die nur wenige Menschen verstehen können.

Der V-Compiler ist modular aufgebaut und kann von anderen Anwendungen verwendet werden. Es befindet sich unter cmd/v/ und vlib/v/.

Der wichtigste und nützlichste Befehl bei der Arbeit mit dem V-Compiler ist v self. Er baut den V-Compiler neu auf.

Die Struktur des Compilers ist sehr einfach und besteht aus drei verschiedenen Schritten.

Parsing/Generierung von AST ( v.parser) => Überprüfung des Typs ( v.checker) => Generierung von C/JavaScript/Maschinencode ( v.gen)

Man könnte meinen:

Ohne Lexer und Parser umfasst der Kerncode nur einige tausend Zeilen. Ich kann nur sagen, dass der Autor gute Arbeit bei der Vermarktung geleistet hat, und die offizielle Website sieht dementsprechend aus.In einem neuen Fenster öffnen

Aber ich denke, dass diese Einfachheit das Beste an V ist.

Betrachten Sie V nicht als eine traditionelle, klobige Programmiersprache mit einem Compiler, der ein obskures Buch im Himmel ist.

Betrachten Sie es als ein Web-Frontend-Framework wie Vue, bei dem die Einstiegshürde niedrig ist und jeder mitmachen kann.

Wenn Sie ein Problem haben, ändern Sie es einfach.

Machen Sie es selbst und Sie haben genug zu essen.

Eine schöne neue Welt ist nichts, worauf man nur wartet, sondern etwas, das arbeitende Menschen mit ihren Händen schaffen.

v self Kompilieren Sie es selbst

V kann sich mit v self leicht selbst kompilieren. Auf meinem 2015er Apple-Laptop dauert es 5,63 Sekunden, um einmal zu kompilieren.

Ich empfehle, ihn als Quellcode zu installieren.

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

Wenn Sie eine Idee haben, können Sie den Quellcode des Compilers oder der Standardbibliothek direkt ändern.

Verwenden Sie dann v selfund kompilieren Sie es selbst. Sobald Sie Ihre Anforderungen ausgearbeitet haben, binden Sie sie in den offiziellen Quellcode ein.

Heute habe ich gerade V gelernt und ich habe 3 Merge Requests (1In einem neuen Fenster öffnen, 2In einem neuen Fenster öffnen, 3In einem neuen Fenster öffnen ) mit einem Vorschlag zur Verbesserung der Sprache gestartet: optionale explizite Erklärung der Unterstützung für eine SchnittstelleIn einem neuen Fenster öffnen.

Ich spreche nicht gut Englisch, aber mit dem Übersetzer auf DeepLIn einem neuen Fenster öffnen ist es einfach, vom Chinesischen ins Englische zu konvertieren, um mit internationalen Freunden ausführlich zu kommunizieren.

V Drehbücher schreiben

v init Nach der Initialisierung des Projekts benötige ich ein Kompilierungsskript.

V kann zum Schreiben dieses Skripts anstelle von bash verwendet werden.

Mein Kompilierungsskript sieht wie folgt aus.

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

Dateiänderungen überwachen und den Lauf automatisch neu starten

Ich habe die Angewohnheit, ein Skript einmal zu schreiben und auszuführen, und die Überwachung auf Änderungen und den automatischen Neustart ist das, was ich brauche.

v wird mit v watch run xx.v geliefert, um dies zu tun.

Ich habe ein Skript erstellt, das die Verwendung von ./dev.sh wie folgt erleichtert.

#!/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 die Projektvorlage siehe rmw-link/rmw-v-templateIn einem neuen Fenster öffnen

Aktualisierungen:
Von: gcxfd