jueves, 5 de mayo de 2011

como se utiliza el voki

Visual Basic:
Características
El compilador de Visual Basic x.0 genera código que requiere librerías de enlace dinámico DLL para que funcione, en algunos casos llamada MSVBVMxy.DLL (acrónimo de "MicroSoft Visual Basic Virtual Machine x.y", donde x.y es la versión) y en otros VBRUNXXX.DLL ("Visual Basic Runtime X.XX"). Estas DLL proveen las funciones implementadas en el lenguaje, conteniendo rutinas en código ejecutable que son cargadas bajo demanda. Además existe un gran número de bibliotecas DLL, que facilitan el acceso a la mayoría de las funciones del sistema operativo y también la integración con otras aplicaciones.
En el IDE de Visual Basic se puede ejecutar el programa en desarrollo, "al vuelo" o en en modo intérprete (en realidad pseudo-compila el programa muy rápidamente y luego lo ejecuta), y también se permite la generación del programa en código ejecutable (exe). Tal programa generado en disco puede luego ser ejecutado fuera del ambiente de programación (incluso en modo stand alone, dependiendo de los requisitos de DLL´s), aunque será necesario que las librerías DLL requeridas se encuentren instaladas en el sistema para su apropiada ejecución.
Visual Basic provee soporte para empaquetado y distribución, es decir, permite generar un módulo instalador que contiene el programa ejecutable y las bibliotecas DLL necesarias para él. Con ese módulo la aplicación generada se distribuye y puede ser instalada en cualquier equipo (con sistema compatible).
Así como bibliotecas DLL, hay numerosas aplicaciones de terceros que disponen de variadas funciones y mejoras para Visual Basic, incluyendo también para empaquetado y distribución.
 Entorno de desarrollo
Existe un único entorno de desarrollo para Visual Basic, desarrollado por Microsoft: Microsoft Visual Basic x.0 para versiones desde la 1.0 hasta la 6.0, (con las diferencias entre las versiones desde la 1.0 (MS-DOS/Windows 3.1) hasta la 3.0 (16 bits, Windows 3.1/95) y las de la 4.0 (16/32 bits, Windows 3.1/95/NT) hasta la 6.0 (32 bits, Windows 9x/Me/NT/2000/XP/2003 server).
Su entorno de desarrollo es muy similar al de otros lenguajes e IDE's.
  • Se compone principalmente de una barra de herramientas y menús, que se pueden personalizar con prácticamente la totalidad de los comandos del IDE, a necesidad.
  • El espacio de trabajo incluye y muestra todas las ventanas del proyecto, las vistas del código de los módulos y objetos, y los controles con los que se compondrán las ventanas de la aplicación. Por defecto se dispone los siguientes controles:
    • (PictureBox) Caja de Imagenes
    • (Label) Etiqueta
    • (TextBox) Caja de texto
    • (Frame) Marco
    • (CommandButton) Botón de comando
    • (CheckBox) Casilla de verificación
    • (OptionButton) Botón de opción
    • (ComboBox) Lista desplegable
    • (ListBox) Lista
    • (HScrollBar) Barra de desplazamiento horizontal
    • (VScrollBar) Barra de desplazamiento vertical
    • (Timer) Temporizador
    • (DriveListBox) Lista de unidades de disco
    • (DirListBox) Lista de directorios
    • (FileListBox) Lista de archivos
    • (Shape) Figura
    • (Line) Línea
    • (Image) Imagen
    • (Data) Conexión a origen de datos
    • (OLE) Contenedor de documentos embebidos compatibles con Object Linking and Embedding
Se pueden agregar todo tipo de controles de terceros, y hay una gran cantidad de ellos que se proveen con la instalación de Visual Basic 6.0, vienen embebidos dentro de archivos de extensión OCX.
  • El panel lateral derecho contiene dos vistas principales:
    • El Explorador de Proyectos, que muestra todos los elementos que componen el proyecto o grupos de proyectos (formularios, interfaz de controles, módulos de código, módulos de clase, etc.)
    • El Panel de propiedades, donde se muestran todos los atributos de los controles de los formularios o la información de modulos clase y formularios, entre muchos otros.
  • La Ventana inmediato, por defecto se encuentra en la parte inferior, aunque puede no estar visible; utilizar Ctrl+G para mostrar la ventana. Esta ventana resulta una herramienta muy útil a la hora de depurar el programa o incluso de realizar pruebas rápidas, ya que permite imprimir mensajes de texto desde el código y ejecutar sentencias y comandos simples (solo sentencias que se puedan representar, en una sola línea), como por ejemplo, desde código de la propia aplicación, se puede consultar el valor de una variable o llamar a un método declarado en el módulo que se está depurando. También se puede ejecutar código "al vuelo", por ejemplo probar sentencias como:
?2+2
Al ejecutarlo devolvería el resultado de la operación. Se puede usar variables del código de la aplicación, o sentencias de código como:
Msgbox "Prueba de cuadro de mensaje de error.", vbCritical, "Titulo del mensaje"
A la hora de depuración puede ser útil para consultar un código de error:
?Err.Number

 Ejemplo de código

El siguiente fragmento de código muestra un cuadro de mensaje, en una ventana, que dice "Hola mundo!":
Private Sub Form_Load()
    ' Ejecuta un simple box de mensaje que dice "Hola mundo!"
    MsgBox "Hola mundo!"
End Sub

 Ventajas

  • Posee una curva de aprendizaje muy rápida.
  • Integra el diseño e implementación de formularios de Windows.
  • Permite usar con facilidad la plataforma de los sistemas Windows, dado que tiene acceso prácticamente total a la API de Windows, incluidas librerías actuales.
  • Es uno de los lenguajes de uso más extendido, por lo que resulta fácil encontrar información, documentación y fuentes para los proyectos.
  • Fácilmente extensible mediante librerías DLL y componentes ActiveX de otros lenguajes.
  • Posibilita añadir soporte para ejecución de scripts, VBScript o JScript, en las aplicaciones mediante Microsoft Script Control.
  • Tiene acceso a la API multimedia de DirectX (versiones 7 y 8). También está disponible, de forma no oficial, un componente para trabajar con OpenGL 1.1:[7]
  • Existe una versión, VBA, integrada en las aplicaciones de Microsoft Office, tanto Windows como Mac, que permite programar macros para extender y automatizar funcionalidades en documentos, hojas de cálculo, bases de datos (access).
  • Si bien permite desarrollar grandes y complejas aplicaciones, también provee un entorno adecuado para realizar pequeños prototipos rápidos.

algoritmos

Archivo:AlgoritmoRaiz.png
Archivo:EsquemáticaAlgoritmo1.svg

jueves, 14 de abril de 2011

Lenguaje de programación

De Wikipedia, la enciclopedia libre
Captura de la microcomputadora Commodore PET-32 mostrando un programa en el lenguaje de programación BASIC, bajo el emulador VICE en una distribución GNU/Linux.
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.[1] Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
  • El desarrollo lógico del programa para resolver un problema en particular.
  • Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
  • Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
  • Prueba y depuración del programa.
  • Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten diseñar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.
Con esta gramática se especifica lo siguiente:
  • una expresión puede ser un átomo o una lista;
  • un átomo puede ser un número o un símbolo;
  • un número es una secuencia continua de uno o más dígitos decimales, precedido opcionalmente por un signo más o un signo menos;
  • un símbolo es una letra seguida de cero o más caracteres (excluyendo espacios); y
  • una lista es un par de paréntesis que abren y cierran, con cero o más expresiones en medio.
Algunos ejemplos de secuencias bien formadas de acuerdo a esta gramática:
'12345', '()', '(a b c232 (1))'
No todos los programas sintácticamente correctos son semánticamente correctos. Muchos programas sintácticamente correctos tienen inconsistencias con las reglas del lenguaje; y pueden (dependiendo de la especificación del lenguaje y la solidez de la implementación) resultar en un error de traducción o ejecución. En algunos casos, tales programas pueden exhibir un comportamiento indefinido. Además, incluso cuando un programa está bien definido dentro de un lenguaje, todavía puede tener un significado que no es el que la persona que lo escribió estaba tratando de construir.
Usando el lenguaje natural, por ejemplo, puede no ser posible asignarle significado a una oración gramaticalmente válida o la oración puede ser falsa:
  • "Las ideas verdes y descoloridas duermen furiosamente" es una oración bien formada gramaticalmente pero no tiene significado comúnmente aceptado.
  • "Juan es un soltero casado" también está bien formada gramaticalmente pero expresa un significado que no puede ser verdadero.
El siguiente fragmento en el lenguaje C es sintácticamente correcto, pero ejecuta una operación que no está definida semánticamente (dado que p es un apuntador nulo, las operaciones p->real y p->im no tienen ningún significado):
complex *p = NULL;
complex abs_p = sqrt (p->real * p->real + p->im * p->im);
Si la declaración de tipo de la primera línea fuera omitida, el programa dispararía un error de compilación, pues la variable "p" no estaría definida. Pero el programa sería sintácticamente correcto todavía, dado que las declaraciones de tipo proveen información semántica solamente.
La gramática necesaria para especificar un lenguaje de programación puede ser clasificada por su posición en la Jerarquía de Chomsky. La sintaxis de la mayoría de los lenguajes de programación puede ser especificada utilizando una gramática Tipo-2, es decir, son gramáticas libres de contexto. Algunos lenguajes, incluyendo a Perl y a Lisp, contienen construcciones que permiten la ejecución durante la fase de análisis. Los lenguajes que permiten construcciones que permiten al programador alterar el comportamiento de un analizador hacen del análisis de la sintaxis un problema sin decisión única, y generalmente oscurecen la separación entre análisis y ejecución. En contraste con el sistema de macros de Lisp y los bloques BEGIN de Perl, que pueden tener cálculos generales, las macros de C son meros reemplazos de cadenas, y no requieren ejecución de código.

[editar] Semántica estática

La semántica estática define las restricciones sobre la estructura de los textos válidos que resulta imposible o muy difícil expresar mediante formalismos sintácticos estándar. Para los lenguajes compilados, la semántica estática básicamente incluye las reglas semánticas que se pueden verificar en el momento de compilar. Por ejemplo el chequeo de que cada identificador sea declarado antes de ser usado (en lenguajes que requieren tales declaraciones) o que las etiquetas en cada brazo de una estructura case sean distintas. Muchas restricciones importantes de este tipo, como la validación de que los identificadores sean usados en los contextos apropiados (por ejemplo no sumar un entero al nombre de una función), o que las llamadas a subrutinas tengan el número y tipo de parámetros adecuado, puede ser implementadas definiéndolas como reglas en una lógica conocida como sistema de tipos. Otras formas de análisis estáticos, como los análisis de flujo de datos, también pueden ser parte de la semántica estática. Nuevos lenguajes de programación como Java y C# tienen un análisis definido de asignaciones, una forma de análisis de flujo de datos, como parte de su semántica estática.