“Año de la consolidación de nuestra
independencia, y de la conmemoración
de las heroicas batallas de Junín y
Ayacucho”
Universidad Andina del Cusco
Facultad de ingenierias y arquitectura
Escuela Profesional de Ingeniería de Sistemas
Trabajo: Investigación formativa
Asignatura: ALGORÍTMICA Y LENGUAJE DE
PROGRAMACIÓN
Docente: Mgt. Ing. Yessenia Bernales Guzman
Alumnos:
● Cusihuaman Concha Danny Sebastian 023100421B
● Quispe Champi Karin Rubina 023101114F
2024-I
ÍNDICE
Carátula
Índice
I. Lenguaje de Programación ...................................................... 3
II. Clasificación o tipos de lenguaje de programación… ..................4
III. Lenguajes de programación más utilizados… .............................. 5
IV. Paradigmas de programación ................................................. 7
V. Paradigmas de programación o lenguajes de programación
(listado). .......................................................................................... 12
I. Lenguaje de Programación
Autor 1: Según Monterde afirma.
En términos generales, un lenguaje de programación es una herramienta que permite
desarrollar software o programas para computadora. Los lenguajes de programación
son empleados para diseñar e implementar programas encargados de definir y
administrar el comportamiento de los dispositivos físicos y lógicos de una
computadora.(..) es el proceso de análisis, diseño, implementación, prueba y
depuración de un algoritmo, a partir de un lenguaje que compila y genera un código
fuente ejecutado en la computadora.
Autor 2: Según Gregorio García Estrada “Es un conjunto de reglas y estándares para escribir
un programa. Sirven para escribir programas que permitan la comunicación usuario/máquina.“
Autor 3: Mitchell(2002) afirma que:
Programming languages are the medium of expression in the art of computer
programming. An ideal programming language will make it easy for programmers to
write programs succinctly and clearly. Because programs are meant to be understood,
modified, and maintained over their lifetime, a good programming language will help
others read programs and understand how they work. Software design and
construction are complex tasks. Many software systems consist of interacting parts.
(..)A good language for large-scale programming will help programmers manage the
interaction among software components effectively.(..)
(..)Some language constructs make it easier for a compiler to optimize programs, but
may make programming cumbersome.(..)
Autor 4:
Según Bjarne Stroustrup, científico de la computación cataloga la definición del lenguaje de
programación con una serie de incógnitas, llegando a la conclusión que ese es su objetivo y
definición exacta de su significado, menciona en el siguiente enunciado
(..) is that there is no agreement on what a programming language really is and what
its main purpose is supposed to be. Is a programming language a tool for instructing machines?
A means of communicating between programmers? A vehicle for expressing high-level
designs? A notation for algorithms? A way of expressing relationships between concepts? A
tool for experimentation? A means of controlling computerized devices? My view is that a
general-purpose programming language must be all of those to serve its diverse set of users.
The only thing a language cannot be – and survive – is a mere collection of ‘‘neat’’ features.
(..)
II. Clasificación o tipos de lenguaje de programación
Barber, F., & Ferrís, R. (n.d.). TEMA 2: Lenguajes de programación.
Informatica.Uv.Es. Retrieved September 26, 2023, from
http://informatica.uv.es/iiguia/AED/oldwww/2004_05/AED.Tema.02.pdf
Basada en los autores Fernando Barber y Ricardo Ferrís
Los Tipos de Lenguaje de Programación se van estructurando a través de la historia, entre la
más implementadas, y es por más decir que tienen su clasificaciones de cada uno
Lenguajes de bajo nivel.-
Están basados directamente en la máquina de Von Neumann, por lo que están a un nivel muy
cercano a la máquina.
Las instrucciones del lenguaje son las instrucciones del microprocesador del ordenador, que
normalmente son demasiado simples.
Es exclusivo de cada ordenador.
Es difícil y costoso de programar.
En lenguajes de bajo nivel distinguimos entre lenguaje máquina y lenguaje
ensamblador.
Lenguaje máquina:
Instrucciones reconocidas por los circuitos del procesador.
Se codifican en binario.
Los datos se referencian por su posición de memoria.
Lenguaje ensamblador:
Codificación mnemotécnica del lenguaje máquina.
Necesita un traductor.
Se pueden utilizar etiquetas en vez de posiciones de memoria.
Lenguajes de alto nivel.-
Están basados en máquinas abstractas, que facilitan la comprensión por personas.
• Instrucciones más flexibles y potentes.
• Necesita un traductor para convertir el programa a lenguaje máquina, que es el que entiende
el ordenador.
• No depende del procesador, por lo que el mismo programa sirve para diferentes
ordenadores.
Al tener que traducirlo, es más lento e ineficiente que el lenguaje de bajo nivel.
III. Lenguajes de programación más utilizados
Actualmente, estamos en la era de la tecnología, por lo que los lenguajes de programación
está ligada a nuevas tendencias, y más el incremento de las personas que tienen el interés en
la programación puesto a que se deciden buscar uno que les llame más la atención, también las
clases online y paginas que ayudan a que alimenten este interés,llegan a matricularse a cursos
gratis, ante todo esto uno necesita ver lo que más impacta y empiezan por ese lado, es
importante ver las encuestas y hacer un análisis de todos los lenguajes de programación
existentes o influyentes. Según el ranking de PYPL (que se actualiza mes a mes) y la lista de
la encuesta a programadores de Stack Overflow 2023 para especificar del mes de septiembre
son:
Figura 1: Top 10 lenguajes de programación del 2023
1.- Python, se lanzó en 1991, es uno de los lenguajes de programación más usados, es de código
abierto y una sintaxis sencilla, es fácil de usar y de aprender .
2.-JavaScript, Fue desarrollado inicialmente en 1995, es una de las tecnologías fundamentales
de la WWW, junto con HTML y CSS . Este lenguaje es muy esencial entre losdesarrolladores
de software y un buen lenguaje para principiantes,está orientado a objetos y se suele utilizar
del lado del cliente, el navegador interpreta directamente el lenguaje y su principal uso y
característica a destacar es es el desarrollo y creación de contenido multimedia, visual e
interactivo en las páginas webs.
3.-Java, fue desarrollada inicialmente en 1995, actualmente es muy conocida por su mayor
nivel. Es un lenguaje de programación especialmente popular para aplicaciones web servidor-
cliente, está orientada a objetos y diseñada para tener mínimas dependencias, y es compatible
con versiones anteriores.
4.- HTML, fue diseñado en 1993 abreviatura de HyperText Markup Language o «lenguaje
de marcado de hipertexto». En combinación con CSS y JavaScript.
5.-CSS, Cascading Style Sheets u «hojas de estilo en cascada»,desarrollado en 1996 por W3C,
es un lenguaje de diseño gráfico, se usa para formatear documentos escritos en HTML o XML.
6.-SQL, Structured Query Language o «lenguaje de consulta estructurada», fue diseñado
inicialmente en 1974. Es un lenguaje de programación se usa para gestión de datos en
relacionales (RDBMS).
7.-C# (C Sharp) diseñado inicialmente en el año 2000, es un lenguaje de programación de
propósito general, orientado a objetos, su uso es para varios tipos de usos, como paradesarrollar
servicios web, aplicaciones web, móviles y de escritorio, y juegos.
8.-C, diseñado en 1970. Es un lenguaje de programación de propósito general caracterizado
por la eficiencia del código, se usa ampliamente para desarrollar software de sistema, crear
aplicaciones y en una amplia variedad de arquitecturas de ordenador — desde
superordenadores a sistemas embebidos.
9.-C++ fue desarrollado en 1985, como una extensión de C, se implementa como lenguaje
compilado, se usa a menudo en infraestructura de software, aplicaciones de escritorio,
servidores, y muy utilizado en desarrollar videojuegos.
10.-TypeScript, lanzado en 2012 es un lenguaje de programación de código abierto, está
diseñado para desarrollar aplicaciones de gran tamaño, aplicaciones JavaScript para ejecutar
en el lado del cliente y del servidor.
11.-PHP, se diseñó en 1994-1995 es un lenguaje diseñado y enfocado en el desarrollo web
en el lado del servidor,es de código abierto, con el propósito de mantener comunicación entre
la web y el servidor.Además es utilizada para crear contenido dinámico de páginas web y entre
otras tareas de programación
12.-R es un lenguaje de programación desarrollado en 1993, está enfocado en el análisis
estadístico, es por eso que es muy popular en gráficos y computación estadística, para llevar a
cabo análisis de datos y desarrollar software estadístico.
13.-Bash/Shell,fue diseñado como un sustituto de software libre,en 1989, el lenguaje de
scripting y shell (intérprete de comandos) de Unix Bash es el shell del proyecto GNU
14.-Objective-C, desarrollado en 1980, es un lenguaje de programación orientada a objetos
de propósito general y uno de los más complejos, permite crear soluciones flexibles ysencillas
a problemas de programación.
IV. Paradigmas de programación
Los Paradigmas de programación
– Según Fernadez Villaverde y Guerron:
A paradigm is the preferred approach to programming that a language supports.
• Main paradigms in scientific computation (many others for other fields):
1. Imperative.
Oldest approach.
• Closest to the actual mechanical behavior of a computer⇒ original imperative languages
were abstractions of assembly language.
• A program is a list of instructions that change a memory state until desired end state is
achieved.
• Useful for quite simple programs.
• Difficult to scale.
• Soon it led to spaghetti code
2. Structured.
Hence, structured: subroutines/functions, block structures, and loops, and tests.
• This is paradigm you are likely to be most familiar with.
3. Procedural.
Evolution of structured programming.
• Divide the code in procedures: routines, subroutines, modules methods, or functions.
4. Object-Oriented.
• Large impact on software industry.
• Complemented with other tools such as design patterns or UML.
• Partial support in several languages: structures in C (and structs in older versions of
Matlab).
• Slower adoption in scientific and HPC.
5. Functional.
–Según Ashwin Joy, en su artículo menciona :
Imperative Programming.- Imperative programming is a programming paradigm that uses
statements to change a program’s state. It’s concerned with describing how a programoperates
in a step-by-step manner.
Procedural Programming.- This programming paradigm follows imperative programming
with procedural calls. These calls direct the system to perform the required tasks.
Each procedure, also known as a function, can have multiple commands to be executed. The
function, once defined, can be called as many times as needed to perform the same operation.
Procedural programming is considered the best for people starting to learn to code. Beginners
can start with procedural programming as it is simple, efficient, requires less memory, and is
easier to keep track of control flow.
Structured Programming.-
It is an imperative programming paradigm where we use nested loops, conditional statements,
and subroutines to define the control flow of a program. This paradigm has a top-down
implementation which promotes code readability and reusability. In commercial applications,
this helps to reduce development time and increase code quality.
Structured programming uses control structures like loops (for, while), conditionals (if,switch),
and subroutines to control the program’s flow. These structures enable programmers to write
code that is easier to understand and modify, because they provide a clear, top-down control
flow.
For instance, instead of using ‘goto’ statements which can lead to ‘spaghetti code’, structured
programming encourages the use of loops and conditionals that make the program’s flow of
control more predictable and easier to trace.
Object-Oriented Programming.-
This is the most widely used and most popular programming paradigm. Class, Abstraction,
Encapsulation, Inheritance, and Polymorphism form the backbone of Object-Oriented
Programming (OOP).
In this paradigm, every entity in the program is considered an object. Objects can have data
associated with them called attributes and actions they can perform using methods.
Declarative Programming:
Declarative programming is a programming approach that expresses a computation’s logic
without discussing its control flow. The programmer must specify what the program must
accomplish but need not specify how it must be implemented.
In other words, rather than dictating ‘how’ to achieve a goal, as is common in imperative
programming, declarative programming focuses on ‘what’ needs to be achieved, leaving the
specifics of ‘how’ to the underlying system or language implementation.
Logic Programming:
The logic programming paradigm uses logic-based statements to convey facts and rules.
Logical inferences are made of instructions or logic statements to do computation. Atomic
statements are built using these predicate statements.
While displaying relevant data, logic languages frequently rely on queries. Some of the specific
uses of logic programming are natural language processing, database management, predictive
analysis, etc.
Programación funcional:
Functional programming is built upon the concept of mathematical functions andimmutability.
In this paradigm, programs are constructed by applying and composing functions. This style
of programming promotes a strong separation of data and behavior, and it is particularly useful
when dealing with problems that involve concurrency and parallelism, due to its inherent
properties such as referential transparency and absence of side-effects.
Functional programming, unlike imperative paradigms, emphasizes the evaluation of
expressions rather than execution of commands. The main focus is on ‘what’ computations
should be performed rather than detailing ‘how’ to compute them. This emphasis on
expressions and their evaluation, rather than on control flow statements, makes programs
written in functional style inherently less stateful and more mathematical.
–Según Mariam Martinez , “Un paradigma de programación es una manera o estilo de
programación de software.(..)
(..)los lenguajes de programación adoptan uno o varios paradigmas en función del tipo de
órdenes que permiten implementar como, por ejemplo, Python o JavaScript, que son
multiparadigmas(..)”
Los programas consisten en una sucesión de instrucciones o conjunto de sentencias, como si el
programador diera órdenes concretas.
● Programación estructurada: La programación estructurada es un tipo de
programación imperativa donde el flujo de control se define mediante bucles anidados,
condicionales y subrutinas, en lugar de a través de GOTO.
● Programación procedimental: Este paradigma de programación consiste en
basarse en un número muy bajo de expresiones repetidas, englobarlas todas en
un procedimiento o función y llamarlo cada vez que tenga que ejecutarse.
● Programación modular: consiste en dividir un programa en módulos o
subprogramas con el fin de hacerlo más manejable y legible. Se trata de una
evolución de la programación estructurada para resolver problemas de
programación más complejos.
Paradigma declarativo
En este modelo de paradigma se construyen modelos de objetos que representan elementos
(objetos) del problema a resolver, que tienen características y funciones. Permite separar los
diferentes componentes de un programa, simplificando así su creación, depuración y
posteriores mejoras(..)
Así mismo incluye dentro de esta enfoques orientados a datos, en la que se detalla y/o
especifica la estructura de los mismo y demás relaciones que puedan existir, así basándose en
eventos, en la que se dividen y especifican eventos en concreto.
Programación reactiva
Este paradigma se basa en escuchar lo que emite un evento o cambios en el flujo de datos,
en donde los objetos reaccionan a los valores que reciben de dicho cambio.
-–Según César Vaca Rodríguez define los paradigmas de programación como “Los paradigmas
fundamentales están asociados a determinados modelos de cómputo. También seasocian a un
determinado estilo de programación Los lenguajes de programación suelen implementar, a
menudo de forma parcial, varios paradigmas”también selecciona :
Paradigma Imperativo
Describe cómo debe realizarse el cálculo, no el porqué.
Un cómputo consiste en una serie de sentencias, ejecutadas según un control de flujo explícito,
que modifican el estado del programa.
Las variables son celdas de memoria que contienen datos (o referencias), pueden ser
modificadas, y representan el estado del programa.
La sentencia principal es la asignación.
Paradigma Declarativo
Describe qué se debe cálcular, sin explicitar el cómo.
No existe un orden de evaluación prefijado.
Las variables son nombres asociados a definiciones, y una vez instanciadas son inmutables.
No existe sentencia de asignación
Programación Funcional.
Basado en los modelos de cómputo cálculo lambda (Lisp, Scheme) y lógica combinatoria
(familia ML, Haskell)
Las funciones son elementos de primer orden
Evaluación por reducción funcional. Técnicas: recursividad, parámetros acumuladores, CPS,
Mónadas.
Programación Lógica.
Basado en la lógica de predicados de primer orden
Los programas se componen de hechos, predicados y relaciones.
Evaluación basada en resolución SLD: unificación + backtracking.
La ejecución consiste en la resolución de un problema de decisión, los resultados se obtienen
mediante la instanciación de las variables libres.
Programación Reactiva (Dataflow)
Basado en la teoria de grafos.
Un programa consiste en la especificación del flujo de datos entre operaciones.
Las variables se encuentran ligadas a las operaciones que proporcionan sus valores. Un
cambio de valor de una variable se propaga a todas las operaciones en que participa
V. Paradigmas de programación o lenguajes de programación
(listado)
1.- ¿Qué son los paradigmas de programación? , Miriam Canelo, En este artículo define que
es un paradigma de programación, es un estilo de programación de software, y describe cada
una con sus aspectos, menciona los paradigmas como: Paradigma imperativo, paradigma
declarativo, programación orientada a objetos y programación reactiva,
https://profile.es/blog/que-son-los-paradigmas-de-programacion/
2.- Lenguajes de programación: conceptos y paradigmas, Edgar Ruiz, En este artículo busca
las definiciones de los lenguajes de programación, menciona que un lenguaje es capaz de
ejecutar el programa en término de lenguaje en la máquina , denomina detalladamente la
Sintaxis y Semántica, distribuye los paradigmas como: paradigma por procedimientos o
paradigma imperativo, paradigma declarativo, paradigma funcional y paradigma orientado a
objetos.https://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v04_n1/lenguajes.htm
3.- Paradigmas de programación: principios básicos de programación. (2020, April 20).
IONOS Digital Guide; IONOS.
https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/paradigmas-de-programacion/
4.- HISTORIA Y TIPOS DE LENGUAJE DE PROGRAMACIÓN. Aguilar, M., Ormset, A.,
Ríos, J. A., Hofboer, R., Zamorano, D., & Garcia, B. Empiezan a clasificar en cuatro niveles
distintos de lenguajes de programación, como indicamos en la figura.Lenguajes declarativos,
Lenguajes de alto nivel, Lenguajes ensambladores y Lenguajes máquina donde nos especifica
cada uno de ellos.
https://recursos.salonesvirtuales.com/assets/bloques/marina_aguilar_HistoriayTiposdeLengua
jesdeProgramacion.pdf
Aguilar, M., Ormset, A., Ríos, J. A., Hofboer, R., Zamorano, D., & Garcia, B. (n.d.).
HISTORIA Y TIPOS DE LENGUAJE DE PROGRAMACIÓN.
Salonesvirtuales.com. Retrieved September 26, 2023, from
https://recursos.salonesvirtuales.com/assets/bloques/marina_aguilar_Historiay
TiposdeLenguajesdeProgramacion.pdf
RESUMEN
Los programas se componen de instrucciones o sentencias que el programador utiliza para dar órdenes
específicas. La programación estructurada se basa en el control del flujo mediante bucles, condicionales
y subrutinas en lugar de usar GOTO. En la programación procedimental, se agrupan expresiones
repetidas en procedimientos o funciones para llamarlos cuando sea necesario. La programación modular
divide un programa en módulos para hacerlo más manejable.
El paradigma declarativo construye modelos de objetos que representan elementos del problema a resolver,
permitiendo la separación de componentes para facilitar la creación, depuración y mejoras del programa.
Incluye enfoques orientados a datos y eventos.
La programación reactiva se basa en la escucha de eventos o cambios en el flujo de datos, donde los objetos
reaccionan a los valores recibidos. Los paradigmas de programación son modelos asociados a estilos de
programación, como el imperativo que describe cómo realizar un cálculo, el declarativo que describe
qué calcular sin especificar cómo, el funcional basado en modelos de cómputo como el cálculo lambda
y la lógica combinatoria, y el lógico que se basa en la lógica de predicados de primer orden.
Además, los lenguajes de programación implementan varios paradigmas de forma parcial, como el
imperativo, declarativo, funcional, orientado a objetos y reactiva.
CONCLUSIONES
1ra.- En conclusión el conocimiento concreto de los lenguajes de programación, se puede
evidenciar la utilización de cada una, mantener el conocimiento desde su historia y la
revolución de esta, el ver cómo el lenguaje esta en funcionamiento de la máquina y hacer
entender lo que queremos programar, como el de estadística, orientado a objetos hasta la
manipulación del sistema de los videojuegos.
2.- Por terminar es importante conocer las distintas opiniones y análisis de los autores en la
forma de división de los tipos de lenguajes que existen, unos autores mencionan en lenguajes
de programación de alto nivel, bajo nivel, ensamblador esemblantes y otros, sin embargootros
mencionan el de maquinaria y sólo consideran el de alto nivel y la clasificación es más
simplificada y subclasificación el de alto nivel. Resaltar cada opinión es importante para fijar
y comparar un concepto concreto.
3.- La importancia de demostrar y analizar los lenguajes de programación más demandadas,
para verificar la importancia de cada una, y lo más resaltante para los Ingenieros de Sistemas
es una base saber que tipos de lenguajes son más complejos o factibles para empezar este
camino, como son el Python, Java, C++ entre otros.
Fuentes Bibliográficas:
Monterde, U. M. (n.d.). Lenguajes de Programación. Unam.mx. Retrieved September 17,
2023, from
https://programas.cuaed.unam.mx/repositorio/moodle/pluginfile.php/1023/mod_resou
rce/content/1/contenido/index.html
Cobo, M. L. (1963). Lenguajes de programación. Madrid: Colección Especial. Obtenido de
http://www. frasesypensamientos. com. ar/autor/niklaus-wirth. Html
Mitchell, J. C. (2002). Concepts in programming languages. Reino Unido: Cambridge
University Press.
https://www.google.com.pe/books/edition/Concepts_in_Programming_Languages/7U
h8XGfJbEIC?hl=es&gbpv=0
Dijkstra, EW y Dijkstra, EW (1968). Lenguajes de programación. Procesos secuenciales
cooperativos
https://redirect.cs.umbc.edu/courses/undergraduate/331/fall05/notes/pdf/01introduction.pdf
Barber, F., & Ferrís, R. (n.d.). TEMA 2: Lenguajes de programación. Informatica.Uv.Es.
Retrieved September 26, 2023, from
http://informatica.uv.es/iiguia/AED/oldwww/2004_05/AED.Tema.02.pdf
Carrero, L. (2023, September 13). Los lenguajes de programación más populares de 2023.
Stackscale.
https://www.stackscale.com/es/blog/lenguajes-programacion-mas-populares/
Vázquez, I. (2023, March 21). Los 10 lenguajes de programación más usados en 2023. App
Marketing News.
https://appmarketingnews.io/los-10-lenguajes-de-programacion-mas-usados-en-2023/
Fernandez-Villaverde, J., & Guerron, P. (n.d.). (lectures on high-performance computing for
economists VII). Upenn.edu. Retrieved September 26, 2023, from
https://www.sas.upenn.edu/~jesusfv/Lecture_HPC_7_Programming_Paradigms.pdf
Joy, A. (2022, May 2). Types of programming paradigms. Pythonista Planet.
https://pythonistaplanet.com/types-of-programming-paradigms/
Canelo, MM (2020, 9 de junio). ¿Qué son los paradigmas de programación? Servicios de
software de perfil. https://profile.es/blog/que-son-los-paradigmas-de-programacion/
Vaca C.(2011). ´Paradigmas de Programación, Universidad de Valladolid.intro.pdf
Canelo, M. M. (2020, June 9). ¿Qué son los paradigmas de programación? Profile Software
Services. https://profile.es/blog/que-son-los-paradigmas-de-programacion/
Lenguajes de programación: conceptos y paradigmas. (n.d.). Edu.Pe. Retrieved September
26, 2023, from
https://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v04_n1/lenguajes.htm
Paradigmas de programación: principios básicos de programación. (2020, April 20). IONOS
Digital Guide; IONOS.
https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/paradigmas-de-progra
macion/
Aguilar, M., Ormset, A., Ríos, J. A., Hofboer, R., Zamorano, D., & Garcia, B. (n.d.).
HISTORIA Y TIPOS DE LENGUAJE DE PROGRAMACIÓN.
Salonesvirtuales.com. Retrieved September 26, 2023, from
https://recursos.salonesvirtuales.com/assets/bloques/marina_aguilar_HistoriayTiposde
LenguajesdeProgramacion.pdf