Articulo de referencia

V (lenguaje de programación)

{{cite web |title=Creator of V |website=[[GitHub]] |url=https://github.com/medvednikov}} "},"released":{"wt":"{{Start date and age|2019|06|20|df=yes}} {{cite web |title=First pu...

V , también conocido como vlang , es un lenguaje de programación compilado , de tipado estático y en desarrollo, creado por Alexander Medvednikov a principios de 2019. [ 4 ] Se inspiró en Go y otros lenguajes de programación como Oberon , Swift y Rust . [ 5 ] [ 6 ] [ 7 ] Es software libre y de código abierto, publicado bajo la licencia MIT y actualmente en versión beta . [ 8 ]

Los objetivos de V incluyen facilidad de uso, legibilidad y mantenibilidad . [ 9 ] [ 10 ] [ 11 ]

Historia

El nuevo lenguaje se creó como resultado de la frustración con los lenguajes existentes que se usaban para proyectos personales. [ 12 ] Originalmente estaba destinado para uso personal, [ 12 ] pero después de ser mencionado públicamente y aumentar el interés, se decidió hacerlo público. [ 13 ] V se creó inicialmente para desarrollar un cliente de mensajería de escritorio llamado Volt. [ 6 ] En el lanzamiento público, el compilador estaba escrito en V y podía compilarse a sí mismo . [ 4 ] [ 12 ] Los objetivos de diseño clave en la creación de V fueron ser fácil de aprender y usar, mayor legibilidad, compilación rápida, mayor seguridad, desarrollo eficiente, usabilidad multiplataforma , interoperabilidad mejorada con C , mejor manejo de errores , características modernas y software más mantenible. [ 14 ] [ 15 ] [ 10 ] [ 16 ]

V es desarrollado, mantenido y publicado a través de GitHub [ 17 ] [ 6 ] por desarrolladores y colaboradores internacionales. [ 4 ] En 2025, V comenzó a ser clasificado en el índice TIOBE . [ 18 ]

Veasel es la mascota oficial del lenguaje de programación V [ 19 ].

Características

Seguridad

V tiene políticas para facilitar la seguridad de la memoria, la velocidad y el código seguro, [ 14 ] [ 20 ] [ 6 ] incluyendo varias características predeterminadas para una mayor seguridad del programa. [ 7 ] [ 14 ] [ 12 ] Emplea comprobación de límites , para protegerse contra el uso fuera de límites de variables . Se utilizan tipos de opción/resultado , donde el tipo de datos de opción ( ?) puede representarse por none(entre las opciones posibles) y el tipo de resultado ( !) puede manejar cualquier error devuelto. Para garantizar una mayor seguridad, la comprobación de errores es obligatoria. Por defecto, los siguientes son inmutables : variables, estructuras y argumentos de función . Esto incluye valores de cadena que son inmutables, por lo que los elementos no pueden ser mutados. Otras protecciones, que son el valor predeterminado del lenguaje, son: no usar valores indefinidos , sombra de variables , punteros nulos (a menos que estén marcados como inseguros) o variables globales (a menos que estén habilitadas mediante un indicador).

Actuación

V utiliza tipos de valor y búferes de cadena para reducir las asignaciones de memoria. [ 21 ] [ 22 ] [ 14 ] El lenguaje se puede compilar a C legible por humanos , [ 7 ] [ 4 ] y en ejecución y compilación, se considera rápido. [ 14 ] [ 15 ] [ 12 ]

Gestión de la memoria

V admite cuatro opciones de administración de memoria: [ 23 ] [ 6 ] [ 12 ] [ 4 ]

  1. Un recolector de basura . Esta es la opción predeterminada.
  2. Gestión manual de la memoria mediante la desactivación del recolector de basura.
  3. Autofree, que es experimental, sirve para invocar las llamadas necesarias para liberar automáticamente los objetos durante la compilación.
  4. Asignación de arena .

traductores de código fuente

V admite un compilador de código fuente a código fuente (transpilador) y puede traducir código C a V. [ 15 ] [ 24 ] [ 10 ]

También se están desarrollando traductores funcionales para Go, JavaScript y WebAssembly . [ 25 ] [ 26 ] [ 4 ]

Sintaxis

Algunos ejemplos representativos de la sintaxis V son:

Hola Mundo

El programa "Hola, mundo!" en V: [ 14 ] [ 27 ]

fn main () { println ( "Hola, mundo!" ) }

Variables

Las variables son inmutables por defecto y se definen usando :=y un valor. Use la mutpalabra reservada (palabra clave) para hacerlas mutables. Las variables mutables se pueden asignar usando =: [ 28 ] [ 27 ]

x : = 1 mut y : = 2 y = 3

No está permitido volver a declarar una variable, ya sea en un ámbito interno o en el mismo ámbito: [ 28 ] [ 27 ]

x : = 1 { x : = 3 // error: redefinición de x } x : = 2 // error: redefinición de x

Estructuras

Ejemplo de estructura: [ 9 ] [ 7 ] [ 27 ]

struct Foo { número int nombre cadena puntuación f32 }// Los campos de la estructura se pueden inicializar por nombre var1 : = Foo { number : 21 name : "baz" score : 2.5 }// o por posición var2 : = Foo { 50 , "taz" , 3.14 }

Estructuras de montón

Por defecto, las estructuras se asignan mediante asignación de memoria basada en la pila (en la pila). Cuando las estructuras se referencian mediante el prefijo &o tienen el [heap]atributo, se asignan mediante asignación de memoria basada en el montón (en el montón) en su lugar: [ 4 ] [ 27 ]

struct Foo { número int }@ [ montón ] struct Baz { número f32 }// Las estructuras a las que se hace referencia se asignan en el montón var1 : = & Foo { 2 }// Baz siempre se asigna en el montón debido a su atributo [heap] var2 : = Baz { 4.5 }

Métodos

En V, los métodos son funciones definidas con un argumento receptor . El receptor aparece en su propia lista de argumentos, entre la fnpalabra clave y el nombre del método. Los métodos deben estar en el mismo módulo que el tipo de receptor.

El método enrolled_status (abajo) tiene un receptor de tipo Clientllamado x. La convención es no usar nombres de receptor como self o this, sino preferiblemente un nombre corto. Por ejemplo: [ 9 ] [ 10 ] [ 27 ]

struct Cliente { inscrito bool }fn ( x Cliente ) estado_inscrito () bool { return x . inscrito }cliente_1 : = Cliente { verdadero } cliente_2 : = Cliente { falso }println ( cliente_1.estado_inscrito ()) // "verdadero" println ( cliente_2.estado_inscrito ( ) ) // "falso "

Manejo de errores

Los tipos de resultado pueden representar un error devuelto por una función. Los tipos de resultado se declaran anteponiendo !:!Type

Los tipos opcionales pueden representar none. Los tipos opcionales anteponen ?al nombre del tipo: ?Type. [ 9 ] [ 7 ] [ 23 ] [ 27 ]

fn algo ( t cadena ) ! cadena { si t == "foo" { devolver "foo" } devolver error ( "inválido" ) }x : = algo ( "foo" ) o { "default" } // x será "foo" y : = algo ( "baz" ) o { "default" } // y será "default" z : = algo ( "baz" ) o { panic ( "{err}" ) } // z saldrá con un errorprintln ( x ) println ( y )

Véase también

Referencias

  1. "Creador de V" . GitHub .
  2. "Primera versión pública" . GitHub . 20 de junio de 2019.
  3. "Versión 0.5.2" . 12 de julio de 2026. Consultado el 13 de julio de 2026 .
  4. 1 2 3 4 5 6 7 Rao 2021 .
  5. Lewkowicz 2019 .
  6. 1 2 3 4 5 James 2019 .
  7. 1 2 3 4 5 Umoren 2021 .
  8. "El lenguaje de programación V" . vlang.io . Consultado el 4 de noviembre de 2023 .
  9. 1 2 3 4 Knott 2019 .
  10. ^ Nasufi , Erdet . "Una introducción a V: la vlang" . Conferencia Debian ( DebConf ) . Consultado el 24 de julio de 2022 .
  11. Sharma 2024 .
  12. ^ Chakraborty y Haldar 2023 .
  13. "Una breve presentación de las características de V en IBM" . YouTube . Consultado el 6 de marzo de 2023 .
  14. 1 2 3 4 5 6 Galuh, Rosa (8 de agosto de 2022). "Una breve introducción al lenguaje V" . MakeUseOf (MUO) . Valnet . Recuperado el 8 de agosto de 2022 .
  15. 1 2 3 Choudhury, Ambika (3 de julio de 2019). "Conoce V, el nuevo lenguaje de programación de tipado estático inspirado en Go y Rust" . Analytics India Magazine (AIM) . Archivado del original el 26 de enero de 2025.
  16. "¿Con sus objetivos de simplicidad, velocidad y mantenibilidad, podrá el lenguaje V convertirse en un rival de Go?!" . news.mynavi.jp (en japonés). Mynavi Corporation . 10 de febrero de 2025 . Consultado el 16 de junio de 2026 .
  17. "Lenguajes de programación de GitHub (detalles del repositorio)" .
  18. "Índice TIOBE" . tiobe . TIOBE . Archivado del original el 11 de abril de 2025. Recuperado el 11 de abril de 2025 .
  19. "Mascota oficial de V" . GitHub . Consultado el 8 de noviembre de 2023 .
  20. Abbas, Hazem (5 de agosto de 2024). "Introducción al lenguaje V y al desarrollo de aplicaciones de escritorio" . medevel . Consultado el 3 de enero de 2025 .
  21. Rao 2021 , pág. 7.
  22. "El lenguaje de programación V ahora es de código abierto" . Packt Hub . Packt Publishing . 24 de junio de 2019. Consultado el 24 de junio de 2019 .
  23. 1 2 Tsoukalos 2022 .
  24. Schlothauer 2019 .
  25. "Convertir Go a V con go2v" . Zenn (en japonés). 26 de enero de 2023. Consultado el 26 de enero de 2023 .
  26. "El backend del compilador V WebAssembly" . lm . 26 de febrero de 2023. Archivado del original el 8 de julio de 2024.
  27. 1 2 3 4 5 6 7 "Documentación V" . docs.vlang.io . Consultado el 25 de agosto de 2025 . Este artículo incorpora texto de esta obra de contenido libre . Licenciado bajo la Licencia MIT ( declaración de licencia/permiso ).
  28. 1 2 Rao 2021 , págs. 28–40.

Bibliografía

  • Chakraborty, Soubhik; Haldar, Subhomoy (6 de diciembre de 2023). "Aleatoriedad revisada utilizando el lenguaje de programación V" . Editores de ciencia nueva . doi : 10.52305/CVCN5241 . ISBN 979-8891133280. S2CID 265170755 . 
  • James, Ben (23 de julio de 2019). "El lenguaje de programación V: ¿vano o virtuoso?" . Hackaday . Hackaday . Recuperado el 16 de junio de 2026 .
  • Knott, Simon (27 de junio de 2019). "Una introducción a V" . Recuperado el 16 de junio de 2026 .
  • Lewkowicz, Jakub (25 de junio de 2019). "Resumen de noticias de SD Times: el lenguaje V ahora es de código abierto" . SD Times . SD Times . ISSN 1528-1965 . Recuperado el 16 de junio de 2026 . 
  • Rao, Navule Pavan Kumar (10 de diciembre de 2021). Introducción a la programación en V. Packt Publishing . ISBN 978-1839213434OCLC 1290492862 
  • Schlothauer, Sarah. "Los cinco repositorios más populares de GitHub en junio de 2019" . JAXenter . Archivado del original el 17 de febrero de 2020.
  • Sharma, Gaurav (19 de marzo de 2024). "Explorando los lenguajes de programación más recientes para desarrolladores en 2024" . TechGig . TechGig.com .
  • Tsoukalos, Mihalis (mayo de 2022). "Descubre el lenguaje V". Revista Linux Format (288). Linux Format . ISSN 1470-4234 . 
  • Umoren, Samuel (5 de abril de 2021). "Construyendo un servidor web usando Vlang" . Sección . Archivado del original el 13 de marzo de 2023.{{cite web}}: CS1 mantenimiento: referencia duplica el valor predeterminado ( enlace )

Lecturas adicionales

  • El lenguaje de programación V básico (en japonés). Laboratorio independiente. 20 de junio de 2020. ASIN B08BKJDRFR . 
  • Lyons, Dakota "Kai" (13 de abril de 2022). Introducción a la programación en V. Publicado de forma independiente. ISBN 979-8801499963.
  • Sanders, Rafael (18 de septiembre de 2025). Lenguaje V para principiantes: Cómo programar con V para obtener software rápido, sencillo y fácil de mantener . Lincoln Publishers. ISBN 979-8263861681.
  • Sanders, Rafael (18 de septiembre de 2025). Guía intermedia del lenguaje V: Cómo crear software fiable con las funciones sencillas pero potentes de V. Lincoln Publishers. ISBN 979-8263865429.
  • Trex, Nova (24 de diciembre de 2024). Programación V: Creación de sistemas de software robustos y eficientes . Wang Press. ISBN 979-8304813778.
  • Vinícius Silva; Heitor Leite; Fernando Pereira (19 de diciembre de 2025). "Generación de puntos de referencia en varios idiomas a través de L-Systems". arXiv : 2512.17616v1 [ cs.SE ].
  • Sitio web oficial
  • Vlang en GitHub
  • Documentación