Abigail Magallán Gutiérrez

Practica No. 2 Identificación de componentes léxicos en herramientas
computacionales

1.- Objetivo
El alumno utilizará los conceptos vistos en clase para identificar los componentes
léxicos de diferentes herramientas de programación.

Ambiente de desarrollo
Un entorno de desarrollo integrado, llamado también IDE, es un programa
informático compuesto por un conjunto de herramientas de programación. Puede
dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse
para varios.
Ambiente de desarrollo java
Existen diversos IDEs para Java. Vamos a citar algunos de ellos:
Eclipse: Es uno de los entornos Java más utilizados a nivel profesional. El paquete
básico de Eclipse se puede expandir mediante la instalación de plugins para
añadir funcionalidades a medida que se vayan necesitando.
NetBeans: Otro de los entornos Java muy utilizados, también expandible
mediante plugins. Facilita bastante el diseño gráfico asociado a aplicaciones Java.
BlueJ: Es un entorno de desarrollo dirigido al aprendizaje de Java (entorno
académico) y sin uso a nivel profesional. Es utilizado en distintas universidades
para la enseñanza de Java. Destaca por ser sencillo e incluir algunas
funcionalidades dirigidas a que las personas que estén aprendiendo tengan mayor
facilidad para comprender aspectos clave de la programación orientada a objetos.
JCreator: Este IDE está escrito en C++ y omite herramientas para desarrollos
gráficos, lo cual lo hace más rápido y eficiente que otros IDEs.




Características de java
Las características principales que nos ofrece Java son:
1.- Lenguaje Simple:
Se lo conoce como lenguaje simple porque viene de la misma estructura de c y
c++; ya que c++ fue un referente para la creación de java por eso utiliza
determinadas características de c++ y se han eliminado otras.
2.- Orientado a Objeto:
Toda la programación en java en su mayoría está orientada a objeto, ya que al
estar agrupados en estructurasen estructuras encapsuladas es más fácil su
manipulación.
3.- Distribuido:
Permite abrir sockets, establecer y aceptar conexiones con los servidores o
clientes remotos; facilita la creación de aplicaciones distribuidas ya que
proporciona una colección de clases para aplicaciones en red.
4.- Robusto:
Es altamente fiable en comparación con c, se han eliminado muchas
características con la aritmética de punteros, proporciona numerosas
comprobaciones en compilación y en tiempo de ejecución.
5.- Seguro:
La seguridad es una característica muy importante en java ya que se han
implementado barreras de seguridad en el lenguaje y en el sistema de ejecución
de tiempo real.
6.- Indiferente a la arquitectura:
Java es compatible con los más variados entornos de red, cualquiera sean estos
desde Windows 95, Unix a Windows Nt y Mac, para poder trabajar con diferentes
sistemas operativos.
Java es muy versátil ya que utiliza byte-codos que es un formato intermedio que
sirve para transportar el código eficientemente o de diferentes plataformas
(Hardware - Software).
7.- Portable:
Por ser indiferente a la arquitectura sobre la cual está trabajando, esto hace que
su portabilidad sea muy eficiente, sus programas son iguales en cualquiera de las
plataformas, ya que java especifica tamaños básicos, esto se conoce como la
máquina virtual de java.
Ventajas y desventajas java
VENTAJAS
• Es una fuente abierta.
• Es independiente de la plataforma.
• Realiza la colección de basura de las ayudas.
• Asigna objetos en el apilado.
• Desarrolla aplicaciones web dinámicas.
• Permite crear programas modulares y códigos reutilizables.

DESVENTAJAS
• Los programas hechos en java no tienden a ser muy rápidos.
• Algunas herramientas tienen un costo adicional.

Lenguaje C
Geany.
El favorito de muchos. Geany es un IDE orientado a C(y sus variantes) además de
soportar otros lenguajes de programación. Entre las funciones comunes de un
programa de este rubro esta el coloreado de la sintaxis, manejo de muchos
archivos en forma de proyecto y demás. Lo interesante de Geany es que puede
correr con integral acoplada al mismo programa, si, ahí directo mientras escribes
código. Además de que puedes personalizarlo con plugins(y como estos cargan al
inicio del programa para optimizar su velocidad).
Dev-C++.
Este es el que yo uso. Ligero, muy ligero y abre en segundos. Puedes tener varias
hojas de código abiertas al mismo tiempo por que se apilan en pestañas. Además
de que puedes manejarlo todo desde el teclado. Soporta el clásico coloreado de
sintaxis(personalizable) y varios lenguajes de programación a parte de C sus
variantes.
Code::Blocks.
Este IDE tiene la ventaja de correr en Windows y LInux con gran soltura y también
es rápido como Dev-C++. Soporta plugins y es súper completo. Puedes
personalizar la interfaz, así puedes tener a la mano todo lo que necesitas, aunque
eso te haga terminar con un espacio muy pequeño para escribir el código.


Características lenguaje C

como funciones matemáticas y de manejo de archivos, proporcionadas por
bibliotecas.
de los más empleados es el estructurado "no llevado al extremo" (permitiendo
ciertas licencias de ruptura).

preprocesado, el preprocesador de C, para tareas como
definir macros e incluir múltiples archivos de código fuente.
Acceso a memoria de bajo nivel mediante el uso de punteros.
uniones.
palabras clave.
parámetros a una función se realiza por valor. El paso
por referencia se consigue pasando explícitamente a las funciones las direcciones
de memoria de dichos parámetros.
Ventajas

* Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como
funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.

* Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de
los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas
licencias de ruptura).

* Un sistema de tipos que impide operaciones sin sentido.

* Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como
definir macros e incluir múltiples archivos de código fuente.

* Acceso a memoria de bajo nivel mediante el uso de punteros.

* Interrupciones al procesador con uniones.

* Un conjunto reducido de palabras clave.

* Por defecto, el paso de parámetros a una función se realiza por valor. El paso
por referencia se consigue pasando explícitamente a las funciones las direcciones
de memoria de dichos parámetros.

* Punteros a funciones y variables estáticas, que permiten una forma rudimentaria
de encapsulado y polimorfismo.

Desventajas

* Recolección de basura nativa, sin embargo se encuentran a tal efecto bibliotecas
como la "libgc" desarrollada por Sun Microsystems, o el Recolector de basura de
Boehm.

* Soporte para programación orientada a objetos, aunque la implementación
original de C++ fue un preprocesador que traducía código fuente de C++ a C.

* Encapsulación.

* Funciones anidadas, aunque GCC tiene esta característica como extensión.

* Polimorfismo en tiempo de código en forma de sobrecarga, sobrecarga de
operadores y sólo dispone de un soporte rudimentario para la programación
genérica.

* Soporte nativo para programación multihilo y redes de computadores.

Lenguaje Visual Basic
Visual Basic es un lenguaje de programación dirigido por eventos.
Ambientes de desarrollo
Existe un único entorno de desarrollo para Visual Basic, desarrollado por
Microsoft: Microsoft Visual Basic x.0, correspondientes a versiones desde la 1.0
hasta la 6.0, (con respectivas diferencias entre versiones del lenguaje).
El entorno de desarrollo es muy similar al de otros lenguajes. Realizando una
instalación típica del producto
VENTAJAS
La facilidad del lenguaje permite crear aplicaciones para windows en muy poco
tiempo. En otras palabras, permite un desarrollo eficaz y menor inversión tanto en
tiempo como en dinero .

Permite generar librerías dinámicas de forma activa, mediante una reconfiguración
en su proceso de colección o codificación.



DESVENTAJAS
No existe forma alguna de exportar el código a otras plataformas diferentes a
windows. Los ejecutables generados son relativamente lentos en VISUAL BASIC
6.0 y anteriores. Por efecto permite la programación sin declaración de variables.

Su lenguaje no distingue entre mayúsculas y minúsculas como se hace en C++.

Componentes léxicos o tokens

Cuando un analizador léxico reúne los caracteres en un token, generalmente
representa el token de manera simbólica, es decir, como un valor de un tipo de
datos enumerado que representa el conjunto de tokens del lenguaje fuente. En
ocasiones también es necesario mantener la cadena de caracteres misma u otra
información derivada de ella, tal como el nombre asociado con un token
identificador o el valor de un token de número.
En la mayoría de los lenguajes el analizador léxico sólo necesita generar un token
a la vez. En este caso se puede utilizar una variable global simple para mantener
la información del token. En otros casos (cuyo ejemplo más notable es
FORTRAN), puede ser necesario un arreglo (o vector) de tokens.

Conclusiones
En esta práctica analizamos varios tipos de lenguajes de programación para que
sirven cuáles son sus ventajas y desventajas y sus características principales. Los
lenguajes de programación son muy importantes y debe de haber variedad de
estos para los diferentes programadores y diferentes entornos de desarrollo para
cada tipo de usuario, para estudiantes se usan unos más sencillos como forma
académica de entender algún lenguaje y también están los profesionales para un
trabajo mayor y más completo.