¿Qué es un Programa de Computadora?
Tags: problema, algoritmo, programa, computadora
Published: 2021-08-28 07:22:08

Un programa de computadora es una secuencia de instrucciones escritas por un programador para realizar una tarea específica en un computador. Dichas instrucciones, son la implementación de un algoritmo en un determinado lenguaje de programación como, por ejemplo: Java, C, C++, .NET, PHP, GO, etc.

En la Figura 1 se puede observar la relación que existe entre problema, algoritmo y programa.

**Figura 1**

***Problema, Algoritmo y Programa***
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j19mlxw2orc841m81nmc.png)
 
En la Figura 2 se tiene un programa de computadora, que calcula el pago mensual de un trabajador en base a la cantidad de horas trabajadas y la tarifa horaria.
 
**Figura 2**

***Programa que Calcula el Sueldo de un Trabajador***

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1adsqtn1xa2t0r1n5gkj.png)

Sin Embargo, debemos saber que para que un programa pueda ser ejecutado por una máquina, este debe hablar su mismo idioma. En la Figura 3 se puede ver la compilación (traducción) de un programa escrito en Java a código máquina.

**Figura 3**

***Edición y Compilación de un Programa***

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/45p6pmlqeb5qlq7t36ix.png)
 
**Lenguaje Máquina**

El lenguaje máquina es el más primitivo de los códigos, es el lenguaje nativo de las computadoras la cual está compuesta por una secuencia de ceros y unos (bits). 

**Lenguaje de Bajo Nivel**

Son aquellos lenguajes que se asemejan más al lenguaje máquina, es decir que proporcionan poca o ninguna abstracción como, por ejemplo: los lenguajes ensambladores.

**Lenguaje de Alto Nivel**

Son aquellos lenguajes que son más amigables para el programador, es decir que se asemejan más al lenguaje humano como, por ejemplo: Java, Python, PHP, C#, entre otros. 

La principal diferencia de estos tres tipos de lenguajes de programación es que mientras un lenguaje proporcione poca o ninguna abstracción más estará cerca al lenguaje máquina. De esa manera evitamos caer en discusiones de qué o cuáles lenguajes de programación son de bajo o alto nivel, inclusive, se podría definir un tipo de lenguajes de medio nivel. De otro modo sería que mientras más fácil sea desarrollar un programa y más legible sea su compresión, será de un más alto nivel.

**Para Recordar**

Les dejo algunos puntos claves de este capítulo:

- Un algoritmo es una secuencia ordenada y finita de pasos que permiten resolver un problema.
- Un programa de computadora es la implementación de un algoritmo en un determinado lenguaje de programación.
- El lenguaje máquina es el lenguaje de las computadoras.
- Los lenguajes de bajo nivel se describen como cercanos al hardware, es decir que se asemejan más al lenguaje máquina, 
- Los lenguajes de alto nivel son aquellos lenguajes que se asemejan más al lenguaje humano.

Para complementar lo aprendido, pueden visitar los siguientes enlaces:

Algoritmo: https://es.wikipedia.org/wiki/Algoritmo
Programa de Computadora: https://es.wikipedia.org/wiki/Programa_inform%C3%A1tico
Lenguaje de Alto Nivel: https://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel
Lenguaje de Bajo Nivel: https://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel