SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Guía de Vala

             Versión 0.1




                  Autor
          Varun Madiath
          Agosto 8, 2010




              Traductor
       Juan Matías Olmos
            Agosto, 2011
Licencia del documento original

Copyright ©2010 Varun Madiath
Permission is granted to copy, distribute, and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.1 or any later version
published by the Free Software Foundation; with Invariant Sections being
“Preface”, with no Front-Cover Texts, and with no Back-Cover Texts.




                                                       Licencia de la traducción




Esta obra está bajo una licencia Creative Commons Atribución 2.5 Argentina
Usted es libre de:
      Compartir – copiar, distribuir, ejecutar y comunicar públicamente la obra
      hacer obras derivadas
      hacer un uso comercial de esta obra
Bajo las condiciones siguientes:
      Atribución – Debe reconocer los créditos de la obra de manera
      especificada por el autor o el licenciante (pero no de una manera que
      sugiera que tiene su apoyo o que apoyaron el uso que hace de su obra).
      […]
      Aviso – Al reutilizar o distribuir la obra, tiene que dejar en claro los
      términos de la licencia de esta obra. La mejor forma de hacerlo es enlazar
      a la siguiente página (donde puede acceder a la versión completa de la
      licencia):
      http://creativecommons.org/licenses/by/2.5/ar/
Contenido
Capítulo 1............................................................................................... 4

   Introducción..............................................................................................................4

Capítulo 2............................................................................................... 6

   Lo básico de Vala......................................................................................................6

       Compilar el código...............................................................................................6

       Comprender el código..........................................................................................7

       Programando con Variables.................................................................................8

       Un recorrido por la gramática básica de Vala....................................................11

       Espacios en blanco.............................................................................................12

       Comentarios.......................................................................................................12

       Identificadores...................................................................................................12

       Palabras clave....................................................................................................13

       Literales.............................................................................................................13

       Separadores.......................................................................................................14
Capítulo 1



Introducción

C es un lenguaje de programación de bajo nivel que puede ser ejecutado en una
variedad de plataformas. Un lenguaje de bajo nivel es el que expone al programador
al hardware donde se ejecutará el código. C viene con las librerías C estándar, las que
en teoría permite a los programadores escribir código que puede ser compilado en
diferentes sistemas operativos, y diferentes arquitecturas de procesador, para crear
un archivo ejecutable que pueda ejecutarse en el sistema. Sin embargo, en la
práctica, la librería estándar de C no es realmente portable a los diferentes sistemas
operativos, y para solucionar esto se desarrolló la librería GLib.


GLib es una librería escrita en C diseñada para ser multiplataforma, y se usa como
alternativa a la librería estándar. Además de proveer funcionalidades como imprimir
texto en la pantalla y lectura de archivos, también provee un tipo de sistema que
permite la implementación de clases, interfaces y objetos en C.


Vala es un lenguaje de programación diseñado para los desarrolladores GLib. El uso
de Vala provee un montón de características presentes en otros lenguajes de
programación de alto nivel pero de una forma que es simple y fácil de entender. Esto
lo hace sin incorporar ninguna máquina virtual de ningún tipo, y por ello el código
escrito puede ser compilado muy eficientemente.


Este lenguaje funciona convirtiendo el código Vala en código fuente C y archivos
cabecera. Vala usa el sistema de tipos GObject de GLib para obtener las
características de orientación a objetos. La sintaxis de Vala es similar a C# o Java, pero
modificada para trabajar con el sistema de tipos GObject.


Algunas de las características que soporta Vala son:
   •   Interfaces

   •   Propiedades

   •   Señales

   •   Bucle foreach

   •   Expresiones Lambda
•   Inferencia de tipo para variables locales

   •   Genéricos

   •   Tipo Non-null (no nulos)

   •   Gestor de memoria asistido

   •   Control de excepciones


Vala no incluye ninguna característica que no se puede realizar usando C con GLib,
sin embargo hace el uso de estas mismas características de forma más simple. Una
de las criticas más comunes de GLib es que resulta muy verboso y tiene un código
desprolijo. Usando Vala, los programadores pueden evitarse escribir todo ese código
verboso que requiere GLib.


Este lenguaje está diseñado para permitir el uso de librerías C fácilmente, en especial
las librerías basadas en GObject. Todo lo que se necesita para usar una librería escrita
en C es un archivo describiendo la API, estos archivos suelen usar extensión .vapi.
Ésta es una diferencia con respecto a otros lenguajes que usan librerías en C, los
cuales requieren un código especial, llamado binding, que une la funcionalidad del
lenguaje con la librería en C. El problema con eso es que si una librería cambia, el
binding tendría que ser reescrito antes de seguir siendo usado con la librería, dando
como resultado que el binding esté un poco detrás de la implementación oficial.


Los programas escritos en C también pueden usar librerías de Vala sin ningún
esfuerzo extra. El compilador de vala genera automáticamente los archivos cabecera
requeridos, lo cual necesitan los programas en C para usar la librería. También es
posible escribir bindings para Vala desde otros lenguajes como Python y Mono.


Se encuentra más información sobre Vala en:
http://live.gnome.org/Vala/
Capítulo 2



Lo básico de Vala

Comencemos a escribir programas usando Vala. El siguiente es un programa simple
que muestra en pantalla las palabras Hola Mundo. Ingresa este código en tu editor de
texto favorito y guárdalo en un archivo llamado holamundo.vala. Vala es un lenguaje
que distingue mayúsculas de minúsculas, así que asegúrate de ingresar el código
correctamente.


 /*
  * holamundo.vala
  *
  * Este es un programa en Vala simple.
  * Se muestra en pantalla las palabras Hola Mundo
  */
 void main(string[] args) {
     // La siguiente linea muestra en pantalla las palabras “Hola Mundo”.
     stdout.printf(“Hola Mundon”);
 }



Compilar el código


Para compilar este programa, abre una terminal, ingresa al directorio donde
guardaste tu archivo y escribe valac seguido del código fuente, como se muestra aquí.


       $ valac holamundo.vala


Si no hubieron errores parecerá que no ocurrió nada. Sin embargo el compilador
habrá creado un nuevo archivo ejecutable llamado holamundo. Puedes ejecutar este
programa escribiendo su nombre precedido por ./ como se muestra abajo.


       $ ./holamundo


Verás la siguiente salida.
       Hola Mundo
Comprender el código


A pesar de su longitud, el programa «hola mundo» introduce varias de las
características y conceptos usados en Vala. El programa inicia con las siguientes
líneas:


 /*
  * holamundo.vala
  *
  * Este es un programa en Vala simple.
  * Se muestra en pantalla las palabras Hola Mundo
  */




Esto es un comentario, un texto encontrado en el código fuente pero que el
compilador ignora. Generalmente, un comentario se usa para describir la operación
del programa, la razón detrás de algún código o una explicación del funcionamiento
de una sección del mismo.


Este lenguaje usa dos tipos de comentarios. El comentario visto arriba se llama
comentario multilínea. Se llama de esa forma porque ocupa varias líneas del código
fuente. Este tipo de comentario inicia con los caracteres /* y finaliza con */, con todo
lo que haya entre estos caracteres componen el comentario.


 void main(string[] args) {




Esta línea define el método main(), el mismo contiene el código que se ejecuta
cuando inicia el programa. Se entiende como un punto de partida para la ejecución
del programa. Todas las aplicaciones en Vala (así como C, C++ y C# entre otros)
inician ejecutando este método.


Cuando un programa es ejecutado por el sistema operativo, el mismo corre el código
del método principal, y cuando el programa a terminado, puede devolver o no un
número al sistema operativo. Este número puede ser usado para informar al sistema
operativo si el programa termino sin problemas o si hubo alguno durante la
ejecución. La palabra clave void de esta línea simplemente le dice al compilador que
main() no retornará ningún valor. Todos los métodos pueden retornar un valor, como
se verá más adelante.
Vala es un lenguaje que distingue mayúsculas de minúsculas, por lo que void no
puede ser escrito como VOID o Void. El método main() debe ser escrito exactamente
como es, cualquier cambio en la capitalización producirá un archivo que no se
ejecutará. Esto es porque el compilador no vería un método llamado main(), y por
ello el compilador asumirá que el código será usado en otro programa.


El último carácter de esta línea es la llave {. Esto señala el inicio del cuerpo de main().
Todo el código que comprenda un método estará entre una llave abierta y una llave
cerrada.


Otro punto: main() simplemente es un punto de partida del programa. Un programa
complejo tendrá docenas de clases, solo una de las cuales tendrá que ser el método
principal main() para que las cosas puedan arrancar.


     // La siguiente linea muestra en pantalla las palabras “Hola Mundo”.




Esta línea es un comentario de línea simple, el otro tipo de comentario soportado en
Vala. Un comentario de una sola línea comienza con los caracteres // y termina al
final de la línea. Generalmente se usan para agregar explicaciones cortas en una línea
de código en particular, mientras que los comentarios de múltiples líneas son usados
para explicaciones más largas.


     stdout.printf(“Hola Mundon”);




Esta línea muestra en pantalla la cadena de caracteres “Hola Mundo”, seguida del
carácter de salto de línea, que mueve la salida a la línea siguiente. El método printf()
mostrado aquí es parte de GLib, una librería de la que Vala depende ampliamente.
Este método mostrará en pantalla todo el texto que está entre paréntesis. La
secuencia de caracteres especial n representa el salto de línea.


Observa que la sentencia printf() termina con un punto y coma. Todas las sentencias
en Vala terminan de esta forma. En este programa, la única sentencia es printf(), las
otras líneas son comentarios, declaración de métodos, o líneas con solo caracteres
como { o } llamados también descriptores de alcance.



Programando con Variables
Aunque el programa escrito arriba instruye a la computadora, no es muy útil ya que
todo el programa es estático. El programa produciría la misma salida cada ejecución,
y no hacía ningún cálculo. El concepto de variable es fundamental para hacer
programas dinámicos. Una variable es solo el nombre de una cierta dirección de
memoria, puede pensarse como una caja donde guardas datos. El dato dentro de una
variable puede ser modificado durante la ejecución del programa, lo que le permite
volverse dinámico.


El siguiente programa introduce algunos tipos básicos de variables que están
disponibles en Vala.



/*
 * ejemplo_variable.vala
 *
 * Este programa muestra como usar variables, introduce algunos tipos de
 * ellas que están disponibles en Vala.
 */
void main(string[] args) {
    // Declaracion de variables
    bool verdadero = false;
    unichar letra = ‘v’;
    int num = 10;
    double punto_decimal = 15.33;
    string nombre = “Alejandro Magno”;

    // Imprimiendo los valores de las variables
    stdout.printf(verdadero.to_string() + “n”);
    stdout.printf(letra.to_estring() + “n”);
    stdout.printf(num.to_string() + “n”);
    stdout.printf(punto_decimal.to_string() + “n”);
    stdout.printf(nombre + “n”);

    //Modificando una variable
    num = num * 2;

    // Imprimiendo la variable modificada
    stdout.printf(num.to_string() + “n”);
}




Puedes compilar y ejecutar el programa escribiendo.


       $ valac ejemplo_variable.vala
       $ ./ejemplo_variable
La salida se verá como la siguiente.


       false
       v
       10
       15.33
       Alejandro Magno
       20


Vamos a disecar este código para comprender como se generó esta salida.



     bool verdadero = false;
     unichar letra = ‘v’;
     int num = 10;
     double punto_decimal = 15.33;
     string nombre = “Alejandro Magno”;




Estas líneas crean variables y les asigna valores. Se crearon diferentes tipos de
variables aquí. La variable bool representa un booleano, una variable que puede
tener uno de dos posibles valores, true o false (serían verdadero o falso en español).
La variable unichar representa un carácter de texto, por lo que casi cualquier carácter
puede ser guardado en esta variable (si, esto incluye caracteres de escrituras
Japonesas e Índicas). El carácter es encerrado con comillas simples para indicar que
es un carácter y no un comando para la computadora. La variable int representa un
entero (un número que no tiene punto decimal). La variable double representa un
número de punto flotante (una variable que puede o no tener punto decimal) y
finalmente una variable string que representa una serie (o cadena) de caracteres. Una
cadena es encerrada con comillas dobles para indicar que el texto es una cadena.


Las variables de asignan con el operador =, con el nombre y tipo del operador del
lado izquierdo y el valor del lado derecho. La forma general de una declaración de
variable puede ser escrita como (el texto encerrado por corchetes es opcional).


       type name [= value]


     stdout.printf(verdadero.to_string() + “n”);
     stdout.printf(letra.to_estring() + “n”);
     stdout.printf(num.to_string() + “n”);
     stdout.printf(punto_decimal.to_string() + “n”);
     stdout.printf(nombre + “n”);
Estas líneas imprimen los valores de las variables en la pantalla. La impresión en la
pantalla se hace usando el mismo método printf() que fue usado en el primer
ejemplo. Notarás que en este caso, a la mayoría de las variables se le añade
.to_string(). Esto se debe a que el método printf() debe dar una cadena para imprimir
en pantalla. Por la misma razón, la variable string no lleva .to_string().


       num = num * 2;


Esta línea modifica el valor de num asignándole un valor nuevo. El valor nuevo es
dado por la expresión num * 2. Es importante no ver esto como una expresión
algebraica, que no tendría sentido, sino como una asignación. Hay otro operador
para igualdad, como veremos luego. Aquí, el valor de num es multiplicado por dos, y
el resultado es almacenado en num.


       stdout.printf(num.to_string() + “n”);


Esta línea imprime el valor de num, como puedes ver en la salida, el valor a cambiado
desde de la asignación de arriba.



Un recorrido por la gramática básica de Vala


Ahora hemos escrito dos programas pequeños en Vala, pero antes de seguir sería
bueno mirar los elementos que componen el programa. Los diferentes elementos
que componen un programa en Vala son:


   •   Espacios en blanco

   •   Comentarios

   •   Identificadores

   •   Palabras Clave

   •   Literales

   •   Operadores

   •   Separadores
Espacios en blanco


Vala es un lenguaje de formato libre. Eso significa que el código no necesita ser
formateado de alguna manera en particular. Los programas que hemos escrito hasta
aquí podrían ser condensados en una simple línea (con la excepción del comentario
de línea simple). El único requisito es que cada símbolo esté separado por al menos
un carácter de espacio, salvo que ya esté separado por algún separador u operador.
Los separadores y operadores se verán más adelante también.



Comentarios


Ya hemos introducido los dos tipos de comentarios que soporta Vala, el comentario
de una línea y el de múltiples líneas.


Es importante observar que la secuencia de caracteres */ no puede aparecer en tu
comentario, ya que el compilador entenderá que se trata del final del comentario.
Esto implica que un comentario en línea no puede ser colocado dentro de otro. En
cuanto comiences a escribir programas más largos y complicados, desearás comentar
secciones del código para tratar de seguir los rastros de posibles errores. En tales
casos utiliza comentarios de líneas múltiples, esto no se recomienda si ya tienes
comentarios de múltiples líneas en esa sección de código. Se recomienda usar un
editor para anteponer // en cada línea de ese bloque para evitar cualquier problema.
La mayoría de los editores traen una característica para realizar esto.



Identificadores


Los identificadores se usan para nombrar variables y métodos. En los programas que
hemos escrito hasta ahora siempre escribimos el métodos main(), en este caso, el
identificador es main. Todos los nombres de las variables del segundo ejemplo son
identificadores. Otros identificadores menos obvios son stdout y printf, separados
por un separador (el punto). Los identificadores de Vala solo pueden contener los
caracteres A-Z, a-z, 0-9 o el guión bajo, además el primer carácter no puede ser un
número.
Palabras clave


Vala tiene un conjunto de palabras que no pueden ser usadas como identificadores.
Estas palabras son reservadas para expresar información sobre el programa al
compilador.


La lista de palabras reservadas se muestra en la siguiente tabla:


 if               else       switch        case      default     do          while
 for              foreach    in            break     continue    return      try
 catch            finally    throw         lock      class       interface   struct
 enum             delegate   errordomain   const     weak        unowned     dynamic
 abstract         virtual    override      signal    extern      static      async
 inline           new        public        prívate   protected   internal    out
 ref              throws     requires      ensures   namespace   using       as
 is               in         owned         delete    sizeof      typeof      this
 base             null       true          false     get         set         construct
 default          value      construct     void      var         yield       global




Literales


Los literales son construcciones que representan valores en el programa. Un ejemplo
de una constante sería el valor true, para un booleano, o Varun para una cadena.
Aquí tenemos algunos ejemplos más:


      •   1824

      •   1858.58

      •   true

      •   false

      •   null

      •   “Alejandro Magno”


Los primeros literales representan un entero y un valor de punto flotante, el tercero y
cuarto son constantes booleanas, el quinto es una constante nula y el último
representa una cadena. Un literal puede ser sustituido por una variable en cualquier
lugar donde una variable de ese tipo sea permitida. Si lees la lista completa de las
palabras reservadas, verás que los literales true, false y null también son palabras
reservadas.



Separadores


 Símbolo   Nombre          Objetivo
    ()     Paréntesis      Se usan para contener la lista de parámetros en la
                           definición de un método y su invocación. También se
                           usan para definir la prioridad en expresiones que los
                           contenga. Finalmente, se usan para contener tipos de
                           dato realizando lo que se llama casting de tipo estático.
    {}     Llaves          Usadas para contener los valores de los arreglos
                           inicializados automáticamente. También se usan para
                           definir un bloque de código, para clases, métodos y
                           alcances locales.
    []     Corchetes       Uso para declarar tipo de arreglos. También se usan para
                           referenciar valores en arreglos.
     ;     Punto y coma    Termina una sentencia.
     ,     Coma            Separa identificadores consecutivos en una declaración
                           de variables. También se usa para juntar las expresiones
                           dentro de una sentencia for.
     .     Punto           Usado para separar los nombres de paquetes y los
                           nombres de subpaquetes y clases. También usado para
                           separar una variable o método de variable de referencia.




Fuente de la traducción:
The Vala Guide, Varun Madiath, Version 0.1, August 8, 2010.

Mais conteúdo relacionado

Mais procurados

Mais procurados (13)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
ATIX10
ATIX10ATIX10
ATIX10
 
Practicas bloque 1
Practicas bloque 1Practicas bloque 1
Practicas bloque 1
 
Cesnavarra 2009-boletín 10
Cesnavarra 2009-boletín 10Cesnavarra 2009-boletín 10
Cesnavarra 2009-boletín 10
 
Conociendo Tu Entorno De Programacion Java
Conociendo Tu Entorno De Programacion   JavaConociendo Tu Entorno De Programacion   Java
Conociendo Tu Entorno De Programacion Java
 
Manual Pascal
Manual PascalManual Pascal
Manual Pascal
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp
 
Colegio nacional nicolas esguerra
Colegio nacional nicolas esguerraColegio nacional nicolas esguerra
Colegio nacional nicolas esguerra
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Primera sesion
Primera sesionPrimera sesion
Primera sesion
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHP
 

Semelhante a Guía Vala

Olvera pérez seminario
Olvera pérez seminarioOlvera pérez seminario
Olvera pérez seminarioEse Javis
 
3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz
3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz
3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzzWilderHidalgo1
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...Kareen's Maldonado
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...carolina peña
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...Domitho Ibarra
 

Semelhante a Guía Vala (20)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Olvera pérez seminario
Olvera pérez seminarioOlvera pérez seminario
Olvera pérez seminario
 
Fanny3
Fanny3Fanny3
Fanny3
 
Jhonny3
Jhonny3Jhonny3
Jhonny3
 
UNIDAD 3
UNIDAD 3 UNIDAD 3
UNIDAD 3
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Instalacion jdk
Instalacion jdkInstalacion jdk
Instalacion jdk
 
3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz
3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz
3.LenguajeJava.pptxzczxczxsdfsczxczzzzzzzzzzzzzzzzzzzzz
 
Compiladores
CompiladoresCompiladores
Compiladores
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
 
Tercera unidad ;3
Tercera unidad ;3Tercera unidad ;3
Tercera unidad ;3
 
Presentación3
Presentación3Presentación3
Presentación3
 
Conociendo Tu Entorno Java
Conociendo Tu Entorno JavaConociendo Tu Entorno Java
Conociendo Tu Entorno Java
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 

Guía Vala

  • 1. Guía de Vala Versión 0.1 Autor Varun Madiath Agosto 8, 2010 Traductor Juan Matías Olmos Agosto, 2011
  • 2. Licencia del documento original Copyright ©2010 Varun Madiath Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with Invariant Sections being “Preface”, with no Front-Cover Texts, and with no Back-Cover Texts. Licencia de la traducción Esta obra está bajo una licencia Creative Commons Atribución 2.5 Argentina Usted es libre de: Compartir – copiar, distribuir, ejecutar y comunicar públicamente la obra hacer obras derivadas hacer un uso comercial de esta obra Bajo las condiciones siguientes: Atribución – Debe reconocer los créditos de la obra de manera especificada por el autor o el licenciante (pero no de una manera que sugiera que tiene su apoyo o que apoyaron el uso que hace de su obra). […] Aviso – Al reutilizar o distribuir la obra, tiene que dejar en claro los términos de la licencia de esta obra. La mejor forma de hacerlo es enlazar a la siguiente página (donde puede acceder a la versión completa de la licencia): http://creativecommons.org/licenses/by/2.5/ar/
  • 3. Contenido Capítulo 1............................................................................................... 4 Introducción..............................................................................................................4 Capítulo 2............................................................................................... 6 Lo básico de Vala......................................................................................................6 Compilar el código...............................................................................................6 Comprender el código..........................................................................................7 Programando con Variables.................................................................................8 Un recorrido por la gramática básica de Vala....................................................11 Espacios en blanco.............................................................................................12 Comentarios.......................................................................................................12 Identificadores...................................................................................................12 Palabras clave....................................................................................................13 Literales.............................................................................................................13 Separadores.......................................................................................................14
  • 4. Capítulo 1 Introducción C es un lenguaje de programación de bajo nivel que puede ser ejecutado en una variedad de plataformas. Un lenguaje de bajo nivel es el que expone al programador al hardware donde se ejecutará el código. C viene con las librerías C estándar, las que en teoría permite a los programadores escribir código que puede ser compilado en diferentes sistemas operativos, y diferentes arquitecturas de procesador, para crear un archivo ejecutable que pueda ejecutarse en el sistema. Sin embargo, en la práctica, la librería estándar de C no es realmente portable a los diferentes sistemas operativos, y para solucionar esto se desarrolló la librería GLib. GLib es una librería escrita en C diseñada para ser multiplataforma, y se usa como alternativa a la librería estándar. Además de proveer funcionalidades como imprimir texto en la pantalla y lectura de archivos, también provee un tipo de sistema que permite la implementación de clases, interfaces y objetos en C. Vala es un lenguaje de programación diseñado para los desarrolladores GLib. El uso de Vala provee un montón de características presentes en otros lenguajes de programación de alto nivel pero de una forma que es simple y fácil de entender. Esto lo hace sin incorporar ninguna máquina virtual de ningún tipo, y por ello el código escrito puede ser compilado muy eficientemente. Este lenguaje funciona convirtiendo el código Vala en código fuente C y archivos cabecera. Vala usa el sistema de tipos GObject de GLib para obtener las características de orientación a objetos. La sintaxis de Vala es similar a C# o Java, pero modificada para trabajar con el sistema de tipos GObject. Algunas de las características que soporta Vala son: • Interfaces • Propiedades • Señales • Bucle foreach • Expresiones Lambda
  • 5. Inferencia de tipo para variables locales • Genéricos • Tipo Non-null (no nulos) • Gestor de memoria asistido • Control de excepciones Vala no incluye ninguna característica que no se puede realizar usando C con GLib, sin embargo hace el uso de estas mismas características de forma más simple. Una de las criticas más comunes de GLib es que resulta muy verboso y tiene un código desprolijo. Usando Vala, los programadores pueden evitarse escribir todo ese código verboso que requiere GLib. Este lenguaje está diseñado para permitir el uso de librerías C fácilmente, en especial las librerías basadas en GObject. Todo lo que se necesita para usar una librería escrita en C es un archivo describiendo la API, estos archivos suelen usar extensión .vapi. Ésta es una diferencia con respecto a otros lenguajes que usan librerías en C, los cuales requieren un código especial, llamado binding, que une la funcionalidad del lenguaje con la librería en C. El problema con eso es que si una librería cambia, el binding tendría que ser reescrito antes de seguir siendo usado con la librería, dando como resultado que el binding esté un poco detrás de la implementación oficial. Los programas escritos en C también pueden usar librerías de Vala sin ningún esfuerzo extra. El compilador de vala genera automáticamente los archivos cabecera requeridos, lo cual necesitan los programas en C para usar la librería. También es posible escribir bindings para Vala desde otros lenguajes como Python y Mono. Se encuentra más información sobre Vala en: http://live.gnome.org/Vala/
  • 6. Capítulo 2 Lo básico de Vala Comencemos a escribir programas usando Vala. El siguiente es un programa simple que muestra en pantalla las palabras Hola Mundo. Ingresa este código en tu editor de texto favorito y guárdalo en un archivo llamado holamundo.vala. Vala es un lenguaje que distingue mayúsculas de minúsculas, así que asegúrate de ingresar el código correctamente. /*  * holamundo.vala  *  * Este es un programa en Vala simple.  * Se muestra en pantalla las palabras Hola Mundo  */ void main(string[] args) {     // La siguiente linea muestra en pantalla las palabras “Hola Mundo”.     stdout.printf(“Hola Mundon”); } Compilar el código Para compilar este programa, abre una terminal, ingresa al directorio donde guardaste tu archivo y escribe valac seguido del código fuente, como se muestra aquí. $ valac holamundo.vala Si no hubieron errores parecerá que no ocurrió nada. Sin embargo el compilador habrá creado un nuevo archivo ejecutable llamado holamundo. Puedes ejecutar este programa escribiendo su nombre precedido por ./ como se muestra abajo. $ ./holamundo Verás la siguiente salida. Hola Mundo
  • 7. Comprender el código A pesar de su longitud, el programa «hola mundo» introduce varias de las características y conceptos usados en Vala. El programa inicia con las siguientes líneas: /*  * holamundo.vala  *  * Este es un programa en Vala simple.  * Se muestra en pantalla las palabras Hola Mundo  */ Esto es un comentario, un texto encontrado en el código fuente pero que el compilador ignora. Generalmente, un comentario se usa para describir la operación del programa, la razón detrás de algún código o una explicación del funcionamiento de una sección del mismo. Este lenguaje usa dos tipos de comentarios. El comentario visto arriba se llama comentario multilínea. Se llama de esa forma porque ocupa varias líneas del código fuente. Este tipo de comentario inicia con los caracteres /* y finaliza con */, con todo lo que haya entre estos caracteres componen el comentario. void main(string[] args) { Esta línea define el método main(), el mismo contiene el código que se ejecuta cuando inicia el programa. Se entiende como un punto de partida para la ejecución del programa. Todas las aplicaciones en Vala (así como C, C++ y C# entre otros) inician ejecutando este método. Cuando un programa es ejecutado por el sistema operativo, el mismo corre el código del método principal, y cuando el programa a terminado, puede devolver o no un número al sistema operativo. Este número puede ser usado para informar al sistema operativo si el programa termino sin problemas o si hubo alguno durante la ejecución. La palabra clave void de esta línea simplemente le dice al compilador que main() no retornará ningún valor. Todos los métodos pueden retornar un valor, como se verá más adelante.
  • 8. Vala es un lenguaje que distingue mayúsculas de minúsculas, por lo que void no puede ser escrito como VOID o Void. El método main() debe ser escrito exactamente como es, cualquier cambio en la capitalización producirá un archivo que no se ejecutará. Esto es porque el compilador no vería un método llamado main(), y por ello el compilador asumirá que el código será usado en otro programa. El último carácter de esta línea es la llave {. Esto señala el inicio del cuerpo de main(). Todo el código que comprenda un método estará entre una llave abierta y una llave cerrada. Otro punto: main() simplemente es un punto de partida del programa. Un programa complejo tendrá docenas de clases, solo una de las cuales tendrá que ser el método principal main() para que las cosas puedan arrancar.     // La siguiente linea muestra en pantalla las palabras “Hola Mundo”. Esta línea es un comentario de línea simple, el otro tipo de comentario soportado en Vala. Un comentario de una sola línea comienza con los caracteres // y termina al final de la línea. Generalmente se usan para agregar explicaciones cortas en una línea de código en particular, mientras que los comentarios de múltiples líneas son usados para explicaciones más largas.     stdout.printf(“Hola Mundon”); Esta línea muestra en pantalla la cadena de caracteres “Hola Mundo”, seguida del carácter de salto de línea, que mueve la salida a la línea siguiente. El método printf() mostrado aquí es parte de GLib, una librería de la que Vala depende ampliamente. Este método mostrará en pantalla todo el texto que está entre paréntesis. La secuencia de caracteres especial n representa el salto de línea. Observa que la sentencia printf() termina con un punto y coma. Todas las sentencias en Vala terminan de esta forma. En este programa, la única sentencia es printf(), las otras líneas son comentarios, declaración de métodos, o líneas con solo caracteres como { o } llamados también descriptores de alcance. Programando con Variables
  • 9. Aunque el programa escrito arriba instruye a la computadora, no es muy útil ya que todo el programa es estático. El programa produciría la misma salida cada ejecución, y no hacía ningún cálculo. El concepto de variable es fundamental para hacer programas dinámicos. Una variable es solo el nombre de una cierta dirección de memoria, puede pensarse como una caja donde guardas datos. El dato dentro de una variable puede ser modificado durante la ejecución del programa, lo que le permite volverse dinámico. El siguiente programa introduce algunos tipos básicos de variables que están disponibles en Vala. /*  * ejemplo_variable.vala  *  * Este programa muestra como usar variables, introduce algunos tipos de  * ellas que están disponibles en Vala.  */ void main(string[] args) {     // Declaracion de variables     bool verdadero = false;     unichar letra = ‘v’;     int num = 10;     double punto_decimal = 15.33;     string nombre = “Alejandro Magno”;     // Imprimiendo los valores de las variables     stdout.printf(verdadero.to_string() + “n”);     stdout.printf(letra.to_estring() + “n”);     stdout.printf(num.to_string() + “n”);     stdout.printf(punto_decimal.to_string() + “n”);     stdout.printf(nombre + “n”);     //Modificando una variable     num = num * 2;     // Imprimiendo la variable modificada     stdout.printf(num.to_string() + “n”); } Puedes compilar y ejecutar el programa escribiendo. $ valac ejemplo_variable.vala $ ./ejemplo_variable
  • 10. La salida se verá como la siguiente. false v 10 15.33 Alejandro Magno 20 Vamos a disecar este código para comprender como se generó esta salida.     bool verdadero = false;     unichar letra = ‘v’;     int num = 10;     double punto_decimal = 15.33;     string nombre = “Alejandro Magno”; Estas líneas crean variables y les asigna valores. Se crearon diferentes tipos de variables aquí. La variable bool representa un booleano, una variable que puede tener uno de dos posibles valores, true o false (serían verdadero o falso en español). La variable unichar representa un carácter de texto, por lo que casi cualquier carácter puede ser guardado en esta variable (si, esto incluye caracteres de escrituras Japonesas e Índicas). El carácter es encerrado con comillas simples para indicar que es un carácter y no un comando para la computadora. La variable int representa un entero (un número que no tiene punto decimal). La variable double representa un número de punto flotante (una variable que puede o no tener punto decimal) y finalmente una variable string que representa una serie (o cadena) de caracteres. Una cadena es encerrada con comillas dobles para indicar que el texto es una cadena. Las variables de asignan con el operador =, con el nombre y tipo del operador del lado izquierdo y el valor del lado derecho. La forma general de una declaración de variable puede ser escrita como (el texto encerrado por corchetes es opcional). type name [= value]     stdout.printf(verdadero.to_string() + “n”);     stdout.printf(letra.to_estring() + “n”);     stdout.printf(num.to_string() + “n”);     stdout.printf(punto_decimal.to_string() + “n”);     stdout.printf(nombre + “n”);
  • 11. Estas líneas imprimen los valores de las variables en la pantalla. La impresión en la pantalla se hace usando el mismo método printf() que fue usado en el primer ejemplo. Notarás que en este caso, a la mayoría de las variables se le añade .to_string(). Esto se debe a que el método printf() debe dar una cadena para imprimir en pantalla. Por la misma razón, la variable string no lleva .to_string(). num = num * 2; Esta línea modifica el valor de num asignándole un valor nuevo. El valor nuevo es dado por la expresión num * 2. Es importante no ver esto como una expresión algebraica, que no tendría sentido, sino como una asignación. Hay otro operador para igualdad, como veremos luego. Aquí, el valor de num es multiplicado por dos, y el resultado es almacenado en num. stdout.printf(num.to_string() + “n”); Esta línea imprime el valor de num, como puedes ver en la salida, el valor a cambiado desde de la asignación de arriba. Un recorrido por la gramática básica de Vala Ahora hemos escrito dos programas pequeños en Vala, pero antes de seguir sería bueno mirar los elementos que componen el programa. Los diferentes elementos que componen un programa en Vala son: • Espacios en blanco • Comentarios • Identificadores • Palabras Clave • Literales • Operadores • Separadores
  • 12. Espacios en blanco Vala es un lenguaje de formato libre. Eso significa que el código no necesita ser formateado de alguna manera en particular. Los programas que hemos escrito hasta aquí podrían ser condensados en una simple línea (con la excepción del comentario de línea simple). El único requisito es que cada símbolo esté separado por al menos un carácter de espacio, salvo que ya esté separado por algún separador u operador. Los separadores y operadores se verán más adelante también. Comentarios Ya hemos introducido los dos tipos de comentarios que soporta Vala, el comentario de una línea y el de múltiples líneas. Es importante observar que la secuencia de caracteres */ no puede aparecer en tu comentario, ya que el compilador entenderá que se trata del final del comentario. Esto implica que un comentario en línea no puede ser colocado dentro de otro. En cuanto comiences a escribir programas más largos y complicados, desearás comentar secciones del código para tratar de seguir los rastros de posibles errores. En tales casos utiliza comentarios de líneas múltiples, esto no se recomienda si ya tienes comentarios de múltiples líneas en esa sección de código. Se recomienda usar un editor para anteponer // en cada línea de ese bloque para evitar cualquier problema. La mayoría de los editores traen una característica para realizar esto. Identificadores Los identificadores se usan para nombrar variables y métodos. En los programas que hemos escrito hasta ahora siempre escribimos el métodos main(), en este caso, el identificador es main. Todos los nombres de las variables del segundo ejemplo son identificadores. Otros identificadores menos obvios son stdout y printf, separados por un separador (el punto). Los identificadores de Vala solo pueden contener los caracteres A-Z, a-z, 0-9 o el guión bajo, además el primer carácter no puede ser un número.
  • 13. Palabras clave Vala tiene un conjunto de palabras que no pueden ser usadas como identificadores. Estas palabras son reservadas para expresar información sobre el programa al compilador. La lista de palabras reservadas se muestra en la siguiente tabla: if else switch case default do while for foreach in break continue return try catch finally throw lock class interface struct enum delegate errordomain const weak unowned dynamic abstract virtual override signal extern static async inline new public prívate protected internal out ref throws requires ensures namespace using as is in owned delete sizeof typeof this base null true false get set construct default value construct void var yield global Literales Los literales son construcciones que representan valores en el programa. Un ejemplo de una constante sería el valor true, para un booleano, o Varun para una cadena. Aquí tenemos algunos ejemplos más: • 1824 • 1858.58 • true • false • null • “Alejandro Magno” Los primeros literales representan un entero y un valor de punto flotante, el tercero y cuarto son constantes booleanas, el quinto es una constante nula y el último representa una cadena. Un literal puede ser sustituido por una variable en cualquier lugar donde una variable de ese tipo sea permitida. Si lees la lista completa de las
  • 14. palabras reservadas, verás que los literales true, false y null también son palabras reservadas. Separadores Símbolo Nombre Objetivo () Paréntesis Se usan para contener la lista de parámetros en la definición de un método y su invocación. También se usan para definir la prioridad en expresiones que los contenga. Finalmente, se usan para contener tipos de dato realizando lo que se llama casting de tipo estático. {} Llaves Usadas para contener los valores de los arreglos inicializados automáticamente. También se usan para definir un bloque de código, para clases, métodos y alcances locales. [] Corchetes Uso para declarar tipo de arreglos. También se usan para referenciar valores en arreglos. ; Punto y coma Termina una sentencia. , Coma Separa identificadores consecutivos en una declaración de variables. También se usa para juntar las expresiones dentro de una sentencia for. . Punto Usado para separar los nombres de paquetes y los nombres de subpaquetes y clases. También usado para separar una variable o método de variable de referencia. Fuente de la traducción: The Vala Guide, Varun Madiath, Version 0.1, August 8, 2010.