lenguajes de programación parte i.4
DESCRIPTION
UpMor - Parte IV - Conceptos y Generalidades Lenguajes de Programación.TRANSCRIPT
Las principales categorías de software son:◦ Software de sistemas (incluye a los sistemas operativos y sus
herramientas de mantenimiento): Hace funcionar a la computadora, de acuerdo al hardware existente.◦ Lenguajes de programación-Lenguaje artificial que puede ser
usado para controlar el comportamiento de una máquina, especialmente una computadora. Estos se componen de un conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán interpretadas.◦ Software de aplicaciones: Programas orientados a realizar
tareas específicas (editar documentos, crear gráficas, manejar bases de datos, etc.). ◦ Plataformas (Windows, Mac OS, Unix, etc.).
Software
Definición de LenguajesDefinición de Lenguajes
A fin de interpretar necesidades y transcribirlas a las computadoras existen lenguajes que permiten describir los pasos con mayor o menor detalle.
Clasificación de los lenguajes (desde el punto de vista de este curso): Lenguaje de programación.
Lenguaje máquina. Lenguaje bajo. Lenguaje de alto nivel.
Lenguaje de Algoritmo.
Lenguaje de diagrama de flujo.
Conjunto de palabras, símbolos y reglas sintácticas mediante las cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.
Los lenguajes de programación pueden clasificarse por diversos, siendo el más común su nivel de semejanza con el lenguaje natural y su capacidad de manejo de niveles internos de la máquina.
Estos lenguajes se clasifican en 3 grandes categorías:
◦ Lenguaje Máquina.◦ Lenguaje Bajo Nivel.◦ Lenguaje Alto Nivel.
Son aquellos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sis instrucciones son cadenas binarias(cadenas y series en digitos de 0,1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones o código de máquina (código binario).
Ventajas: Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de
traducirlo, lo que lo hace más rápido de ejcutarse, superior a cualquier otro lenguaje de programación.
Deventajas: Dependen del hardware de la computadora y por lo tanto difiere su
ejecución en una computador a y otra. Dificultad y lentitud en la codificación. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas.
Son más accesibles que los lenguajes de máquina, pero dependen de la computadora también El lenguaje por excelencia de bajo nivel es el ensamblador. Las instrucciones en lenguaje ensamblador se conocen como nemotécnicos. Por ejemplo nemotécnicos típicos de operaciones aritméticas son en Inglés: Add Sub, Div, etc (Sum, Res, Div, Etc). ADD M N P.Esta instrucción signifca sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P, lo anterior en código binario se interpretaría en Código Binario como 01 10 1001 1010 1011.
Un programa en lenguaje ensamblador requiere traducirse (source code) para poder ejecutarse directamente por la computadora. Un programa traducido en lenguaje máquina se conoce como object code.Ventajas: Mayor facilidad de codificación y en general su velocidad de cálculo.Desventajas: Dependencia total de la máquina lo que impide su transportabilidad (appel-Pc). El nivel de conocimiento del programador deberá ser de alto a nivel de Hardware. Sus aplicaciones son reducidas se centran a app en tiempo real, control de procesos y de dispositivos electrónicos.
Lenaguaje Ensamblador
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular) por lo que estos programas son portables on transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferente tipo de computadoras.
Ventajas: ◦ Tiempo de formación de los progrmadores es relativamente corto en su
aprendizaje comparado con los otros lenguajes.◦ Las reglas sintácticas son similares al lenguaje humano Read, Open, Print,
Write, etc.◦ Las modifcaciones e instalaciones son más fáciles.◦ Reducción del costo◦ Transportabilidad-.
Desventajas: ◦ Incremento del tiempo de puesta a punto ya que requiere de interpretes,
traducciones, compilaciones del programa fuente antes de instalarse.◦ No se aprovechgan los recursos internos de la máquina.◦ Aumento de la ocupación de memoria y son más lentos en ejecución.
Historia de lenguajes
Simulation Software for Future Programming Community Berkley
Herramientas de lenguajes
VisualStudio
Eclipse
Tendencias de lenguajes
Sellos Biométricos (algoritmos)
Pasaporte
Código de barraFacturación
Retina-Huella
Lector USB
Tabla 1. Identificadores (expresión regular)
[a-zA-Z][a-zA-Z0-9]* PL/I, Smalltalk
[_a-zA-Z][_a-zA-Z0-9]*C, C#, C++, Perl, PHP,
Python[_a-zA-Z$][_a-zA-Z0-9$]* Java, JavaScript
[^0-9\s]\S* Lisp, Scheme
[_a-zA-Z][_a-zA-Z0-9]* Variables de Ruby[_a-zA-Z][_a-zA-
Z0-9]*[!?]?Funciones de Ruby
[_A-Z][_a-zA-Z0-9]* Variables de Prolog
[_a-z][_a-zA-Z0-9]* Claúsulas de Prolog
Estructura de lenguages
Tabla 2. Declaración de Variables
t vC, C#, C++, Java,
Perl6v: t Pascal, Ada, Eiffel
| v1 v2 | Samlltalk(declare (v
t))Lisp
global v1, v2 Python
var v JavaScript
define Dylan, Scheme
Tabla 3. Operación de Asignación
=Basic, Fortran, C, C#, C++, Java, JavaScript, Perl, PHP, PHYTON
:=Pascal, Ada, Simula, Smalltalk, Eiffel,
Dylan
make "v e
Logo
set setq
Lisp
set! Scheme
is Prolog
Tabla 4. Operadores igualdad y desigualdad
== === != !== JavaScript, PHP
== !=C, C#, C++, Java, Perl, Python,
Ruby= <> Basic, Pascal, Logo
= == ~~ ~= Smalltalk
== \== Prolog
eq eqv eql ne Lisp Scheme
is_equal Eiffel
.EQ. .NE. Fortran
Tabla 5. Operadores igualdad y desigualdad
{ .. }C, C#, C++, Java, Perl,
PHP, JavaScript
begin .. end Ada, Pascal
foo .. end where foo in { if, do, ..} Ruby, Eiffel
sangrías Phyton
[ x y .. ] Smalltalk
[ .. ] Logo
Tabla 6. if-then
if (c) bC, C#, C++, Java, JavaScript,
PHPif c then b end Ada, Eiffel, Ruby
if c then b Basic, Pascal
if c: b Python
b if c ♦ c and b Perl, Ruby
if c [b] Logoc ifTrue:b ♦ c
ifFalse:bSmalltalk
if (c): b endif PHP
c if b then Forth
(if c b) Lisp, Scheme
Tabla 7. Llamadas a funciones sin/con parámetros
f() ♦ f(a,b)C, C#, C++, Java,
JavaScript,Perl, PHP, Python
f ♦ f(a,b) Ada, Pascal, Eiffel, Prolog
f f[] f.callf(a,b) f[a,b] f.call(a,b) Ruby
f ♦ f(a,b) f a,b Perl
(f) ♦ (f a b) Lisp Scheme
f value ♦ a f:b Smalltalk
CALL F ♦ CALL F(A,B) Fortran
f ♦ a b f Forth
http://expo.itch.edu.mx/view.php?f=prog_14
Tipos de datos
Dato: Expresión general que describe los objetos con los cuales opera una computadora. Los datos de entrada son transformados por el programa, se procesan y generan información.
Clasificación de datos:
• Numéricos• Lógicos• Cadenas
Tipos de datos
Dato: Expresión general que describe los objetos con los cuales opera una computadora. Los datos de entrada son transformados por el programa, se procesan y generan información.
Clasificación de datos:
• Numéricos• Lógicos• Cadenas
Datos Numéricos
Son aquellos que representan una cantidad o valor determinado. Se pueden representar a través de diferentes formatos (enteros, punto y fracciones decimales).
Se clasifican en :
• Tipo Numéricos Entero (integer).• Tipo Numérico Real (real).
Enteros
Conjunto finito de los números enteros. Los enteros son números completos, no tienen componentes fraccionarios o decimales; pueden ser negativos o positivos.
Ejemplo: 5,6,,-10,-10
Datos Numéricos/CadenasReales
Utilizan siempre un punto decinmal y pueden ser negativos o positivos, consiste en un número enterio y una fracción decimal.
Ejemplo: 0.3461, 0.32 8.1 -1.32
Cadenas
Son datos que representan información textual, frases, símbolos, etc. No representan valor alguno para efectos numéricos, se delimitan con apóstrofes o comillas.
Se caslifican en• Tipo Character • Tipo String.
Tipo CharacterConjunto finito y ordenado de caracteres que la computadora reconoce (Ascii).
Se calsifican en:• Caracteres Alfabético (D,E, F,…..m,n..z)• Caracteres Numéricos (1,2,3…0,9)• Caracteres Especiales (+, -, *, <, @)
Datos Numéricos/CadenasTipo String
Sucesión de caracteres que se encuentran delimitados por una comilla o apóstrofe o bien, doble comilla según el tipo de lenguaje de programación. La longitud de una cadena de caracteres se delimita por los separadores mencionados.
Ejemplo:“Hola Mundo Hola”, “Calle 10 de Abril”, “1965”
Denominados Boleanos, son datos que pueden adquirir uno de dos valores: Falso-Veradero.
Representan alternativas (si/no), True-False a determinadas condiciones. Ejemplo se pide un valor primos, la respuesta será Verdadera o falsa.
Lógicos
Se calsifican en:• Simples• Compuestos
Simples No poseen una estructura compleja
Compuestos: Tienen estructuras predeterminadas.
• Subrango: Aquellos en los que se especifica con precisión el intervalo de valores válidos para un dato (0…100…”A…Z”), Valores reales no entran en esta clasificación, su intervalo no esta definido.
• Enumerativos: Son aquellos en los que se definen individualmente los valores para un dato.Ejemplo: (10,40, 60, 60) • Definidos por el usuario:Definidos por el usuario/programador para satisfacer necesidades del programa.
Clasificación tipo de datos
Se calsifican en:• Simples• Compuestos
Constante: Son aquellas que no cambian de valor durante la ejecución de un prgrama. Se representa en la forma descrita en cada tipo de datos.
Variables: Son áquellos que pueden modificar su valor durante la ejecución de un programa en la forma descrita en cada tipo de datos.
Constantes y valores