You are on page 1of 8

 

 
 
 
 
 
 
 
 
 

MÓDULO 4 
SOFTWARE Y LENGUAJES DE 
PROGRAMACIÓN 
 
 
 
 
 
 

Introducción a la Tecnología de la Información

y las Comunicaciones
 
Curso Virtual - Cátedra: Cecilia Oriolo
 
Septiembre 2019
 
 

 
 
    Módulo IV – Software y lenguajes de programación 
 

Algoritmos y lenguajes  
 
Como pudimos ver, el “cerebro” de las computadoras, el CPU, sólo entiende y 
ejecuta instrucciones. Y para lograr realizar cualquier tarea se requieren un 
conjunto de instrucciones ordenadas que llamamos “algoritmos”. 
 

¿Qué es un algoritmo? 
 
Si consultamos a la RAE1, nos dice que un ​“​Conjunto ordenado y finito de 
operaciones que permite hallar la solución de un problema​”. 
 
Wikipedia2, por su parte, nos dice que es un ​“conjunto de instrucciones o ​reglas 
definidas y no-ambiguas, ordenadas y finitas​ que permite, típicamente, 
solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo 
otras tareas o actividades”. 
 
Para entender un poco mejor qué significan estas definiciones en la práctica, vean 
el siguiente video: ​¿Qué es un algoritmo? - Magic Markers 
 
 
Como podemos ver, existen algoritmos en muchos ámbitos. Para aplicarlos en 
una computadora es necesario construir programas (o software), es decir, escribir 
las instrucciones en un lenguaje de programación.  
Como todo lenguaje, un lenguaje de programación posee reglas específicas de 
escritura: cada palabra tiene significado, distintas funciones (así como en español 
tenemos verbos, sustantivos, adjetivos), sintaxis (reglas que indican cómo ordenar 
las palabras para que tengan sentido), etc. 
En el módulo anterior vimos que las instrucciones que entiende el CPU están 
“escritas” en unos y ceros, representados por pulsos eléctricos. Pero un 
programador no genera esos pulsos, sino que escribe en un lenguaje más similar 
al humano. Es decir, que existen diferentes tipos o niveles de lenguajes: 
Lenguaje de Máquina
Es el lenguaje que que entiende el procesador, escrito en “ceros” y “unos”. Al ser 
entendido directamente, sin necesidad de traducción, este lenguaje es rápido de 
ejecutar, pero escribir con ese detalle cada instrucción para una aplicación (por 
ejemplo, la generación de una factura) resulta muy complejo y costoso. 

1
​https://dle.rae.es/?id=1nmLTsh​ (Consultado en septiembre de 2019) 
2
​https://es.wikipedia.org/wiki/Algoritmo​ (Consultado en septiembre de 2019) 
 

    1  
 
 
    Módulo IV – Software y lenguajes de programación 
 
Por otro lado, diferentes CPU pueden utilizar diferentes lenguajes, dependiendo 
de su arquitectura de hardware, por lo que el código escrito para un procesador, 
no necesariamente sirve para otro. Esto hace aún más costosa la escritura de las 
instrucciones, ya que existe una amplia variedad de procesadores en el mercado, 
y constantemente aparecen nuevos. 
Lenguaje de bajo nivel o ensamblador
Para facilitar la escritura y lectura del lenguaje de máquina, aparecen el uso de 
“instrucciones mnemotécnicas”, un poco más fáciles de entender y recordar que 
largas sucesiones de unos y ceros. Estas instrucciones tienen que ser traducidas 
al lenguaje de máquina para ser ejecutadas. 
El lenguaje ensamblador (assembler), sigue siendo dependiente de la arquitectura 
del procesador y requiriendo mucho nivel de detalle en cada instrucción (no 
olvidemos que el CPU debe saber de qué posiciones de memoria tomar los datos 
y la instrucción siguiente, dónde escribir los resultados, etc.), por lo que su 
escritura continúa requiriendo mucho tiempo y esfuerzo, aunque su ejecución es 
rápida por ser similar al lenguaje de máquina. 

Lenguaje de alto nivel


Cuando hablamos de “alto” o “bajo” nivel, no nos referimos a la calidad o 
capacidad del lenguaje, sino al nivel de abstracción que poseen: cada instrucción 
de un lenguaje de alto nivel representa varias instrucciones de uno de bajo nivel. 
Esto hace que sea más rápido escribir código para un programa y, a su vez, facilita 
el aprendizaje del lenguaje, al utilizar palabras más simples de recordar y 
entender. 
Los lenguajes de alto nivel poseen un mayor nivel de abstracción con respecto al 
hardware, por lo que un mismo código puede ser aplicable a diferentes 
computadoras sin necesidad de reescribirlo. 
Existen muchísimos lenguajes de programación de alto nivel, de diferente 
complejidad, estructuras y objetivos. Entre ellos podemos mencionar Java, C, .Net, 
ABAP, PHP, etc. 

Pseudo código
Si bien no se trata de un lenguaje de programación, porque no puede ser 
ejecutado por una máquina, mencionamos el pseudo-código ya que es una forma 
preliminar de plantear un algoritmo, antes de escribir el código de programación. 
El pseudocódigo consiste en escribir en lenguaje “humano” las instrucciones del 
algoritmo, pero ordenandolas en una estructura similar al lenguaje de 
programación que vamos a usar. Es una forma de diseñar o bocetar nuestra 
solución, antes de escribir el código. 

    2  
 
 
    Módulo IV – Software y lenguajes de programación 
 
Otra forma de plantear una primera aproximación al código que se va a escribir 
pueden ser los diagramas de flujo, que muestran en forma gráfica la secuencia de 
pasos a seguir. 
  

¡Hola, mundo! 
 
Al aprender un nuevo lenguaje, o para hacer una prueba básica de código, es muy 
común crear un pequeño programa al que se le llama HolaMundo, y que consiste 
simplemente en mostrar en pantalla un mensaje con el texto “¡Hola, Mundo!” o 
similar. 
El objetivo es escribir un código que muestre un resultado, utilizando pocas 
instrucciones básicas. 
 
Como ejemplo de los diferentes lenguajes que mencionamos, vean los siguientes 
recursos: 
● Hello World Collection​ - Sitio web con ejemplos de Hola Mundo. Pueden 
ver ejemplos de assembler, lenguajes de alto nivel (Java, Node.js o PHP) y 
lenguajes “esotéricos”, no utilizados para el desarrollo de programas, como 
PIET34 
● Hola Mundo en 14 lenguajes de programación populares​ - Video 
● Ensamblador - Hola mundo​ - Video 
 
 

Intérpretes y compiladores
 
Como menciona Joyanes Aguilar5, “el proceso de traducir un algoritmo en 
pseudocódigo a un lenguaje de programación se denomina codificación, y el 
algoritmo escrito en un lenguaje de programación se denomina código fuente.” 
El código fuente no puede ser interpretado por un procesador, por lo que para 
ejecutar un programa es necesario un proceso de traducción a código de 
máquina, que es realizado por otro programa llamado, justamente, traductor. 
Como vimos previamente, el código de programación consiste en una serie de 
instrucciones ordenadas en forma secuencial. Los traductores pueden ser 
intérpretes o compiladores, de acuerdo con la forma en que se realiza la 
conversión de ese código: 

3
​https://es.wikipedia.org/wiki/Piet_(lenguaje_de_programaci%C3%B3n)​ (Consultado en 
septiembre de 2019) 
4
​https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_esot%C3%A9rico​ (Consultado 
en septiembre de 2019) 
5
Joyanes Aguilar, L.(2008). Capítulo 1.9 (Lenguajes de programación), página 66.  
 

    3  
 
 
    Módulo IV – Software y lenguajes de programación 
 
 
Los intérpretes toman cada instrucción en código fuente, la traducen y la ejecutan. 
Luego pasan a la siguiente, la traducen, la ejecutan y así sucesivamente. 
En cambio, los compiladores traducen todo el código fuente primero, generando 
lo que se llama código objeto o binario, a partir del cual luego se obtiene un 
programa ejecutable. Una característica particular es que permiten verificar la 
existencia de errores de sintaxis durante el proceso de compilación, evitando que 
ocurran durante la ejecución.  

Software 
Como vemos en la bibliografía6 el software está conformado por los diferentes 
programas que permiten el funcionamiento de la computadora, así como el 
procesamiento de los datos para convertirlos en información útil para la 
organización. 
Dentro de una computadora existe una enorme cantidad de programas que 
utilizamos en forma directa o indirecta: desde un navegador web, un editor de 
textos o la calculadora, hasta los antivirus y los programas que permiten la 
comunicación con los dispositivos de entrada y salida, o la conexión a Internet. De 
esta manera podemos dividirlos en dos grandes grupos: software de aplicación y 
software de sistema. 

Software de aplicación
Son los programas que permiten la realización de diversas tareas a los usuarios, 
para alcanzar sus objetivos de trabajo (desde la facturación de un producto a la 
redacción de un reporte o la búsqueda de información). Puede tratarse de 
software instalado en las computadoras y dispositivos de los usuarios, o de 
aplicaciones utilizados por diferentes usuarios, que se instalan en servidores 
específicos. 
Algunos autores7 los clasifican según las tareas que realizan en: 
- Software de propósito general, orientado a cualquier usuario (calculadora, 
procesador de texto, cliente de correo, mensajería instantánea) 
- Software de propósito específico, orientado a tareas específicas (software 
jurídico, de arquitectura, liquidación de haberes, etc.) 

6
Joyanes Aguilar, L.(2008). Capítulo 1.8. 
Laudon K. y Laudon J. (2014). Capítulo 5. 
7
Briano, J. (2011), Capítulo 8, pág. 159. 
 

    4  
 
 
    Módulo IV – Software y lenguajes de programación 
 
Según la necesidad, el software de aplicación de propósito específico puede 
comprarse o desarrollarse a medida, es decir, programarse/adaptarse 
específicamente para una organización o grupo de usuarios. El software de 
propósito general, dadas sus características, suele adquirirse ya desarrollado sin 
posibilidad de realizarle cambios. 
Más adelante vamos a profundizar en las razones para decidir entre comprar un 
software “enlatado” o hacer un desarrollo a medida, pero veamos algunas 
cuestiones relativas a cada decisión 

Compra
Al comprar software ya desarrollado, hay varias opciones y decisiones a tomar, 
de acuerdo a las alternativas que ofrezca el mercado en cada caso. 
Por un lado, existe software que se ofrece “en la nube”, es decir, que se encuentra 
instalado en servidores del proveedor, por lo que se requiere acceder a través de 
Internet o de una conexión directa. El proveedor se encarga del mantenimiento 
del hardware y software, de la realización de backups, etc. Por otro lado, en 
muchos casos tenemos la alternativa de realizar una instalación local, en cuyo 
caso, nuestra organización podrá administrar y controlar toda la infraestructura. 
Ambas soluciones implican distintos costos y riesgos, ventajas y desventajas, por 
lo que la elección dependerá de las características particulares de la organización. 
En el caso de las aplicaciones de instalación local, evaluaremos si la misma se 
puede comprar a través de una tienda de aplicaciones (o “app store”) o si se debe 
contactar al fabricante o sus empresas asociadas (“partners”). 
Lo que se suele adquirir es una licencia para el uso del software, las 
características y posibilidades ofrecidas varían según el proveedor y el producto: 
por ejemplo, existe licenciamiento por tiempo determinado (mensual, anual) o 
licencias perpetuas (es decir, por tiempo indeterminado). En este último caso, el 
proveedor suele cobrar periódicamente cierto monto para acceder a las 
actualizaciones y/o a soporte técnico. Este servicio suele llamarse 
“mantenimiento”. 
El proveedor también puede ofrecer el licenciamiento por tasa de uso (por 
ejemplo, cantidad de accesos, de transacciones, de mails enviados, etc.), por 
servidores en los que se instala, por cantidad de usuarios. 
En el caso de la adquisición de paquetes de software, o enlatados, se puede 
evaluar la posibilidad de adaptar alguna parte a necesidades específicas de la 
organización. Por supuesto, esto implica costos, esfuerzo y riesgos adicionales, al 
no seguir las “buenas prácticas” o estándares del producto, pero puede ser útil en 
el caso de que la organización tenga procesos particulares que no pueden 
adaptarse al software. En este caso, lo importante es evaluar qué porción del 

    5  
 
 
    Módulo IV – Software y lenguajes de programación 
 
software debe adaptarse, ya que si se trata de un porcentaje muy alto, puede ser 
conveniente optar por otra opción (otro producto, desarrollo propio, etc.) 

Desarrollo a medida
Si optamos por desarrollar un software específico para nuestra organización, 
deberemos evaluar si el desarrollo se realizará con recursos propios o si se 
tercerizará. La opción dependerá de la disponibilidad de recursos, de los 
conocimientos técnicos y de negocio requeridos, etc. También será necesario 
evaluar la tecnología a utilizar, para que sea compatible con el resto de la 
infraestructura de la organización y para que sea mantenible a lo largo del tiempo. 
En caso de tercerizar, se deberá evaluar el detalle del contrato, por ejemplo, si el 
proveedor debe entregar o no el código fuente, de modo de poder realizar ajustes 
a futuro.  

Software de sistema
Mencionamos que el software de aplicación es el que permite al usuario realizar 
tareas específicas, pero para que ambos puedan interactuar con la computadora y 
sus componentes se requieren programas adicionales. Por ejemplo, se necesita 
software que dialogue con una impresora, que permita interpretar lo que se 
ingresa a través del teclado o visualizar información a través de una pantalla. 
A la hora de implementar un sistema de información también es importante 
considerar el software de sistema necesario, ya que también debe adquirirse, 
impactando en los costos y en la complejidad de la implementación. 

Sistema operativo
Es el principal componente del software de sistema, ya que se encarga de facilitar 
al usuario la interacción con la computadora y de optimizar el procesamiento: 
gestiona la interfaz gráfica, la ejecución de los programas, el acceso y 
almacenamiento de archivos, la comunicación con los dispositivos de entrada y 
salida, la conexión a la red, etc. Controla la memoria y el procesador, y monitorea 
los recursos para reducir la ocurrencia de fallas (errores de memoria o discos, 
calentamiento del procesador, etc.). 
Los sistemas operativos tienen características específicas que determinan su 
funcionamiento, como la multiprogramación, el multiprocesamiento y el manejo 
de la memoria virtual. 

Utilitarios
Son programas que se usan para funciones estándar de uso y mantenimiento de 
la computadora. 
Por ejemplo, los exploradores de archivos (que permiten la creación de carpetas, 
mover o eliminar archivos, etc.), antivirus, software para desfragmentación de 
discos, reproductores de audio y video, etc. 
 

    6  
 
 
    Módulo IV – Software y lenguajes de programación 
 
Software de desarrollo
Son los programas que permiten la creación y modificación del software de 
aplicación. Entre ellos se encuentran los traductores (intérpretes y compiladores) 
y los entornos de desarrollo integrado (IDE) que son programas que facilitan la 
escritura del código fuente (por ejemplo, chequeando errores de sintaxis, 
permitiendo la ejecución paso a paso para detectar problemas, etc.) 
 

Bibliografía y referencias 
 
BRIANO, Juan C. y otros. Sistemas de Información Gerencial. Tecnología para 
agregar valor a las organizaciones. C.A.B.A: Pearson Argentina, 2011. ISBN: 
9876151870 
JOYANES AGUILAR, Luis. Fundamentos de programación. 4° edición.2008. Mc 
Graw Hill. ISBN: 9788448161118. 
LAUDON, Kenneth C. y LAUDON, Jane P. Sistemas de información gerencial. 12a 
Ed. Pearson Educación de México, SA de CV, 2014. ISBN 9786073209496. ISBN 
e-book: 9786073209502. 
STALLINGS, William. Sistemas Operativos. 5ta Edición. Pearson Prentice Hall. 2011. 
ISBN; 9788420557960 

    7  
 

You might also like