Lenguajes de Programación

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 13

REPÚBLICA BOLIVARIANA DE VENEZUELA

UNIVERSIDAD SANTA MARÍA


26 de marzo del 2022

Lenguaje de Programación

Falta terminar el índice y poner numero a las hojas

Profesor: José Gregorio Ramirez


Alumna: Keinny Villegas
CI. 29590934
5to semestre
Índice.

 Introducción
 Fundamentos del lenguaje de programación
 Características de un lenguaje.
Eficiencia u optimizabilidad
Simplicidad
Expresividad
Capacidad de restricción
Extensibilidad
Interoperabilidad
Otras características
 Paradigmas de programación y sus diferencias
 Lenguaje imperativo, funcional, declarativo o lógico y orientado a objetos
 Ambientes de programación.
 Descripción de los lenguajes: Sintaxis, semántica, programática y gramática.
 Notación BNF: Diagramas sintácticos.
 Procesadores de lenguaje.
 Máquinas virtuales.
 Interpretadores.
 Compiladores.
 Lenguaje de alto nivel
 Conclusión
 Bibliografía
Introducción

El lenguaje es nuestro principal medio de comunicación y es el que permite que


interactuemos entre humanos, así ha sido siempre. Entonces, cuando hablamos de lenguaje de
programación, en palabras simples, nos referimos al conjunto de instrucciones a través del
cual los humanos interactúan con las computadoras a través de algoritmos e instrucciones
escritas en una sintaxis que la computadora entiende e interpreta en lenguaje de máquina.
El estudio de los lenguajes de programación, es llamado a veces lingüística de la
programación, por analogía con la lingüística de los lenguajes naturales. La analogía se basa
en el hecho en que ambos; lenguajes naturales y lenguajes de programación, poseen sintaxis
(forma) y semántica (significado). Por otro lado, un lenguaje natural no es más ni menos que
un grupo de personas que hablan y escriben, así que la lingüística natural está restringida al
análisis de los lenguajes existentes; mientras que los lenguajes de programación son
concienzudamente diseñados y se pueden implementar en computadoras.
Así, en este trabajo estaremos profundizando sobre los fundamentos, tipos y las
características de los lenguajes de programación, entre otros factores
Fundamentos del lenguaje de programación.

El lenguaje de programación es la principal herramienta que utilizamos para la


creación de programas; Para esta, debemos conocer los elementos del lenguaje a emplear y
sus normas de utilización. Lo primero que debemos saber es que la computadora es una
maquina eléctrica que solo entiende código binario (0 y 1),
El código del ordenador se basa en asignar a cada carácter (letra, signo, numero,
etc) una combinación mediante un código que se llama ASCII. Por eso los lenguajes de
programación se dividen en dos tipos diferentes dependiendo de su cercanía al lenguaje
del ordenador: de alto nivel y de bajo nivel.

Características

Estas características se conocen como prioridades a la hora de diseñar un lenguaje,


de construir el compilador que traduce o interpreta el código fuente.

 Eficiencia u optimizabilidad: Es la facilidad con la que se genera el código ejecutable


eficientemente. Es decir, la eficiencia de un lenguaje no solo se basa en la facilidad
con la que este genera un código, sino en que también se ejecute correctamente

 Simplicidad: Se refiere a la cantidad de estructuras o conceptos que están disponibles


en un lenguaje para construir los programas. Es decir, un lenguaje es simple si tiene la
menor cantidad de constructores.

La simplicidad de un lenguaje debe ser visto desde dos puntos de vista el sintáctico y
el sistemático:
1. Semántico: Según la cantidad de conceptos.
2. Sintáctico: Proporciona un código fácil por la legibilidad de su sintaxis.

Un lenguaje con pocos constructores es simple. Sin embargo, debemos tener en


cuenta que el hecho de que un lenguaje de programación sea demasiado simple hace
más compleja la tarea de utilizarlo; Puede que falte alguno de los constructores más
importantes como es el caso de los bloques y las declaraciones, dificultando el uso de
algunos programas más complejos.
Además, cuando existe demasiada simplicidad en un lenguaje se hace poco segura
y legible, además su utilización se dificulta, le falta expresividad y se haya sujeto a
múltiples restricciones por el hecho de tener menos constructores.
 Expresividad: Es aquella que nos permite representar procesos y estructuras
complejos. Es esta característica encontramos por ejemplo la recursividad,
lenguajes orientados a objetos, datos de tamaño variable.

En otras palabras, la expresividad se define como la facilidad que presenta un


lenguaje, por ejemplo, para hacer un cambio de datos de manera arbitraria durante
una ejecución; En ocasiones se considera concisa pudiendo comprometer su
legibilidad.

 Capacidad de restricción: Una característica muy presente en los lenguajes de


programación que permite al programador resolver el problema que se esté dando,
sin la necesidad de utilizar muchos constructores.

Por ello, la capacidad de restricción de un lenguaje de programación se define


como la facilidad del programador que le permite centrarse en un mínimo
subconjunto de conceptos para que se dé la solución necesaria.

Es decir, un lenguaje tiene capacidad de restricción si un programador puede


centrarse en un subconjunto mínimo de conceptos del lenguaje para ser posible que
construya la solución que necesita.

Esto facilita el desarrollo incremental de los lenguajes, así se van añadiendo


nuevas funcionalidades sin que sea necesario utilizarlas. Con esto entra en juego la
eficiencia del lenguaje, porque no usar ciertas funcionalidades, aunque estén
disponibles, no debe resultar en programas que se ejecuten más lentamente.

 Extensibilidad: Es la capacidad de poder añadir nuevas características al lenguaje,


como librerías, sobrecarga de operadores, nuevos operadores o modularidad. Esta
modularidad desemboca en la escalabilidad de los proyectos, con los que la
ampliación y/o reutilización de códigos fuentes se facilite.

 Interoperabilidad: Se refiere a la propiedad que tienen los programas de interactuar


entre sí. Deben proveer de mecanismos de intercomunicación entre sí, de forma que
no haga falta una comunicación previa para intercambiar información.
También se puede dar interoperabilidad a nivel de lenguaje dentro de un
programa. En este caso podemos encontrar cómo usamos SQL dentro de otros
programas. También encontramos cómo Scala se compila a bitecode compatible
con la Máquina Virtual de Java, pudiendo usar cualquier librería programada en
Java. A menudo hay soluciones en las que se combinan varios lenguajes de
programación en un mismo programa.
En resumen, es la propiedad de interacción que tienen los programas entre sí,
proveyendo mecanismos de intercomunicación que faciliten la comunicación entre
estos.
Entre otras características poco mencionadas convencionalmente, encontramos:

 Uso de las convenciones y notaciones estandarizadas: Los lenguajes deben utilizar


notaciones y convenciones estandarizadas. Por ejemplo, el uso de operadores
aritméticos básicos, estructuras de control if-else, while, for, etc. Este uso repercute
directamente en hacer más fácil la migración desde otros lenguajes, ocurren menos
errores, es más eficiente en la programación.

 Precisión: Los lenguajes son precisos en su interpretación, es decir, se deben


comportar siempre tal y como se espera que se comporten. Esta precisión repercute en
que sean predecibles, y a su vez, influye en la portabilidad, ya que facilita la creación
de traductores.

 Portabilidad: Es la posibilidad de construir programas independientes de la máquina


donde se ejecuten. Es muy interesante en este punto notar que los lenguajes que se
ejecutan sobre máquinas virtuales son totalmente portables: Java, Scala, PHP, etc.

 Seguridad: Se refiere a la predicción de errores en el código fuente, evitándolos. Para


hacer más seguros los lenguajes de programación se compromete en cierta medida la
expresividad de estos. El tipado de variables debe ser estricto, y su verificación.

Paradigmas de programación
Los paradigmas de programación solo son propuestas tecnológicas adoptadas por los
desarrolladores que se enfocan a resolver uno o varios problemas definidos y delimitados.

Lenguaje Imperativo o por procedimientos: Es el paradigma de programación más


antiguo. De acuerdo con este paradigma, un programa consiste en una secuencia
claramente definida de instrucciones para un ordenador. El código fuente de los lenguajes
imperativos encadena instrucciones una detrás de otra que determinan lo que debe hacer el
ordenador en cada momento para alcanzar un resultado deseado.
En otras palabras, se considera que la programación imperativa es la programación
natural para las CPU que lo emplean al nivel más básico.
El paradigma imperativo aún tiene cierto dominio en la actualidad. Una buena parte
del software actual ha sido desarrollado y escrito en lenguajes imperativos. La gran
mayoría de programadores profesionales son principalmente o exclusivamente
programadores imperativos

Lenguaje Funcional: Es un conjunto de funciones matemáticas que convierten unas


entradas en unas salidas, sin ningún estado interno y ningún efecto lateral.
Declarativo o lógico: Es una variedad de lo que se conoce como programación
declarativa, opuesto a prácticamente todos los lenguajes de programación populares, desde
ensamblador a Python pasando por Basic, C o Java.
En la programación declarativa detallamos la solución del problema en lugar de
describir cómo llegamos a dicha solución. Se describe la lógica de computación necesaria
para resolver un problema sin describir ningún flujo de control

Orientado a objetos: El paradigma orientado a objetos, se basa en los conceptos de


objetos y clases de objetos. Un objeto es una variable equipada con un conjunto de
operaciones que le pertenecen o están definidas para ellos. El paradigma orientado a
objetos actualmente es el paradigma más popular y día a día los programadores,
estudiantes y profesionales tratan de tomar algún curso que tenga que ver con este
paradigma, podría decirse, que programar orientado a objetos está de moda.

Ambientes de programación

Un entorno de programación es un programa o conjunto de programas que engloban


todas las tareas necesarias para el desarrollo de un programa o aplicación. Estas tareas son
básicamente las siguientes: edición del programa, compilación y enlazado, ejecución y
depuración.

Descripción de los lenguajes

Para utilizar un lenguaje de programación, de manera efectiva, debemos estudiarlo y


comprenderlo desde varias perspectivas:

Sintaxis: La sintaxis es la estructura de una declaración en un lenguaje de


programación. Si por ejemplo te preguntas “¿Es difícil la sintaxis de C?“ básicamente te
estarías preguntando si aprender a programar en C es difícil. Por lo general, cuando
pensamos en la sintaxis queremos decir algo que el compilador puede verificar
estáticamente.
En resumen, se refiere al conjunto de símbolos y reglas para formar sentencias y está
relacionada con la forma de los programas, por ejemplo, como es que las expresiones,
comandos, declaraciones, etc. son puestos juntos en un programa.

Semántica: Por otro lado, la semántica trata sobre el significado de la instrucción.


Responde a las preguntas: ¿es válida esta instrucción? Si es así, ¿qué significa la
instrucción? ¿Qué queremos lograr con la instrucción?
Básicamente se trata de las reglas para transformar sentencias en instrucciones lógicas y
está relacionada con el significado de los programas; por ejemplo, cómo ellos se
comportarán cuando se ejecutan en una computadora.

Pragmática: La pragmática, se refiere al modo en que el contexto influye en la forma


cómo interpretamos y analizamos los problemas que queremos resolver con un lenguaje de
programación. Como vimos en el ejemplo de sintaxis, el mismo problema puede ser
resuelto utilizando diferentes lenguajes de programación, incluso existen problemas que
pueden ser resueltos aplicando distintas sentencias o instrucciones lógicas usando el mismo
lenguaje.
Aplicamos el pragmatismo cuando creamos una solución considerando el contexto y
cómo afecta a nuestro problema y a nuestra solución, aunque eso implique utilizar otro
lenguaje o herramienta que nos ofrece una mejor oportunidad de resolver el problema.
Aprender varios lenguajes y enfoques diferentes, puede ayudarte a ampliar tu pensamiento
y te ayuda a evitar que quedes atrapado en una única forma de hacer las cosas.
En español, las letras forman palabras que forman oraciones. En los lenguajes de
programación, los caracteres forman sentencias que en conjunto forman instrucciones.
En otro orden de ideas, no podía concluir esta fase sin destacar que la sintaxis de un
lenguaje influye en cómo los programas son escritos por el programador, leídos por otro
programador y traducidos por el computador. La semántica de un lenguaje determina como
los programas son compuestos por el programador, entendidos por otros programadores e
interpretados por el computador. La sintaxis es importante; pero la semántica es más
importante aún.

Notación BNF: Diagramas sintácticos


Es un metalenguaje creada por J. Backus y P.Naur para expresar gramáticas libres de
contexto: es decir, una manera formal de describir lenguajes formales.
El BNF se utiliza extensamente como notación para las gramáticas de los lenguajes
de programación, de los sistemas de comando y de los protocolos de comunicación

Procesadores de lenguaje
Un procesador para un lenguaje de programación es un sistema capaz de manipular
programas escritos en dicho lenguaje con el objeto de ejecutarlo o prepararlo para su
ejecución. El estudio de los procesadores de lenguajes se plantea desde el punto de vista
del diseño e implementación de un procesador de lenguajes.
El procesador es el “cerebro” del ordenador. Es el componente encargado de la
ejecución de las instrucciones de los programas. Todos los ordenadores tienen al menos un
procesador
Máquinas virtuales
Es un entorno que funciona como un sistema informático virtual con su propia
CPU, memoria, interfaz de red y almacenamiento, pero el cual se crea en un sistema de
hardware físico.
Existen dos tipos, las de sistemas y las de proceso. Las de sistemas son el tipo de
máquina virtual que se usa en la virtualización (creación a través de software) de hardware
y las de proceso se ejecutan como un proceso normal dentro de un sistema operativo
sirviendo de enlace entre un lenguaje de programación y el sistema operativo, realizando
una técnica de enlace entre fuente y código máquina.
En palabras más sencillas, Una máquina virtual no es más que un software capaz
de cargar en su interior otro sistema operativo haciéndole creer que es un PC de verdad.
Tal y como su nombre indica, el concepto es tan sencillo como crear una máquina (PC,
consola, móvil o lo que sea) que en vez de ser física es virtual o emulada.

Interpretadores
Un interpretador es un programa informático capaz de analizar y ejecutar otros
programas. Los intérpretes se diferencian de los compiladores o de los ensambladores en
que mientras estos traducen un programa desde su descripción en un lenguaje de
programación al código de máquina del sistema, los intérpretes solo realizan la traducción
a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no
guardan el resultado de dicha traducción.
Los programas interpretados suelen ser más lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles
como entornos de programación y depuración (lo que se traduce, por ejemplo, en una
mayor facilidad para reemplazar partes enteras del programa o añadir módulos
completamente nuevos), y permiten ofrecer al programa interpretado un entorno no
dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que
se conoce comúnmente como máquina virtual).
En palabras más sencillas, un intérprete o interpretador es un programa informático
que procesa el código fuente de un proyecto de software durante su tiempo de ejecución,
es decir, mientras el software se está ejecutando, y actúa como una interfaz entre ese
proyecto y el procesador. Un intérprete siempre procesa el código, línea por línea, de
modo que lee, analiza y prepara cada secuencia de forma consecutiva para el procesador.
Este principio también se aplica a las secuencias recurrentes, que se ejecutan de nuevo
cada vez que vuelven a aparecer en el código. Para procesar el código fuente del software,
el intérprete recurre a sus propias bibliotecas internas: en cuanto una línea de código
fuente se ha traducido a los correspondientes comandos legibles por máquina, esta se
envía directamente al procesador.

El proceso de conversión no finaliza hasta que se ha interpretado todo el código.


Solo se interrumpe prematuramente si se produce un fallo durante el procesamiento, lo que
simplifica mucho la resolución de los errores, ya que la línea de código problemática se
detecta inmediatamente después de ocurrir el fallo.

Compiladores
Es un Software que traduce un programa escrito en un lenguaje de programación
de alto nivel (C / C ++, entre otros) en lenguaje de máquina.
Un compilador es un programa informático que traduce todo el código fuente de
un proyecto de software a código máquina antes de ejecutarlo. Solo entonces el procesador
ejecuta el software, obteniendo todas las instrucciones en código máquina antes de
comenzar. De esta manera, el procesador cuenta con todos los componentes necesarios
para ejecutar el software, procesar las entradas y generar los resultados. No obstante, en
muchos casos, durante el proceso de compilación tiene lugar un paso intermedio
fundamental: antes de generar la traducción final en código máquina, la mayoría de los
compiladores suelen convertir el código fuente en un código intermedio (también llamado
código objeto) que, a menudo, es compatible con diversas plataformas y que, además,
también puede ser utilizado por un intérprete.
Al producir el código, el compilador determina qué instrucciones van a enviarse
al procesador y en qué orden. Si las instrucciones no son interdependientes, incluso es
posible que puedan procesarse en paralelo. Entre los lenguajes compilados puros se
incluyen, entre otros, los veteranos C, C++ y Pascal.
Los intérpretes se diferencian de los compiladores en que mientras estos traducen
un programa desde su descripción en un lenguaje de programación al código de máquina
del sistema, los intérpretes solo realizan la traducción a medida que sea necesaria,
instrucción por instrucción y normalmente no guardan el resultado de dicha traducción.

Lenguaje de alto nivel


Cuando hablamos de un lenguaje de alto nivel nos referimos al tipo de lenguaje
de programación que no expresa los algoritmos teniendo en cuenta la capacidad que tienen
las máquinas para ejecutar órdenes, sino al que se utiliza teniendo en cuenta las
capacidades cognitivas de los seres humanos. Existen desde la década de los 50 y nacieron
con el objetivo de ir más allá respecto a las limitaciones de los lenguajes de bajo nivel,
permitiendo a los usuarios resolver problemas de una forma sencilla y rápida. Desde
entonces han aparecido distintos lenguajes de alto nivel y es conveniente conocer, al
menos, los principales.
En otras palabras, un lenguaje de programación de alto nivel se caracteriza por
expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en
lugar de la capacidad con que los ejecutan las máquinas. Estos lenguajes permiten una
máxima flexibilidad al programador a la hora de ser literal. Algunos de estos son: Java,
PHP, Python, Javascript, C#.
Conclusión

Como pudimos analizar, la comprensión básica de los conceptos de los lenguajes de


programación y los diferentes paradigmas son necesarios para todos los ingenieros de
sistemas. Los lenguajes de programación influencian notablemente la manera en que
pensamos acerca de la construcción del software, algoritmos y estructuras de datos

Tanto los compiladores como los intérpretes cumplen la función de convertir el


código de software que se ha escrito a un formato ejecutable y legible por máquina. Sin
esta traducción, los procesadores informáticos no podrían ejecutar el software en lenguajes
como C, C++, PHP, Python o Ruby, lo que convierte estos programas en unos
componentes imprescindibles para utilizar ordenadores, portátiles o smartphones.
Profundizamos y notamos que compiladores e intérpretes presentan algunas diferencias
básicas, algo que debe tenerse especialmente en cuenta a la hora de elegir un lenguaje de
programación adecuado para desarrollar un nuevo software.

En fin, el lenguaje de programación es la principal herramienta que utilizamos para


la creación de software y los paradigmas de programación son propuestas tecnológicas
adoptadas por los desarrolladores que se enfocan a resolver uno o varios problemas
definidos y delimitados. Toda esta información es imprescindible para nuestra formación
profesional y en general para adentrarnos más al mundo de los lenguajes de programación.
Bibliografía

Fundamentos e introducción al tema general


 https://es.slideshare.net/Edwin_German/elemento1-34886845
 https://www.areatecnologia.com/TUTORIALES/FUNDAMENTOS%20DE
%20PROGRAMACION.htm#:~:text=Los%20fundamentos%20de%20programaci
%C3%B3n%20son,binario%20(1%20y%200).
 https://sites.google.com/a/espe.edu.ec/fundamentos-de-programacion/

Descripción de los lenguajes


 https://openwebinars.net/blog/que-es-un-lenguaje-de-programacion/
 https://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v04_n1/lenguajes.htm

Paradigmas
 https://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v04_n1/lenguajes.htm
 https://balanze.wordpress.com/2014/03/16/paradigmas-programacion/
 https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/paradigmas-de-
programacion/

Notación BNF
 https://es.wikipedia.org/wiki/Notaci%C3%B3n_de_Backus-Naur
 https://artsandculture.google.com/entity/m0gv00?hl=es

Máquinas virtuales
 https://www.xataka.com/especiales/maquinas-virtuales-que-son-como-funcionan-
y-como-utilizarlas

Interpretadores y compiladores
 https://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)
 https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/compilador-e-
interprete/
 https://www.universidadviu.com/es/actualidad/nuestros-expertos/lenguaje-de-alto-
nivel-los-mas-utilizados#:~:text=Cuando%20hablamos%20de%20un
%20lenguaje,cognitivas%20de%20los%20seres%20humanos.

También podría gustarte