04-Lenguajes Actuales de Programación. Características Técnicas
04-Lenguajes Actuales de Programación. Características Técnicas
04-Lenguajes Actuales de Programación. Características Técnicas
Caractersticas
tcnicas.
Gramtica
Compilacin
Anlisis
o Lxico
o Sintctico
o Semntico
Sntesis
o Generacin cdigo objeto
o Generacin de cdigo intermedio, para evitar la dependencia
del HW y SO de la compilacin (virtualizacin)
Primera pasada: fuente a la abstraccin
Segunda pasada: abstraccin al detalle
Optimizacin: mejorar el cdigo intermedio, de modo que resulte un
cdigo mquina ms rpido de ejecutar
Enlazado: se enlaza el cdigo de bajo nivel generado de todos los ficheros
y subprogramas que se han mandado compilar y se aade el cdigo de las
funciones que hay en las bibliotecas del compilador para que el ejecutable
pueda comunicarse directamente con el sistema operativo.
Portabilidad
Dependencia del HW y SO
Para pasar a otra mquina necesito compilar el cdigo fuente
Especializacin
Propsito general
o APIs del lenguaje resuelven la mayor parte de los problemas:
Visual Basic (Basic), Delphi (Pascal), C++ (C), Java, C#
Propsito especfico
o Gestin: COBOL (Cobol .NET), RPG, PL1, SQL
o Cientfico: Fortran, MathLab, R (estadstico o big data)
o Inteligencia artificial o sistemas expertos: Lisp (funcional),
Prolog (lgico)
o Aplicaciones Web: PHP, Perl, Python, JavaScript, Vb script ->
siguen el modelo de traduccin por interprete, adems el
navegador web tiene un parser
Paradigmas de programacin
Representa un enfoque particular o filosofa para disear soluciones
Normas y procedimientos que indican la forma de organizar las tareas de
un programa compartidas por un conjunto de lenguajes de programacin
Actualmente, el paradigma de programacin ms utilizado es el paradigma
de la programacin orientada a objetos.
En general la mayora son variantes de los dos tipos principales, imperativa
y declarativa:
Al nivel mquina: lenguaje mquina y ensamblador
o Ejecutivas: sumas, desplazamientos, XOR
o De control: salto incondicional (goto) y condicional
o De E/S
Paradigma imperativo o por procedimientos (cmo?): modular
(mxima cohesin y mnimo acoplamiento) y estructurada (se
desaprueba el uso de goto). Es el ms usado en general, se basa en
dar instrucciones al ordenador de como hacer las cosas en forma de
algoritmos. La programacin imperativa es la ms usada y la ms
antigua,ejemplos de lenguajes puros de este paradigma seran el
Fortran, COBOL, C, ADA, BASIC o Pascal, pero tambin Eiffel, Java, C+
+, C#, Python
Abstracta
Encapsular (interface)
Operadores de alcance
Polimorfismo y sobrecarga
Herencia mltiple
o
o
ALGORITMO
Conjunto de acciones o secuencia de operaciones que ejecutadas en un
determinado orden resuelven el problema
PSEUDOCODIGO -> lenguaje natural
DIAGRAMA DE FLUJO U ORDINOGRAMA
INSTRUCCIN
Tarea elemental
PROGRAMA
Conjunto de instrucciones -> E + (declaracin variables instrucciones) + S
LENGUAJE DE PROGRAMACION
Conjunto de normas que permiten escribir un programa
SUBRUTINA O SUBPROGRAMA
Fragmento de programa que resuelve un subproblema
FUNCION -> subprograma de n entradas y 1 salida
PROCEDIMIENTO -> subprograma de n entradas y n salidas
COMPILADOR
Traductor lenguaje alto nivel -> programa objeto en cdigo mquina
INTERPRETE
Traductor que realiza la compilacin paso a paso (no genera cdigo
intermedio)
LENGUAJES MAQUINA (binario puro Ejecutivas, de control y de E/S)
LENGUAJES SIMBOLICOS
ENSAMBLADOR -> cada instruccin lenguaje maquina un nombre
nemotcnico
LENGUAJES DE ALTO NIVEL (LAN)
LENGUAJES ORIENTADOS A OBJETOS (LOOS)
Clase
Objetos
Tipos abstractos de datos (TDA) o encapsulacin
Polimorfismo/Sobrecarga
Herencia
Enlace dinmico
Tipos de LOOS
LENGUAJE MULTIPLATAFORMA (Java, C#, Python)
LENGUAJES DE CUARTA GENERACION: SQL (4GL)
DDL
DML
DCL