Está en la página 1de 20

Universidad Tecnológica de Honduras

Programación Estructurada

Lenguajes de Programación

Gabriel Armando Vallecillo Flores

Catedrática: Clenia Del Carmen Castellón Ochoa

San pedro Sula, 2 de junio de 2022


TABLA DE CONTENIDO
INTRODUCCIÓN............................................................................................1

LENGUAJE DE MAQUINA.............................................................................2

LENGUAJE ENSAMBLADOR........................................................................3

Turbo Assembler (TASM)............................................................................4

Microsoft Macro Assembler (MASM)...........................................................5

Netwide Assembler (NASM)........................................................................6

Assembler x86.............................................................................................7

Flat Assembler.............................................................................................8

LENGUAJE DE ALTO NIVEL.........................................................................9

Python........................................................................................................10

Java...........................................................................................................11

C++............................................................................................................12

C.................................................................................................................13

C#..............................................................................................................14

CONCLUSIÓN..............................................................................................15

BIBLIOGRAFÍA.............................................................................................16

ANEXOS.......................................................................................................18
1

INTRODUCCIÓN

En la siguiente investigación, estaremos hablando de los diferentes lenguajes de


programación, características, especialidades, versiones, utilidades, cuales son los mas
demandados, etc. Hablaremos de como han venido evolucionando estos lenguajes, su
aporte a la tecnología, y como ayudan hoy en día a las diferentes compañías que los
utilizan.

Sabemos que la tecnología evoluciona cada día más, por ende, estos lenguajes
ayudan y van de la mano con la evolución, ya que sin ellos no seria posible, hoy en día
ayudan mucho al momento de automatizar tareas, crear teléfonos inteligentes, paginas
webs, servidores, ayudan para hacer la vida de los humanos un poco más fácil en
muchos sentidos.
2

LENGUAJE DE MAQUINA

Lenguaje de maquina: El lenguaje de maquina es aquel cuyas instrucciones son


directamente entendibles por la computadora y no necesitan traducción posterior para
que la UCP pueda comprender y ejecutar el programa.

Las instrucciones en lenguaje maquinan se expresan en términos de la unidad de


memoria más pequeña (bit) = digito binario 0 o 1, en esencia una secuencia de bits que
especifican la operación y las celdas de memoria implicadas en una operación

Ejemplo: Instrucciones en lenguaje de maquina:

0010, 0000, 1001, 1001, 10001, 1110.

Como se observa estas instrucciones son fáciles de leer por una computadora y
difíciles para un programador y viceversa. Por esta razón se hace difícil escribir
programas en código o lenguaje de máquina. Y se requiere otro lenguaje para
comunicarse con la computadora pero que se hace más fácil de escribir y de leer por el
programador. Para evitar la tediosa tarea de escribir programas en este lenguaje se han
diseñado otros programas de programación que facilitan la escritura y posterior
ejecución de los programas.

Ilustración 1 Lenguaje de maquina


3

LENGUAJE ENSAMBLADOR

Son una representación más entendible para el humano de los códigos del
lenguaje máquina. Cada instrucción en lenguaje ensamblador representa una
instrucción en el lenguaje máquina. El lenguaje ensamblador aparece casi a la par con
el lenguaje máquina, esto debido a que los fabricantes de hardware diseñan sus Chips
pensando ya en las instrucciones de un lenguaje de ensamblado.

Un ejemplo de una instrucción en lenguaje máquina y en lenguaje ensamblador:

Lenguaje de Maquina Lenguaje


Ensamblador
0010111000000001 mov ax, 10
0000000000001010
Tabla 1 Ejemplo de lenguaje de maquina vs lenguaje ensamblador

A pesar de que el lenguaje ensamblador es más fácil de entender por las


personas sigue teniendo las desventajas del lenguaje de máquina. Realmente lo que
hace es ayudar un poco a que el código sea más legible. El lenguaje ensamblador
adicionalmente necesita un traductor (ensamblador) capaz de convertir dichos códigos
en lenguaje máquina.
4

Turbo Assembler (TASM)

El Turbo Assembler (TASM), un paquete ensamblador principalmente destinado


a la plataforma del IBM PC y sus compatibles. Fue la oferta de Borland en el mercado
de herramientas de programación en lenguaje ensamblador para la familia de los
microprocesadores x86. Como se pudiera esperar, trabajaban bien con los
compiladores de lenguaje de alto nivel de Borland para los PC, como Turbo C, Turbo
BASIC, Turbo Prolog y Turbo Pascal. Junto con el resto de suite de lenguajes de
programación Turbo. Turbo Assembler es mantenido y empaquetado por Embarcadero
Delphi y C++Builder.

Ilustración 2 Lenguaje Ensamblador 1


5

Microsoft Macro Assembler (MASM)

El Microsoft Macro Assembler (MASM) es un ensamblador para la familia x86 de


microprocesadores. Fue producido originalmente por Microsoft para el trabajo de
desarrollo en su sistema operativo MS-DOS, y fue durante cierto tiempo el ensamblador
más popular disponible para ese sistema operativo. El MASM soportó una amplia
variedad de facilidades para macros y programación estructurada, incluyendo
construcciones de alto nivel para bucles, llamadas a procedimientos y alternación (por
lo tanto, MASM es un ejemplo de un ensamblador de alto nivel). Versiones posteriores
agregaron la capacidad de producir programas para los sistemas operativos Windows.
MASM es una de las pocas herramientas de desarrollo de Microsoft para las cuales no
había versiones separadas de 16 bits y 32 bits.

Ilustración 3 Lenguaje Ensamblador 2


6

Netwide Assembler (NASM)

El Netwide Assembler o NASM, es un ensamblador libre para la plataforma Intel


x86. Puede ser usado para escribir programas de 16-bit, 32-bit (IA-32) y 64-bit (x86-64).
En el NASM, si se usan las bibliotecas correctas, los programas de 32 bits se pueden
escribir de una manera tal para que sean portables entre cualquier sistema operativo
x86 de 32 bits. El paquete también incluye un desensamblador, el NDISASM.

El NASM fue escrito originalmente por Simon Tatham con ayuda de Julian Hall, y
actualmente es desarrollado por un pequeño equipo en GitHub que le hace
mantenimiento. Fue lanzado originalmente bajo su propia licencia, pero más adelante
fue cambiada por la licencia GNU Lesser General Public License, seguido de un
número de problemas políticos causado por la selección de la licencia. Por lo que
finalmente fue cambiada por la Licencia BSD simplificada.

Ilustración 4 Lenguaje Ensamblador 3


7

Assembler x86.

El lenguaje ensamblador x86 es la familia de los lenguajes ensambladores para


los procesadores de la familia x86 introducida en abril de 1972, que incluye desde los
procesadores Intel 8086 y 8088, pasando por los Pentium de Intel y los Athlon de AMD
y llegando hasta los últimos procesadores x86 de estas compañías. Como el resto de
lenguajes ensambladores, usa una serie de mnemotécnicos para representar las
operaciones fundamentales que el procesador puede realizar. Los compiladores a
menudo producen código ensamblador como un paso intermedio cuando traducen un
programa de alto nivel a código máquina. Considerado como un lenguaje de
programación de bajo nivel y específico para cada máquina. Aunque algunas veces es
usado para software de aplicación de sistemas de ventanas, los lenguajes
ensambladores son utilizados principalmente en aplicaciones críticas como sistemas de
arranque, Sistemas Operativos, núcleos y en controladoras de dispositivos, así como en
sistemas en tiempo real o pequeños sistemas embebidos.

Ilustración 5 Lenguaje Ensamblador 4


8

Flat Assembler.

Flat assembler (FASM) es un ensamblador libre, multi-paso1 con el estilo de


sintaxis de Intel para las arquitecturas IA-32,2 y x86-64.

El proyecto fue iniciado en 1999 por Tomasz Grysztar, también conocido como
Privalov,3 quién en aquella época era un estudiante no graduado de matemáticas en
Polonia. FASM está escrito en lenguaje ensamblador, viene con el código fuente
completo, y fue capaz de ensamblarse a sí mismo (auto-hospedaje) desde la versión
0.90 del 4 de mayo de 1999. El primer lanzamiento público fue en marzo del 2000.3

Es notable por su velocidad rápida, optimizaciones de tamaño, portabilidad,


poderosas capacidades de macro,1 y la comunidad del foro en línea. Sin embargo, casi
no usa opciones en la línea de comandos. Hay disponibles archivos binarios y de
código fuente para Linux, Windows (incluyendo un IDE de desarrollo), DOS, OpenBSD,
MenuetOS, OctaOS, y DexOS. FASM contiene vínculos (bindings) para la GUI de
Windows y OpenGL.

Ilustración 6 Lenguaje Ensamblador 5


9

LENGUAJE DE ALTO NIVEL

Son lenguajes más afines con el programador en los que una instrucción puede
representar varias instrucciones en lenguaje máquina. Incluyen los lenguajes
estructurados y no estructurados. Como ejemplos tenemos: Basic, Pascal, C, APL,
FORTRAN (Aplicaciones Científicas), COBOL (para aplicaciones de procesamiento de
datos), LISP Y PROLOG (para Inteligencia Artificial), etc.

Los lenguajes de alto nivel necesitan de un traductor que puede ser interpretador
o compilador. Los interpretadores o intérpretes, necesitan de un programa auxiliar que
traduce en tiempo real las instrucciones al lenguaje máquina, por lo tanto, cada vez que
un programa interpretado se ejecuta debe ejecutarse también su interprete. Ejemplos
de lenguajes interpretados: Basic, PROLOG, LISP, entre otros.

Los lenguajes compilados son aquellos que necesitan de un compilador para la


traducción al lenguaje máquina. La traducción o compilación se hace solo una vez, y el
resultado es un código objeto entendible por la máquina. Para ejecutar un programa
compilado no se necesita de su compilador. Ejemplos de lenguajes compilados: Pascal,
C, Fortran, Cobol, Modula-2 (evolución del Pascal), etc.

Algunas de las características de los lenguajes de alto nivel:

Depuración más sencilla: Debido a que el código es más legible, la depuración


también se hace más fácil. Con la ayuda editores (IDEs – Entornos de Desarrollo
Integrados) la compilación, depuración y ejecución se hacen más fácilmente.
Productividad aceptable: son más productivos que los lenguajes de alto nivel.
Algunos permiten la Portabilidad: generalmente los interpretados.
Tabla 2 Características de lenguajes de alto nivel

Los lenguajes estructurados, existen controles que le dan secuencia ordenada a


la ejecución del código. Dichos controles se implementan con estructuras definidas que
permiten bifurcaciones condicionadas o ciclos repetitivos. Los lenguajes estructurados
hacen que el programador desarrolle sus algoritmos disciplinadamente.
10

Python

Python es un lenguaje de programación de alto nivel que se utiliza para


desarrollar aplicaciones de todo tipo. A diferencia de otros lenguajes como Java o .NET,
se trata de un lenguaje interpretado, es decir, que no es necesario compilarlo para
ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente por el
ordenador utilizando un programa denominado interpretador, por lo que no es necesario
“traducirlo” a lenguaje máquina.

Python es un lenguaje sencillo de leer y escribir debido a su alta similitud con el


lenguaje humano. Además, se trata de un lenguaje multiplataforma de código abierto y,
por lo tanto, gratuito, lo que permite desarrollar software sin límites. Con el paso del
tiempo, Python ha ido ganando adeptos gracias a su sencillez y a sus amplias
posibilidades, sobre todo en los últimos años, ya que facilita trabajar con inteligencia
artificial, big data, machine learning y data science, entre muchos otros campos en
auge.

Ilustración 7 Lenguaje de alto nivel 1


11

Java

Java es un lenguaje de programación orientado a objetos que se incorporó al


ámbito de la informática en los años noventa. La idea de Java es que pueda realizarse
programas con la posibilidad de ejecutarse en cualquier contexto, en cualquier
ambiente, siendo así su portabilidad uno de sus principales logros. Fue desarrollado por
Sun Microsystems, posteriormente adquirido por Oracle. En la actualidad puede
utilizarse de modo gratuito, pudiéndose conseguir sin problemas un paquete para
desarrolladores que oriente la actividad de programar en este lenguaje. Puede ser
modificado por cualquiera, circunstancia que lo convierte en lo que comúnmente se
denomina “código abierto”.

Cuando se programa con un lenguaje, se utiliza un tipo de código que la máquina


es incapaz de reconocer. Es por ello que se requiere de un proceso de compilación,
esto es, de “traducir” el lenguaje utilizado para que la máquina sea capaz de
reconocerlo y procesarlo. Cada vez que un código requiere ser ejecutado en un
ambiente distinto, deberá compilarse nuevamente. Con el desarrollo de Java se intentó
evitar este tipo de circunstancia, haciendo que el código corriera en cualquier ambiente.

Ilustración 8 Lenguaje de alto nivel 2


12

C++

C++ es un lenguaje de programación que proviene de la extensión del lenguaje C


para que pudiese manipular objetos. A pesar de ser un lenguaje con muchos años, su
gran potencia lo convierte en uno de los lenguajes de programación más demandados
en 2019.

Si se busca programar en alto nivel, con la opción de poder bajar incluso a


ensamblador, C++ sigue siendo una gran opción, ya que estamos ante un lenguaje de
programación muy potente y que se ha mantenido actualizado.

La programación de videojuegos sigue siendo una profesión en auge y en ella el


conocimiento de Unity y C++ es muy valorado.

A C++ primero se le conoció como “C con clases”. Luego se cambió a C++


que significa “incremento de C”, dando a entender que se trata de una extensión
del lenguaje de programación C.

Fue diseñado a mediados de los años 80 por el danés Bjarne Stroustrup. Si


intención fue la de extender el lenguaje de programación C (con mucho éxito en ese
momento) para que tuviese los mecanismos necesarios para manipular objetos. Por lo
tanto C++ contiene los paradigmas de la programación estructurada y orientada a
objetos, por lo que se le conoce como un lenguaje de programación multiparadigma.
13

Ilustración 9 Lenguaje de alto nivel 3

C es un lenguaje de programación (considerado como uno de lo más importantes


en la actualidad) con el cual se desarrollan tanto aplicaciones como sistemas operativos
a la vez que forma la base de otros lenguajes más actuales como Java, C++ o C#.

El lenguaje C no es sencillo, por eso recomendamos que se haga una primera


aproximación realizando un curso de programación en C para adquirir los
conocimientos básicos y poder empezar a trabajar con una base sólida.

Tenemos que viajar hasta 1972 para ver el nacimiento del lenguaje de
programación C (y el sistema operativo UNIX) de la mano del científico informático
estadounidense Dennis Ritchie (con la ayuda de Ken Thompson). Recibió el nombre de
C simplemente por una cuestión alfabética, ya que sustituyó a sus lenguajes
predecesores B y BCPL que codificaban la minicomputadora PDP-7. El desarrollo del
lenguaje C toma protagonismo para la creación del sistema operativo UNIX que
llevarían consigo los nuevos minicomputadores PDP-11, primeros en conectar el
procesador, los periféricos y la memoria entre sí mediante un BUS bidireccional.
14

Ilustración 10 Lenguaje de alto nivel 4

C#

C# es un lenguaje de programación desarrollado por Microsoft, orientado a


objetos, que ha sido diseñado para compilar diversas aplicaciones que se ejecutan
en .NET Framework. Se trata de un lenguaje simple, eficaz y con seguridad de tipos .
Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y
mantener la expresividad y elegancia de los lenguajes de estilo de C.

La sintaxis viene derivada de C y C+ + y utiliza el modelo de objetos de la


plataforma .NET, muy parecido al de Java, aunque incluye mejoras propias de otros
lenguajes . Como curiosidad, el nombre de este lenguaje fue inspirado por la escala
musical. En ella, la letra C equivale a la nota musical do y el símbolo # significa
sostenido, lo que indica que es un semitono más alta. Así, C# sugiere que es superior a
C y C++.
15

Ilustración 11 Lenguaje de alto nivel 5

CONCLUSIÓN

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 software, no tanto
para los especialistas en un lenguaje de programación. Esto se debe a que los
lenguajes de programación son una herramienta fundamental.

Los lenguajes de programación influencian notablemente la manera en que


pensamos acerca del diseño y construcción del software y los algoritmos y estructuras
de datos que utilicemos para desarrollar software.
16

BIBLIOGRAFÍA

Vallecillo, G. (1 de 6 de 202). C#. Obtenido de OpenWebinars:


https://openwebinars.net/blog/que-es-c-introduccion/#:~:text=Lenguajes%20de
%20Programaci%C3%B3n-,%C2%BFQu%C3%A9%20es%20C%23%3F,y
%20con%20seguridad%20de%20tipos%20.

Vallecillo, G. (1 de 6 de 2022). Assembler x64. Obtenido de Wikipedia:


https://es.wikipedia.org/wiki/Lenguaje_ensamblador_x86

Vallecillo, G. (1 de 6 de 2022). C. Obtenido de OpenWebinars:


https://openwebinars.net/blog/que-es-c/

Vallecillo, G. (1 de 6 de 2022). C++. Obtenido de OpenWebinars:


https://openwebinars.net/blog/que-es-cpp/

Vallecillo, G. (1 de 6 de 2022). Flat Assembler. Obtenido de Wikipedia:


https://es.wikipedia.org/wiki/Flat_assembler

Vallecillo, G. (1 de 6 de 2022). Java. Obtenido de Definicion: https://definicion.mx/java/

Vallecillo, G. (1 de 6 de 2022). Lenguaje de alto nivel. Obtenido de Google Sites:


https://sites.google.com/site/474introduccionalaprogramacion/evolucion/
lenguajes-de-alto-nivel

Vallecillo, G. (1 de 6 de 2022). Lenguaje de maquina. Obtenido de Google Sites:


https://sites.google.com/site/474introduccionalaprogramacion/evolucion/
lenguaje#:~:text=Lenguaje%20de%20maquina%3A%20El
%20lenguaje,comprender%20y%20ejecutar%20el%20programa.&text=Ejemplo
%3A%20Instrucciones%20en%20lenguaje%20de,%2C%201001%2C
%2010001%2C%201

Vallecillo, G. (1 de 6 de 2022). Lenguaje Ensamblador. Obtenido de Google Sites:


https://sites.google.com/site/474introduccionalaprogramacion/evolucion/lenguaje-
ensamblador
17

Vallecillo, G. (1 de 6 de 2022). Microsoft Macro Assembler. Obtenido de Wikipedia:


https://es.wikipedia.org/wiki/Microsoft_Macro_Assembler

Vallecillo, G. (1 de 6 de 2022). Netwide Asssembler. Obtenido de Wikipedia:


https://es.wikipedia.org/wiki/Netwide_Assembler

Vallecillo, G. (1 de 6 de 2022). Python. Obtenido de Santander-Becas:


https://www.becas-santander.com/es/blog/python-que-es.html#:~:text=Python
%20es%20un%20lenguaje%20sencillo,permite%20desarrollar%20software
%20sin%20l%C3%ADmites.

Vallecillo, G. (1 de 6 de 2022). Turbo Assembler. Obtenido de Wikipedia:


https://es.wikipedia.org/wiki/Turbo_Assembler
18

ANEXOS

Ilustración 1 Lenguaje de maquina.........................................................................2


Ilustración 2 Lenguaje Ensamblador 1....................................................................4
Ilustración 3 Lenguaje Ensamblador 2....................................................................5
Ilustración 4 Lenguaje Ensamblador 3....................................................................6
Ilustración 5 Lenguaje Ensamblador 4....................................................................7
Ilustración 6 Lenguaje Ensamblador 5....................................................................8
Ilustración 7 Lenguaje de alto nivel 1....................................................................10
Ilustración 8 Lenguaje de alto nivel 2....................................................................11
Ilustración 9 Lenguaje de alto nivel 3....................................................................12
Ilustración 10 Lenguaje de alto nivel 4..................................................................13
Ilustración 11 Lenguaje de alto nivel 5..................................................................14

Tabla 1 Ejemplo de lenguaje de maquina vs lenguaje ensamblador......................3


Tabla 2 Características de lenguajes de alto nivel..................................................9

También podría gustarte