Documentos de Académico
Documentos de Profesional
Documentos de Cultura
04 Lenguajes Actuales de Programacion Caracteristicas Tecnicas
04 Lenguajes Actuales de Programacion Caracteristicas Tecnicas
Características
técnicas.
Gramática
Compilación
Análisis
o Léxico
o Sintáctico
o Semántico
Síntesis
o Generación código objeto
o Generación de código intermedio, para evitar la dependencia
del HW y SO de la compilación (virtualización)
Primera pasada: fuente a la abstracción
Segunda pasada: abstracción al detalle
Optimización: mejorar el código intermedio, de modo que resulte un
código máquina más rápido de ejecutar
1
Lenguajes de alto nivel
o Instrucciones que representan la lógica del problema
Programación estructurada utiliza las estructuras básicas
de programación: secuencial + condicional + iterativa
o Estructuras de datos
Portabilidad
Dependencia del HW y SO
Para pasar a otra máquina necesito compilar el código fuente
Especialización
Propósito general
o APIs del lenguaje resuelven la mayor parte de los problemas:
Visual Basic (Basic), Delphi (Pascal), C++ (C), Java, C#
Propósito específico
o Gestión: COBOL (Cobol .NET), RPG, PL1, SQL
o Científico: Fortran, MathLab, R (estadístico o big data)
o Inteligencia artificial o sistemas expertos: Lisp (funcional),
Prolog (lógico)
o Aplicaciones Web: PHP, Perl, Python, JavaScript, Vb script ->
siguen el modelo de traducción por interprete, además el
navegador web tiene un parser
Paradigmas de programación
“Representa un enfoque particular o filosofía para diseñar soluciones”
“Normas y procedimientos que indican la forma de organizar las tareas de
un programa compartidas por un conjunto de lenguajes de programación”
Actualmente, el paradigma de programación más utilizado es el paradigma
de la programación orientada a objetos.
En general la mayoría son variantes de los dos tipos principales, imperativa
y declarativa:
Al nivel máquina: lenguaje máquina y ensamblador
o Ejecutivas: sumas, desplazamientos, XOR
o De control: salto incondicional (goto) y condicional
o De E/S
Paradigma imperativo o por procedimientos (¿cómo?): modular
(máxima cohesión y mínimo acoplamiento) y estructurada (se
desaprueba el uso de goto). Es el más usado en general, se basa en
dar instrucciones al ordenador de como hacer las cosas en forma de
algoritmos. La programación imperativa es la más usada y la más
antigua,ejemplos de lenguajes puros de este paradigma serían el
Fortran, COBOL, C, ADA, BASIC o Pascal, pero también Eiffel, Java, C+
+, C#, Python
2
o Programación lógica: basado en la definición de relaciones
lógicas, está representado por Prolog.
Abstracta
Encapsular (interface)
Operadores de alcance
3
Static: no sirve para crear constantes, sino para
crear miembros que pertenecen a la clase, y no a
una instancia de la clase. No es necesario crear un
objeto de la clase para poder acceder a estos
atributos y métodos. Este es el motivo por el cual
es obligatorio que main se declare como static; de
esta forma no tenemos que ofrecer un constructor
vacío para la clase que contiene el método, o
indicar de alguna forma a la máquina virtual cómo
instanciar la clase. Un uso del modificador static
sería, por ejemplo, crear un contador de los
objetos de la clase que se han creado,
incrementando la variable estática en el
constructor.
4
modificador sobre los atributos de los objetos para
indicar al compilador que es posible que dicho
atributo vaya a ser modificado por varios threads
de forma simultanea y asíncrona, y que no
queremos guardar una copia local del valor para
cada thread a modo de caché, sino que queremos
que los valores de todos los threads estén
sincronizados en todo momento, asegurando así
la visibilidad del valor actualizado a costa de un
pequeño impacto en el rendimiento. Volatile es
más simple y más sencillo que synchronized, lo
que implica también un mejor rendimiento. Sin
embargo volatile, a diferencia de synchronized, no
proporciona atomicidad, lo que puede hacer que
sea más complicado de utilizar.
o Polimorfismo y sobrecarga
5
Sobrecarga (@Override), especialización de métodos,
cuando en na clase existen dos métodos con idéntico
nombre pero con distintos parámetros.
o Herencia múltiple
6
o PHP: Imperativo, orientado a objetos, funcional y reflexivo
7
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
INSTRUCCIÓN
Tarea elemental
PROGRAMA
Conjunto de instrucciones -> E + (declaración 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 código máquina
INTERPRETE
Traductor que realiza la compilación paso a paso (no genera código
intermedio)
LENGUAJES MAQUINA (binario puro – Ejecutivas, de control y de E/S)
LENGUAJES SIMBOLICOS
ENSAMBLADOR -> cada instrucción lenguaje maquina un nombre
nemotécnico
LENGUAJES DE ALTO NIVEL (LAN)
LENGUAJES ORIENTADOS A OBJETOS (LOOS)
Clase
Objetos
Tipos abstractos de datos (TDA) o encapsulación
Polimorfismo/Sobrecarga
Herencia
Enlace dinámico
Tipos de LOOS
LENGUAJE MULTIPLATAFORMA (Java, C#, Python)
LENGUAJES DE CUARTA GENERACION: SQL (4GL)
DDL
DML
DCL