Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matricula: 1752511
Carrera: IMA
Semestre: Agosto-Diciembre
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el
comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de
reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos,
respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático
como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a
los lenguajes de programación y a otros más, como, por ejemplo, el HTML.
-Lenguajes imperativos;
-Lenguajes funcionales.
Características.
Interpretación y Compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías: lenguajes
interpretados y lenguajes compilados.
Lenguaje Interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe
traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje
interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los
programas según sea necesario.
Lenguaje Compilado
Un programa escrito en un lenguaje compilado se traduce a través de un programa anexo
llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún
otro programa para ejecutarse a sí mismo.
Este archivo se llama ejecutable.
Lenguaje interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe
traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje
interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los
programas según sea necesario.
Orientado a objetos
Parte del éxito de los lenguajes orientado a objetos se debe a conceptos como la herencia que es
una forma de reutilizar el código de la clase de la que se hereda, el polimorfismo con la que un
mismo método puede estar implementado de diferente forma en función de la clase que lo
implementa en la jerarquía de clases construida con la herencia.
Tipado estático
En un lenguaje de tipado estático las comprobaciones de tipos se realizan en tiempo de
compilación (C, C++, Java). Los tipos pueden ser declarados de forma explícita o de forma inferida
según el análisis del código fuente que realiza el compilador. Wikipedia.
Tipado dinámico
Por el contrario el tipado dinámico comprueba los tipos en el momento de ejecución del programa
(PHP, Python, Groovy, JavaScript). A esos lenguajes se les conoce como lenguajes dinámicos.
Wikipedia.
Inferencia de tipos
En base al análisis del código fuente se puede inferir el tipo de las variables evitando que el
programador los declare explícitamente continuamente. Wkipedia.
Closures y Lambdas
Un closure es una referencia a una función que puede referenciar las variables del contexto en el
que está definida. Una lambda es simplemente una referencia a una función anónima. En Java las
lambdas puede referenciar variables declaradas como final, esto es, sean constantes. Wikipedia.
Currying
La currificación consiste en transformar una función con al menos dos argumentos en una función
con al menos un argumento menos. Wikpedia.
Duck typing
Este concepto es usado en los lenguajes de tipado dinámico tratando a las variables no por su tipo
o herencia sino en base a las propiedades y métodos que soporta (Python, PHP, Groovy,
JavaScript). Wikipedia.
Named arguments
Cuando invocamos un método con argumentos, los argumentos se asignan a los parámetros de la
función según el orden en que son declarados. Los named arguments permiten asignar los
argumentos a los parámetros de la función por sus nombres. Wikipedia.
Destructuring assignment
La asignación desestructurada permite extraer datos de arrays y objetos usando una sintaxis
réplica de la construcción de arrays y literales de objetos. MDN.
Tuples
Las tuplas son una estructura de datos formada por varios tipos, en Java 8 puede usarse la librería
vavr que añade esto y otras funcionalidades interesantes. En algunos lenguajes puede combinarse
con la asignación desestructurada. Ceylon Tuples.
Alto nivel.
Ventajas:
Genera un código más sencillo y comprensible.
Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.
Desventajas:
Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.
Algunos requieren que la máquina cliente posea una determinada plataforma.
Bajo nivel.
Ventajas:
Los lenguajes ensambladores presentan la ventaja frente a los lenguajes máquina de su mayor
facilidad de codificación y, en general, su velocidad de cálculo.
Desventajas:
Dependencia total de la máquina lo que impide la transportabilidad de los programas. El lenguaje
ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh.
C++: está basado en lenguaje C y extiende sus aplicaciones debido a que incluye mecanismos
para trabajar con objetos.
C#: orientado a objetos, desarrollado por Microsoft como parte de la plataforma .NET.
PHP: de uso general, aunque orientado al desarrollo web con contenido dinámico. Corre en el lado
del servidor. Es considerado como uno de los lenguajes más flexibles, potentes y de alto
rendimiento.
Visual Basic .NET: orientado a objetos, es una evolución de Visual Basic, pero implemetado sobre
el framework .NET.
Javascript: se conoce también como JS. Está orientado a objetos, es de tipo interpretado y
proviene del estándar ECMAScript. Históricamente ha sido usado para implementar funciones en el
lado del cliente.
Perl: es un lenguaje interpretado, el cual toma características de C, sh, awk, sed y Lisp. Se
considera como flexible y con herramientas valiosas para la edición de texto desde la terminal.
CONLUCIONES
En conclusión creo que los lenguajes de programación son de mucha utilidad ya que te ayudan a
pensar como si tú fueras la computadora y además de eso generan un código mas eficaz y más
sencillo. Ayudan mucho para diferentes procesos de la computadora dependiendo de que tarea
estés buscando hacer o que quieras aprender los diferentes tipos de programación tales como
aparecen en la tabla aparecen explicados cada uno de ellos y para lo que sirven y ayudan en sus
diferentes áreas de programación.
https://www.tecnoinver.cl/los-10-lenguajes-de-programacion-mas-usados/
https://es.ccm.net/contents/304-lenguajes-de-programacion
http://conogasi.org/articulos/lenguaje-de-programacion/
https://picodotdev.github.io/blog-bitix/2015/10/caracteristicas-de-los-lenguajes-de-programacion/
https://www.caracteristicass.de/lenguajes-de-programacion/