You are on page 1of 39

Anlisis de 3 lenguajes de Programacin

ALUMNOS:
Flores Lpez Jos Fernando.
Melin Bistrain Carlos Belisario.

NO. CONTROL:
11400508.
11400536.

PROFESOR:
Sonia Alvarado Mares

FECHA:
28-06-2014















INDICE

Contenido
INTRODUCCION ................................................................................................................................... 3
OBJETIVOS ........................................................................................................................................... 3
LENGUAJE C++ ................................................................................................................................... 4
ALFABETO ............................................................................................................................................ 4
IDENTIFICADORES ............................................................................................................................. 6
PALABRAS RESERVADAS ............................................................................................................... 6
TIPO DE DATOS ................................................................................................................................... 8
CONSTANTES ...................................................................................................................................... 9
OPERADORES ..................................................................................................................................... 9
COMPONENTES LXICOS, PATRONES Y LEXEMAS ............................................................. 11
VENTAJAS ........................................................................................................................................... 15
DESVENTAJAS .................................................................................................................................. 16
MATLAB ............................................................................................................................................... 16
QU ES MATLAB? .......................................................................................................................... 16
ALFABETO .......................................................................................................................................... 16
IDENTIFICADORES ........................................................................................................................... 17
PALABRAS RESERVADAS ............................................................................................................. 17
TIPO DE DATOS ................................................................................................................................. 19
OPERADORES ................................................................................................................................... 21
CONSTANTES ..................................................................................................................................... 22
Componentes lxicos, patrones y lexemas ..................................................................................... 23
Ventajas ............................................................................................................................................... 26
Desventajas ......................................................................................................................................... 27
LENGUAJES PYTHON ...................................................................................................................... 27
QU ES? ............................................................................................................................................ 27
ALFABETO ............................................................................................................................................... 27
IDENTIFICADORES............................................................................................................................ 28
PALABRAS RESERVADAS ............................................................................................................. 28
TIPO DE DATOS ................................................................................................................................. 28
TIPOS DE OPERADORES. ............................................................................................................... 29
Componentes lxicos, patrones y lexemas ............................................................................................ 30
VENTAJAS ........................................................................................................................................... 33
DESVENTAJAS ................................................................................................................................... 34
COMPARACION DE LENGUAJES DE ACUERDO EN SU ANALISIS LEXICO .................... 35
COMPARANDO MATLAB CON C++ .............................................................................................. 36
COMPARANDO PYTHON CON C++ .............................................................................................. 37
CONCLUSION ..................................................................................................................................... 37
REFERENCIAS ................................................................................................................................... 38





INTRODUCCION
Lenguajes de programacin:
Existen diversos lenguajes de programacin cada uno de ellos cuenta con
diferentes caractersticas tal como su alfabeto, sus palabras reservadas, sus tipos de
datos, constantes. Estos cumplen con ciertas caractersticas que los hacen
distinguirse unos de otros. En el documento abrimos pie a la investigacin de
lenguajes tales como: C++, MATLAB, PYTHON.

OBJETIVOS
Objetivo General:
Elaborar un reporte de los componentes de tres lenguajes de programacin
actuales, entre ellos alfabeto, cadenas, componentes lxicos y lexemas .Adems
debe de contener una tabla comparativa de las ventajas y desventajas, segn su
criterio de cada grupo de elementos mencionados anteriormente.

























LENGUAJE C++
QU ES?
C++ es un lenguaje de programacin de uso general con un sesgo hacia la
programacin de sistemas que:
Es un C mejorado.
Soporta abstraccin de Objetos.
Soporta Programacin Orientada a Objetos.
Programacin genrica.
Bjarne Stroustrup(1994).

ALFABETO

Para formar los elementos bsicos del programa (constantes, variables,
operadores, expresiones, etc.), C utiliza como bloques de construccin las letras
maysculas de la A a la z, las minsculas de la a la z, los dgitos del O al 9 y ciertos
caracteres especiales.

a b c d e f g h i j
k l m n o p q r s t
u v w x y z A B C D
E F G H I J K L M N
O P Q R S T U V W X
Y Z 0 1 2 3 4 5 6 7
8 9 - { } [ ] # ( )
< > % : ; . ? * +
/ ^ & | ~ ! = ,
'

Tambin se incluyen caracteres no representables tales como Espacio; tabulacin
horizontal; tabulacin vertical; salto de formato y nueva lnea .Estos originalmente se
incluan en los denominados caracteres de control.
CARCTER SECUENCIA DE ESCAPE VALOR
ASCII
Sonido (Alerta) \a 007
Retroceso \b 008
Tabulador horizontal \t 009
Tabulador vertical \v 011
Nueva lnea (avance de lnea) \n 010
Avance de pagina \f 012
Retorno de carro \r 013
Comillas () \ 034
Comilla Simple () \ 039
Signo de Interrogacin () \? 063
Barra inclinada hacia atrs (\) \\ 092
Nulo \0 000

En la mayora de los lenguajes de programacin, se consideran componentes
lxicos las siguientes construcciones. (Aho, Sethi, Ullman,(1993).
Las palabras reservadas
Los operadores (de comparacin, asignacin, booleanos, binarios, aritmticos,
etc.)
Los identificadores (de variables, funciones, constantes, etc.)
Las constantes o literales (enteros, reales, cadenas de caracteres, caracteres,
etc.)
Signos de puntuacin (parntesis, coma, punto y coma, etc.)
Podemos entonces organizar c++ Por sus diferentes formas de construccin del
lenguaje.

IDENTIFICADORES

En C / C + +, los nombres de las variables, etiquetas, y otros diversos objetos
definidos por el usuario se denominan identificadores. Estos identificadores pueden
variar de uno a varios caracteres. El primer carcter debe ser una letra o un guion
bajo. Estos son algunos nombres de identificadores correctos e incorrectos: (Bjarne
Stroustrup, 1994).

Correcto Incorrecto
Count 1Count
test123 hi!there
high_balance highbalance

NO hay lmite para la longitud de los identificadores. Algunas implementaciones de
C reconocen slo los ocho primeros caracteres, aunque la mayora de ellas
reconocen ms (tpicamente, 31 caracteres). El resto de los caracteres son utilizados
para la comodidad del programador. (Bjarne Stroustrup, 1994).
Este tipo de identificador se llama un nombre interno e incluye los nombres de las
variables locales, por ejemplo. En C + +, no hay lmite a la longitud de un
identificador, y al menos el primer carcter 1024 son significativas. Esta diferencia
puede ser importante si usted est convirtiendo un programa de C a C + +. (Bjarne
Stroustrup, 1994).

PALABRAS RESERVADAS

Las palabras reservadas son identificadores predefinidos que tienen significados
especiales y no pueden usarse como identificadores creados por el usuario en los
programas. (Bjarne Stroustrup,1994).

El primero contiene las palabras de C y que C++ como evolucin de C tambin
contiene:

Cadena Descripcin
volatile Especifica una variable que almacena datos cuyo contenido puede
cambiar en cualquier momento.
const Especifica una variable cuyo contenido no puede cambiar bajo ninguna
circunstancia.
enum Especifica un conjunto de variables que toman valores en un orden
especfico y consecutivo.
static Especifica una variable que slo puede cambiar por efecto del programa.
typed Define un tipo de dato para fcil manejo del programador basado en los
datos definidos.
sizeof Funcin que devuelve el tamao en bytes del tipo de dato al que se
aplica.
auto Una de las cuatro clases de almacenamiento de datos.
struct Define una estructura, para mayor informacin consulte Estructuras en
C.
break Obliga a salir de una estructura condicional switch.
continue Instruccin para suspender un ciclo de un bucle.
if Instruccin Condicional.
else Instruccin Condicional utilizada conjuntamente con el if.
while Bucle condicional que se ejecuta conforme la condicin entre el
parntesis sea cierta .
for Bucle que se ejecuta tantas veces como se cumplan las condiciones
especificadas dentro del
parntesis de la instruccin.
swith Estructura condicional Distinguida por casos.
return Especifica el dato que devuelve una funcin.
void Especifica que una funcin no devuelve valor alguno.
case Define los elementos de una estructura condicional.
default Define las acciones a ejecutar no especificadas por una instruccin case
dentro de una
estructura condicional switch.
goto Instruccin que ejecuta un salto a otra parte del cdigo.

register Permite almacenar un dato en el registro del sistema.
do Bucle condicional que se ejecuta en conjunto con la instruccin while.
extern Especifica una variable funcin que se encuentra en un archivo fuente
diferente.
union Un tipo de dato compuesto de otros datos definidos, consulte Estructuras
en C












Palabras que no provienen de C y que, por tanto, solo utiliza C++:

asm dynamic_cast namespace reinterpret_cast try bool explicit
new static_cast typeid catch false operator template
typena
me
class friend private this using const_cast
inline public throw virtual delete mutable protected
true wchar_t
TIPO DE DATOS

Estndar c + + no especifica un mnimo tamao o rango para los tipos bsicos
(char ,int, float, double). En su lugar, se simplifican los Estados de que deben cumplir
con ciertos requerimientos. Por ejemplo, Estndar C + + indica que un int se "tienen
el tamao natural, sugerido por la arquitectura del entorno de ejecucin". En todos
los casos, esto se cumple o exceden los rangos mnimos estipulados por Estndar C.
Cada compilador c + + especifica el tamao y la variedad de los tipos bsicos en la
cabecera. (Bjarne Stroustrup, 1994).
CADENA TAMAO EN BITS RANGO MINIMO
char 8 -127 - 127
unsigned char 8 0 - 255
signed char 8 -127 - 127
int 16 0 32 -32,767 32,767
unsigned int 16 o 32 0 65,535
signed int 16 o 32 -32,767 32,767
short int 16 -32,767 32,767
unsigned short int 16 0- 65,535
signed short int 16 -32,767 32,767
long int 32 -2,147,483,647 - 2,147,483,647
signed long int 32 -2,147,483,647 - 2,147,483,647
unsigned long int 32 0- 4,294,967,295
float 32 Seis dgitos de precisin
double 64 10 dgitos de precisin
long double 80 10 dgitos de precisin

CONSTANTES

C++ tiene cuatro tipos bsicos de constantes: constantes enteras, constantes en
coma flotante, constantes de carcter y constantes de cadena de caracteres.
Las constantes enteras y en coma flotante representan nmeros. Se las denomina,
en general, constantes de tipo numrico. Las siguientes reglas se pueden aplicar a
todas las constantes numricas.
l. No se pueden incluir comas ni espacios en blanco en la constante.
2. Si se desea, la constante puede ir precedida de un signo menos (-). (Realmente, el
signo menos es un operador que cambia el signo de una constante positiva, aunque
se puede ver como parte de la constante misma.)
3. El valor de una constante no puede exceder un lmite mximo y un mnimo
especificados. Para cada tipo de constante, estos lmites varan de un compilador de
C a otro. (Bjarne Stroustrup, 1994).
OPERADORES

Un operador es un elemento de programa que se aplica a uno o varios operandos en una expresin
O instruccin. (CRISTIAN GUILLERMO GARCA ,2012)
OPERADORES RELACIONALES
Cadena Accin
> Mayor que.
>= Mayor o igual que.
< Menor que.
<= Menor o igual que.
== Igual.
!= Diferente de.
OPERADORES LOGICOS
Cadena Accin
&& AND
|| OR
! NOT

OPERADORES BIT A BIT
Cadena Accin
& AND
| OR
^ XOR
~ NOT
>> Indica los bits han de ser movido a la
derecha.
<< Indica los bits han de ser movido a la
izquierda.
OPERADORES ARITMETICOS
Cadena Accin
- Resta
+ Suma
* Multiplicacin
/ Divisin
% Modulo
-- Decremento
++ Incremento



COMPONENTES LXICOS, PATRONES Y LEXEMAS

Segn (Aho, Sethi, Ullman, 2008) A la primera fase de un compilador se le llama
anlisis de lxico o escaneo. El analizador de lxico lee el flujo de caracteres que
componen el programa fuente y los agrupa en secuencias significativas, conocidas
como lexemas. Para cada lexema, el analizador lxico produce como salida un token
de la forma:
(nombre-token, valor-atributo)
Segn (Dr. Sergio Glvez Rojas y Miguel ngel Mora,2009) ,El analizador lxico
Puede darse por Un componente lxico , lexema, patrn
Componente lxico: es la secuencia lgica y coherente de caracteres relativo a una
Categora: identificador, palabra reservada, literales (cadena/numrica), operador o
carcter de puntuacin, adems de que un componente lxico puede tener uno o
varios lexemas.

Lexema: es una cadena de caracteres que concuerda con un patrn que describe un
componente lxico (valor de cadena).

Patrn: es una regla que genera la secuencia de caracteres que puede representar
a un determinado componente lxico (expresin regular).
Ahora ya entendido esto se puede seguir a explicar ejemplos de lexema,
componente lxico, token y patrn.
LEXEMA COMPONENTE
LEXICO
TOKEN PATRON
const constante const,constante const
if Palabra reservada if ,palabra reservada Inicia con una i
concatenada a
una f
volatile Palabra reservada volatile , Palabra
reservada
Inicia con una v
concatenada a
una o
concatenada a
una l
concatenada a
una a
concatenada a
una t
concatenada a
una i
concatenada a
una l
concatenada a
una e
goto

Palabra reservada goto , Palabra reservada Inicia con una g
concatenada a
una o
concatenada a
una t
concatenada a
una o
public Palabra reservada public , Palabra
reservada
Inicia con una p
concatenada a
una u
concatenada a
una b
concatenada a
una l
concatenada a
una i
concatenada a
una c
x Identificador x,identificador letra seguida de
cero o ms letras
y/o cero o ms
nmeros
fernando identificador fernando , identificador letra seguida de
cero o ms letras
y/o cero o ms
nmeros
Automatas1 identificador Automatas1,identificador letra seguida de
cero o ms letras
y/o cero o ms
nmeros
Mul_2 identificador Mul_2 ,identificador letra seguida de
cero o ms letras
y/o cero o ms
nmeros
X123_321 identificador X124_321,identificador letra seguida de
cero o ms letras
y/o cero o ms
nmeros.
1 numero 1,numero Cualquier literal
numrica.
123 numero 123,numero Cualquier literal
numrica.
3.1416 numero 3.1416,numero Cualquier literal
numrica.
333 numero 333,numero Cualquier literal
numrica.
12345678 numero 12345678,numero Cualquier literal
numrica.
int Tipo_dato int,Tipo_dato Inicia con una i
concatenada a
una n
concatenada a
una t
char Tipo_dato char,Tipo_dato Inicia con una c
concatenada a
una h
concatenada a
una a
concatenada a
una r
float Tipo_dato float, Tipo_dato Inicia con una f
concatenada a
una l
concatenada a
una o
concatenada a
una a
concatenada a
una t
double Tipo_dato double,Tipo_dato Inicia con una d
concatenada a
una o
concatenada a
una u
concatenada a
una b
concatenada a
una l
concatenada a
una e
+ Operador
aritmtico
+,Operador aritmtico + o o * o / o % o
o ++
&& Operador lgico &&,Operador lgico && o || o !
== Operador
relacional
=,Operador relacional < o > o == o =! o
<= o >=
~ Operador bit a bit ~, Operador bit a bit & o | o ^ o ~ o >>
o <<














VENTAJAS
Lenguaje de programacin orientado a objetos.

Lenguaje muy didctico, gracias a este lenguaje puedes aprender muchos
otros lenguajes con gran facilidad, como C#, Java, Visual Basic, JavaScript,
PHP, entre otros.

Es muy potente en lo que se refiere a creacin de sistemas complejos, un
lenguaje muy robusto.

Permite elaborar aplicaciones sencillas como un "Hola Mundo!" hasta
sistemas operativos y mucho ms, todo eso dependiendo del manejo del
lenguaje.

Actualmente, puede compilar y ejecutar cdigo de C, ya viene con libreras
para realizar esta labor.

Es un lenguaje muy empleado, existen muchos tutoriales en lnea, libros,
cdigos fuentes abiertos.
.
Existen muchos algoritmos cuyo pseudocdigo se encuentra ya desarrollado
en C++, de manera que puedes tomarlo y amoldarlo a tu solucin (porque el
que veas un fragmento de cdigo no asegura que sea correcto al 100%).
DESVENTAJAS
Uso de DLLs (libreras dinmicas) muy complejo. Java y .Net han
evolucionado estos conceptos manipulando las DLLs mediante los frameworks
que proveen. En cambio, en C++ el desarrollador debe encargarse de cargar y
liberar de memoria estas libreras, y correr los riesgos por el manejo de esta
memoria.
Elaborar un sistema en C++ es como construir un rascacielos: tiene buen
soporte y es robusto, pero si existen errores en los pisos inferiores toda la
parte superior se viene abajo terriblemente.

Manejo de punteros y memoria respecto a ello. Claro, esta tambin es una
gran ventaja porque permite un mejor control de la memoria y una buena
administracin de recursos de computadora, pero la inexperiencia de los
desarrolladores o la prdida de costumbre con este tipo de variables (sobre
todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva
al desastre.
No es recomendable para desarrollo de pginas Web.

Multiplataforma en Unix, Windows, Mac.
MATLAB
QU ES MATLAB?

El nombre de MATLAB proviene de la contraccin de MAtrix LABoratory. Es un
sistema de trabajo interactivo y una herramienta importante para cualquier tarea que
requiera clculos matriciales. Ya sea que involucren ecuaciones, sistemas
caractersticos, mnimos, cuadrados, etc. Y la visualizacin grafica de los mismos. Se
pueden resolver problemas numricos relativamente complejos sin necesidad de
escribir un programa para ellos. Una de las capacidades ms atractivas es la de
realizar una amplia variedad de grficos en dos y tres dimensiones. (Holly Moore,
2007).
ALFABETO
Los caracteres alfanumricos.
o Las cifras:1, 2, .., 9
o Las letras A, B, C,.. , Z y el espacio. (alfabeto ingles)
Los caracteres de puntuacin:
o , coma (o separador decimal)
o ; punto y coma
o . punto
o ( parntesis izquierdo
o ) parntesis derecho
Los caracteres de comparacin:
o > smbolo superior a
o < smbolo inferior a
o = signo igual
Los caracteres aritmticos:
o + signo ms
o signo menos (tambin, guion)
o / barra oblicua (signo de divisin)
o \
o * asterisco
o Apostrofe(de Transpuesta de Matriz)
o ^de Potencia
Cualquier entrada a ejecutar en MATLAB se escribe a la derecha del input del
usuario encabezado con la cadena >> obtenindose la respuesta en las lneas
inmediatamente inferiores.



IDENTIFICADORES

Los objetos que se pueden utilizar en MATLAB han de tener un identificador que es un
conjunto de caracteres. La palabra resultante ha de cumplir ciertos requisitos
*No puede comenzar con un nmero
*No puede coincidir con palabras reservadas como for, if, while, etc.
*No puede contener espacios en blanco (Holly Moore,2007).
Ejemplo:

Correcto Incorrecto
Suma 4Suma
Resultadoif if
Resultado_Matriz Resultado Matriz

PALABRAS RESERVADAS

break case continue If elseif
end for function global otherwise
persistent return switch try while
disp fprintf input

NUMEROS ENTEROS Y FUNCIONES DE VARIABLE ENTERA

CADENA DESCRIPCION
rem(n,m)

Resto de la divisin de n entre m
(funcin vlida para n y m reales)

sign(n)

Signo de n (1 si n>0, -1 si n<0, n real)

max(n1,n2)

Mximo de los nmeros n1 y n2

min(n1,n2)

Mnimo de los nmeros n1 y n2

gcd(n1,n2)

Mximo comn divisor de n1 y n2

lcm(n1,n2)

Mnimo comn mltiplo de n1 y n2

factorial(n)

Factorial de n (n(n-l)(n-2)...1)



FUNCIONES MATEMATICAS ELEMENTALES

sqrt(x) raiz cuadrada sin(x) seno
abs(x) abs(x) mdulo
cos(x) coseno
cos(x) coseno
conj(z) complejo tan(z) tangente
conjugado
real(z) parte real asin(x) arcoseno
imag(z) parte imaginaria acos(x) arcocoseno
angle(z) argumento atan(x) arcotangente
exp(x) exponencial rats(x) aprox. racional
log(x) logaritmo natural rem(x,y) resto de dividir x
por y
log10(x) logaritmo decimal sign(x) signo (1 / -1 / 0)






TIPO DE DATOS

NUMERICOS
int8,int16, int32,int64 Entero de 8,16,32,64 bits con signo.
uint8,uint16,uint32,uint64 Entero de 8,16,32,64 bits sin signo.
single Flotante de Simple precisin.
double Flotante de Doble precisin.
Complejos
i,j Para indicar nmeros complejos.
LOGICO
logical 8 bits valores de 0-1.
CARACTER
char 16 bits Utilizado para almacenar un
carcter.

Por defecto, cuando MATLAB nos muestra un valor real, nos muestra slo cinco
cifras significativas
(Formato corto). Se puede modificar la forma de mostrar los valores mediante el
comando format: (Cesar Perez, 2011)

CADENA RANGO
format short 4 cifras decimales.
format long 16 cifras decimales.
Format long e Ofrece los resultados con 16 decimales
ms la potencia de 10 necesaria.

format short e

Ofrece los resultados con 4 decimales
ms la potencia de 10 necesaria.

format long g

Ofrece los resultados en formato largo
ptimo.

format short g

Ofrece los resultados en formato corto
ptimo


format bank

Ofrece los resultados con 2 cifras
decimales

format rat

Ofrece los resultados en forma de
nmero racional aproximado

format +

Ofrece el signo de los resultados (+, -) e
ignora la parte imaginaria de los
nmeros complejos

format hex

Ofrece los resultados en el sistema
hexadecimal

vpa operaciones n

Ofrece el resultado de las operaciones
con n dgitos decimales exactos


OPERADORES

OPERADORES ARITMETICOS BASICOS
+ Suma
- Resta
* Multiplicacin
()() Multiplicacin
/ Divisin
^ Potencia
OPERADORES ARITMETICOS MATRICIALES
A * B PRODUCTO MATRICIAL
A/B A * B^-1(Matriz A Por la Transpuesta de
La matriz B)
A\B A^-1 * B(La transpuesta de A por la
matriz B)
A^B Potencia de matrices
A Transpuesta(Conjugada)
OPERADORES RELACIONALES
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
== Igual a
~= Distinto de
OPERADORES LOGICOS
~ Negacin Lgica(NOT)
& AND ELEMENTO A ELEMENTO
| OR ELEMENTO A ELEMENTO
&& AND ESCALAR BAGO
|| OR ESCALAR BAGO






CONSTANTES

Existen constantes reales muy tpicas que MATLAB representa como sigue:
CADENA DESCRIPCION
pi

Nmero = 3,1415926

exp(1)

Nmero e = 2,7182818

inf

Infinito (por ejemplo 1/0)

NaN

Indeterminacin (por ejemplo 0/0)

realmin

Menor nmero real positivo utilizable

realmax

Mayor nmero real positivo utilizable

i,j Unidad imaginaria(Raz de -1)










Componentes lxicos, patrones y lexemas

LEXEMA COMPONENTE
LEXICO
TOKEN PATRON
if Palabra
reservada
if ,Palabra reservada Inicia con una i
concatenada a
una f
otherwise Palabra
reservada
otherwise ,Palabra
reservada
Inicia con una
o concatenada
a una t
concatenada a
una h
concatenada a
una e
concatenada a
una r
concatenada a
una w
concatenada a
una i
concatenada a
una s
concatenada a
una e
global Palabra
reservada
global , Palabra reservada Inicia con una
g concatenada
a una l
concatenada a
una o
concatenada a
una b
concatenada a
una a
concatenada a
una l
persistent Palabra
reservada
persistent, Palabra
reservada
Inicia con una
p concatenada
a una e
concatenada a
una r
concatenada a
una s
concatenada a
una i
concatenada a
una s
concatenada a
una t
concatenada a
una e
concatenada a
una n
concatenada a
una t
end Palabra
reservada
end, Palabra reservada Inicia con una
e concatenada
a una n
concatenada a
una d
z Identificador z, Identificador Letra seguida de
cero o ms
letras y/o cero o
ms nmeros
promedio Identificador promedio , Identificador Letra seguida de
cero o ms
letras y/o cero o
ms nmeros
R2T2 Identificador R2T2,Identificador letra seguida de
cero o ms
letras y/o cero o
ms nmeros
Numero_Alum Identificador Numero_Alum,
Identificador
Letra seguida de
cero o ms
letras y/o cero o
ms nmeros
fer123_321 Identificador fer123_321,Identificador Letra seguida de
cero o ms
letras y/o cero o
ms nmeros.
5 numero 5,numero Cualquier literal
numrica.
678 numero 678,numero Cualquier literal
numrica.
2.6716 numero 2.6716,numero Cualquier literal
numrica.
666 numero 666,numero Cualquier literal
numrica.
87654321 numero 87654321,numero Cualquier literal
numrica.
Int8 Tipo_dato Int8,Tipo_dato Inicia con una i
concatenada a
una n
concatenada a
una t
concatenada a
un 8
uint8 Tipo_dato Uint8,Tipo_dato Inicia con una
u concatenada
a una i
concatenada a
una n
concatenada a
una t
concatenada a
un 8
single Tipo_dato single, Tipo_dato Inicia con una
s concatenada
a una i
concatenada a
una n
concatenada a
una g
concatenada a
una l
concatenada a
una e
i Tipo_dato i,Tipo_dato Inicia con una i
+ Operador
aritmtico
+,Operador aritmtico + o o * o / o
o ()
&& Operador lgico &&,Operador lgico && o || o & o | o
~
== Operador
relacional
=,Operador relacional < o > o == o ~=
o <= o >=
~ Operador lgico ~, Operador lgico && o || o & o | o
~

Ventajas
Amplio soporte matemtico.
Alta precisin.
Amplio soporte de funciones ya desarrolladas.
Rpido prototipado.
Integracin con dispositivos hardware.
Una comunidad muy extendida.
Magnfica ayuda.
Desventajas
Gestin oscura de la memoria.
Problemas eventuales de velocidad.
Distribucin de ejecutables.











LENGUAJES PYTHON
QU ES?

Python es un lenguaje de programacin creado por Guido van Rossum a principios
de los aos 90 cuyo nombre est inspirado en el grupo de cmicos ingleses Monty
Python. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que
favorece un cdigo legible. (ngel Luis Garca Garca, Introduccin a python, Pag.
10-22).
Se trata de un lenguaje interpretado o de script, con tipado dinmico, fuertemente
tipado, multiplataforma y orientado a objetos. Lenguaje interpretado o de script.
(ngel Luis Garca Garca, Introduccin a python, Pag. 10-22).
Pero se dice que tambin es un lenguaje interpretado o de script es aquel que se
ejecuta utilizando un programa intermedio llamado intrprete, en lugar de compilar el
cdigo a lenguaje mquina que pueda comprender y ejecutar directa-mente una
computadora (lenguajes compilados). (Eugenia Bahit, Python para principiantes,
Pag.20-27).
ALFABETO

Caracteres alfanumricos:
Caracteres alfabticos en mayscula (26): A, B, C, D, E, F, G, H, I, J, K, L, M, N,
O, P, Q, R, S, T, U, V, W, X, Y, Z.
Caracteres alfabticos en minscula (26): a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r,
s, t, u, v, w, x, y, z.
Caracteres numricos (10): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Carcter de subrayado (1): _
Caracteres especiales (22): = + - * * / ( ) . , $ : % ; ! & < > ,#
IDENTIFICADORES

Un identificador est formado por cualquier sucesin de letras, dgitos y caracteres
de subrayado que no comience por digito, distingue entre maysculas y minsculas,
pueden tener cualquier longitud, no puede coincidir con el nombre de una palabra
reservada, se deben escoger identificadores significativos, es decir que poseen
mayor legibilidad. (Eugenia Bahit, Python para principiantes, Pag.20-27).

Correcto Incorrecto
Radio 2Radio
Ra_Dio Ra Dio
Resultado_Matriz Resultado-Matriz




PALABRAS RESERVADAS
Las palabras reservadas de Python son las siguientes:
False class finally is return
none continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass append
break except in raise print

TIPO DE DATOS

int
Una variable de tipo integer o entero slo puede guardar nmeros enteros. Es decir
sin coma.

float
Una variable de tipo float slo puede almacenar nmeros decimales. Tomar en
cuenta que en Python, los nmeros decimales se escriben con punto en lugar de
coma.

chr
Una variable de tipo character slo puede guardar un carcter. O sea, un smbolo
tipogrfico que puede ser una letra, un nmero, un espacio, una coma, etc.

str
Una variable de tipo string o cadena slo puede almacenar una cadena de
caracteres, pueden ser letras y nmeros, puntos, comas, espacios, etc.

bool
Una variable booleana slo puede guardar uno de los siguientes valores: True o
False (verdadero o falso).

TIPOS DE OPERADORES.

OPERADOR DESCRIPCION EJEMPLO
+ SUMA 3 + 2 # r es 5
- RESTA 4 - 7 # r es -3
* MULTIPLICACION 2 * 6 # r es 12
** EXPONENTE 2 ** 6 # r es 64
/ DIVISION r = 3.5 / 2 # r es 1.75
// DIVISION ENTERA r = 3.5 // 2 # r es 1.0
% MODULO r = 7 % 2 # r es 1
& And r = 3 & 2 # r es 2
| OR r = 3 | 2 # r es 3
~ NOT r = ~3 # r es -4
^ XOR r = 3 ^ 2 # r es 1
<< DESP. A IZQUIERDA r = 3 << 1 # r es 6
>> DESP. A DERECHA r = 3 >> 1 # r es 1
== IGUALDAD r = 5 == 3 # r es False
= ASIGNACION #r=10
< MENOR QUE r = 5 < 3 # r es False
> MAYOR QUE r = 5 > 3 # r es True
>= MAYOR O IGUAL r = 5 >= 3 # r es True
<= MENOR O IGUAL r = 5 <= 5 # r es True





Componentes lxicos, patrones y lexemas

LEXEMA COMPONENTE
LEXICO
TOKEN PATRON
none Palabra
reservada
none ,palabra reservada Inicia con una
n concatenada
a una o
concatenada a
una n
concatenada a
una e
append Palabra
reservada
append, Palabra reservada Inicia con una
a concatenada
a una p
concatenada a
una p
concatenada a
una e
concatenada a
una n
concatenada a
una d
print Palabra
reservada
print , Palabra reservada Inicia con una
p concatenada
a una r
concatenada a
una i
concatenada a
una n
concatenada a
una t
lambda Palabra
reservada
lambda, Palabra reservada Inicia con una l
concatenada a
una a
concatenada a
una m
concatenada a
una b
concatenada a
una d
concatenada a
una a
with Palabra
reservada
with,Palabra reservada Inicia con una
w concatenada
a una i
concatenada a
una t
concatenada a
una h
y Identificador y,identificador letra seguida de
cero o ms
letras y/o cero o
ms nmeros
Radio identificador Radio , identificador letra seguida de
cero o ms
letras y/o cero o
ms nmeros
RaDio identificador RaDio,identificador letra seguida de
cero o ms
letras y/o cero o
ms nmeros
Num1 identificador Num1,identificador letra seguida de
cero o ms
letras y/o cero o
ms nmeros
Cont_alumnos identificador Cont_alumnos,identificador letra seguida de
cero o ms
letras y/o cero o
ms nmeros.
8 numero 8,numero Cualquier literal
numrica.
321 numero 321,numero Cualquier literal
numrica.
3.3333 numero 3.3333,numero Cualquier literal
numrica.
999 numero 999,numero Cualquier literal
numrica.
2000001 numero 2000001,numero Cualquier literal
numrica.
int Tipo_dato int,Tipo_dato Inicia con una i
concatenada a
una n
concatenada a
una t
bool Tipo_dato bool,Tipo_dato Inicia con una
b concatenada
a una o
concatenada a
una o
concatenada a
una l
chr Tipo_dato chr, Tipo_dato Inicia con una
c concatenada
a una h
concatenada a
una r
str Tipo_dato str,Tipo_dato Inicia con una
s concatenada
a una t
concatenada a
una r
+ Operador
aritmtico
+,Operador aritmtico + o o * o / o o
o ** o // o %
** Operador
aritmtico
&&,Operador aritmtico + o o * o / o o
o ** o // o %
== Operador
relacional
=,Operador relacional < o > o == o = o
<= o >=
^ Operador lgico ~, Operador lgico & o | o ^ O ~



VENTAJAS


Posee una sintaxis sencilla: rpido aprendizaje.

Tratamiento de excepciones con nombre.

Extensible a otros sistemas software.

Flexible en el tratamiento del lenguaje: un mdulo que
interactuar con un sistema externo puede ser probado con
una imitacin del sistema escrito en Python.

Es un lenguaje dinmicamente interpretado.

Es orientado a objetos:

Herencia mltiple.

Ligadura dinmica.

Polimorfismo.

Su ncleo es tambin orientado a objetos: jerarqua de
clases.

Portable: est implementado en C estndar usando E/S Posix.

Gratuito, y de libre distribucin.




DESVENTAJAS

Python no pretende ser perfecto para todos los propsitos.
Podemos suponer que la mayora de los programas escritos hoy en da
podran pasarse a Python, pero l slo no sera suficiente
para la cantidad de aplicaciones que estn orientadas a componentes
compilados.
Por ejemplo, no est indicado para las siguientes aplicaciones:
Algoritmos de compresin de datos:
Estos algoritmos traducen un flujo de datos a una forma ms pequea. Esto
implica examinar cada byte, y hacer un tratamiento estadstico.
Para grandes cantidades de datos los compresores escritos en Python
resultan demasiado lentos.
Controladores de dispositivos:
Al igual que antes, una aplicacin que realice millones de operaciones en
punto flotante no uniformes ser demasiado lenta en Python.
Operaciones crticas de bases de datos.
Operaciones altamente especializadas.



















COMPARACION DE LENGUAJES DE ACUERDO EN SU ANALISIS LEXICO
Para poder Comparar justamente los lenguajes, Tenemos dos cosas importante
la velocidad de anlisis ya que de esto depender una buena compilacin, Que lo
que todo usuario quiere es que la compilacin sea rpida y eficaz.
Previamente analizamos las ventajas y desventajas de cada uno ahora las
pondremos en la balanza.

C++ MATLAB PYTHON
ALFABETO Contiene Alrededor de 96
Caracteres Validos.
Contiene alrededor de 106
caracteres vlidos.
Contienes alrededor de
102 caracteres vlidos.
PALABRAS
RESERVADAS
Contienes palabras
reservadas algunas de C y
otras ms de ella misma
Contiene ms funciones
matemticas
Contienes palabras
reservadas similares al
seudocdigo.
IDENTIFICADORES Tienen que empezar con
una letra seguida de cero o
ms letras y/o 0 o ms
nmeros.
Tienen que empezar con
una letra seguida de cero o
ms letras y/o 0 o ms
nmeros.
Tienen que empezar con
una letra seguida de cero o
ms letras y/o 0 o ms
nmeros.
CONSTANTES Contienes constantes
predefinidas que no
cambian durante la
Sus constantes son ms
dadas a los trminos
Se pueden declarar
constantes pero siempre
ejecucin del programa matemticos. usan el #.
TIPOS DE DATOS Contienes los tipos de
datos bsicos como
int,float,doubl,char.
Contienes los tipos de
datos int peros seguidos
del tamao de bits sea 8,
16, 32,64.
Contiene tipos de datos
similares a c++ solo que
con otros nombre por
ejemplo char podemos
encontrarla como chr.
OPERADORES Contienes operadores
aritmticos, relacinales y
lgicos mismo que C y uno
ms que es llamado de bit
a bit
Contiene operadores
aritmticos, relacinales y
lgicos. La diferencia que
puede hacer operaciones
matriciales con ellas
Contienes operadores
aritmticos similares a c++
con la diferencia de la
potencia y algunos
operadores lgicos ,pero
solo cambia el carcter
FORMA DE
TRABAJAR
En c++ puedes crear
clases, objetos funciones ,
pudiendo obtenerlas de
libreras.
En MATLAB se debe
siempre de utilizar << y de
ah colocar el cdigo
En Python tambin puede
crearse funciones El detalle
esencial de Python es su
programacin sencilla.
TOKEN,LEXEMAS,
COMPONENTES
LEXICOS
PATRON
Como se deca c++ trabaja
con alrededor 96 caracteres
y con ellos hacer una serie
de concatenaciones para
formar palabras reservadas,
identificadores,
Constantes, tipo
de datos
En MAT LAB se puede
trabajar con ms caracteres
el detalles es que van ms
englobados a lo que seria
los clculos matemticos y
matriciales
Python igual que
MATLAB maneja un
alfabeto ms amplio y
adems se pueden formar
ms combinaciones, El
detalle con Python es la
velocidad c++ Trabaja en
memoria muchsimo ms
rpido.


COMPARANDO MATLAB CON C++

Dado que MATLAB es tan fcil de usar, muchas tareas de programacin se llevan
a cabo con l. Sin embargo, MATLAB no siempre es la mejor herramienta para usar
en una tarea de programacin. El programa destaca en clculos numricos,
especialmente en los relacionados con matrices y grficas, pero usted no querr
escribir un programa de procesamiento de palabras en MATLAB. C++ y FORTRAN
son programas de propsito general y seran los programas de eleccin para
aplicaciones grandes como los sistemas operativos o el software de diseo. (De
hecho, MATLAB, que es un programa grande de aplicacin, se escribi originalmente
en FORTRAN y despus se rescribi en C, precursor de C++.) Por lo general, los
programas de alto nivel no ofrecen acceso facilita graficacin, que es una aplicacin
en la que destaca MATLAB. El rea principal de interferencia entre MATLAB y los
programas de alto nivel es el procesamiento de nmeros: programas que requieren
clculos repetitivos o el procesamiento de grandes cantidades de datos. Tanto
MATLAB como los programas de alto nivel son buenos en el procesamiento de
nmeros. Por lo general, es ms fcil escribir un programa que procese nmeros en
MATLAB, pero usualmente se ejecutar ms rpido en C++ o FORTRAN.
(Holly Moore, 2007).

Como puede denotarse La misma autora nos afirma que lenguajes de
programacin con c++ nos brinda esa velocidad y eficacia que buscamos para
procesar las cadenas, sin embargo nos dice que en cuanto a operaciones
matemticas o graficas Matlab es tu mejor Opcin.

COMPARANDO PYTHON CON C++
C++ es equivalente a potencia (Bjourne ,1994).
Python es equivalente a sencillez (ngel Luis Garca Garcia, 2007).
Ahora comparando a c++ con el lenguaje Python obtenemos una serie de
caractersticas que si bien estn a favor de c++ no por ello convierten a Python en un
mal lenguaje.
Recordemos pues que c++ y Python
Son orientados a objetos
Son portables
Multiplataforma
El detalle se da en la rapidez , c++ es ms rpido en la compilacin .Mientras que
Python ofrece un lenguaje amigable al programador sin mucha batalla semejante al
seudocdigo, sin duda alguna quizs se batalle algo ms con c++ pero te ofrece un
rapidez y eficiencia mayor que Python.



CONCLUSION

NO HAY LENGUAJES MALOS, SI NO PROGRAMADORES POCO
RESPONSABLES (DesarrolloWeb.com, 2014)

Una frase usada por esta compaa la cual se distingue por apreciar al lenguaje que
no existe ningn lenguaje malo , todo depende del programador hasta que limites
quiere llevarlo.
Esta vez estuvo a discusin tres lenguajes de programacin como c++,matlab y
Python.
Cada uno tienes sus propias caractersticas ventajas y desventajas, pero estamos
realizando un anlisis lxico lo que se ocupa es rapidez y eficacia a la hora de
separar las cadenas y producir los llamados tokens.
Si bien Matlab es bueno en trminos matemticos, Python es bueno en su sencillo
cdigo fcil de aprender, pero c++ nos da lo que necesitamos esa robustez de
separar las cadenas ,eliminar espacios, buscar errores lxicos y obtener lo que
buscamos.





















REFERENCIAS
Bjarne Stroustrup(1994), C++ the Complete References ,c++ fourth Edition
2003, Mc Graw Hill/Osborne.
CRISTIAN GUILLERMO GARCA ,C++ , MONITORIA 2012-3 | Universidad
Distrital francisco Jos de Caldas
Edward B. Magrab,Matlab An engineers to MATLAB : with applications from
mechanical, aerospace,electrical, and civil engineering,Second Edition,2000
by Pearson Prentice Hall
Aho, Sethi, Ullman, Compiladores Principios, tcnicas y herramientas, 2
Edicion 2008.
Addison Wesley.
Dr. Sergio Glvez Rojas y Miguel ngel Mora Mata ,Compiladores
Traductores y
Compiladores con Lex/Yacc, JFlex/Cup y JavaCC, ,
http://www.lcc.uma.es/~galvez/Compiladores.html, 3/nov/2009
Holly Moore ,MATLAB para ingenieros,Pearson Prentice Hall,
1 edicion 2007

Cesar Perez ,Matlab a travez de ejemplos,Garceta Grupo Editorial , 1 Edicion
2011
(Angel Luis Garcia Garcia, Introduccin a python, Pag. 10-22),
(Eugenia Bahit, Python para principiantes, Pag.20-27),
(Raul Gonzales Duque, Python para todos, Pag. 15-26)