Está en la página 1de 10

Conceptos Básicos

1.1 Clasificación del software de: sistemas y aplicación.


1.2 Algoritmo.
1.3 Lenguaje de Programación.
1.4 Programa.
1.5 Programación.
1.6 Paradigmas de programación.
1.7 Editores de texto.
1.8 Compiladores e intérpretes.
1.9 Ejecutables.
1.10 Consola de línea de comandos.

1.1 Clasificación del software de: sistemas y aplicación.

Software: Parte lógica del sistema informático que dota al equipo físico de la
capacidad para realizar cualquier tipo de tareas. De acuerdo a esta definición, el
software integraría el conjunto de programas ejecutables sobre el hardware junto
con los documentos y datos asociados a los mismos.

Teniendo en cuenta que el concepto software está íntimamente ligado al concepto


de programa, analicemos la definición de programa. Un programa no es más que
un conjunto de instrucciones que se dan a la computadora para indicarle la tarea
que se desea realizar. Aquí, una instrucción es un conjunto de símbolos de un
repertorio, construidos de acuerdo a unas reglas, que representan una orden de
operación para la computadora. Las instrucciones de un programa responden a
unas reglas sintácticas y semánticas bien establecidas que definen lo que se
denomina lenguaje de programación.

Software de sistemas.

Software es un término general para las organizadas colecciones de datos e


instrucciones de computadora, frecuentemente se rompe en dos grandes
categorías: software de sistema que proporciona las funciones del sistema en
general, y el software de aplicación el cual es usado por los usuarios para tareas
específicas.
El software de sistema es responsable para controlar, integrar, y administrar los
componente de hardware individuales de un sistema de cómputo así que otro
software y los usuarios del sistema ven esto como una unidad funcional sin tener
que estar interesado con los de talles de bajo nivel tales como transferir datos de
la memoria al disco, o representación del texto sobre una exhibición.
Generalmente, el software de sistema consiste de un sistema operativo y algunas
utilidades fundamentales tal como formateador de disco, administrador de
archivos, administradores de visualización, editores de texto, autenticación de
usuario (login) y herramientas de administración, y gestión de redes y software de
control de dispositivos.

Software de aplicación.

El software de aplicación, en la otra mano, es usado para cumplir tareas


específicas con excepción del funcionamiento justo el sistema de cómputo
El software de aplicación puede consistir de un simple programa, tal como un
visualizador de imagen, una pequeña colección de programas (frecuentemente
llamado un paquete de software) que trabaja cercanamente junto para cumplir una
tarea, tales como una hoja de cálculo o un sistema de procesamiento de texto; una
larga colección (frecuentemente llamado un suite de software) de relacionado pero
programas independientes y paquetes que tienen interfaz de usuario común o
formato de datos compartida, tal como Microsoft Office, el cual consiste en un
integrador cercano procesador de palabras, hoja de cálculo, base de datos, etc.; o
un software de sistema, tal como un sistema de administración de base de datos,
el cual es una colección de los programas fundamentales que puede proporcionar
algún servicio de una variedad de otras aplicaciones independientes.
El software es creado con lenguajes de programación y utilidades relacionadas,
las cuales pueden venir en varias formas de las de arriba: programas simples
como intérpretes, paquetes que contienen un compilador, ligador, y otras
herramientas; y largas suites (frecuentemente llamadas IDE -ambiente de
desarrollo integrado-) que incluye editores, depuradores, y otras herramientas para
múltiples lenguajes.
 Programación
o Lenguajes de programación
o Editores de texto
o Compiladores
o Algoritmos
o Administración de color
o Proceso del desarrollo del software
o Herramientas para desarrollo de software
o Optimización de software
o Interfaz de programación de aplicación (API)
 Paquete de software
o Programas de gráficos
 Formatos de archivos gráficos
 Gráficos de trama
 Gráficos de vector
 Gráficos 3D
 Video digital
o Art software
 MLCAD
o Suite de aplicaciones Office
 Procesador de palabras
 Hoja de cálculo
 Base de datos
 Sistema de administrador de documentos
o Utilidades
 Productores multimedia
 Grabador en disco duro
o Software de colaboración
 OpenSource
 Blog
 WikiWiki
 Slashcode
 NupeCode
 Everything Engine
o Criptografía
 Pretty Good Privacy
 GNU Privacy Guard
 Sistemas Operativos
o Windows
o DOS
o Linux
o Unix
o Mac OS
o OS2
o Palm OS
o Etc.
 Licencias de software
o Open Source software
o Software piracy

1.2 Algoritmo.

La palabra algoritmo se deriva de la traducción al latín de la palabra árabe


alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un
tratado sobre manipulación de números y ecuaciones en el siglo IX.

Un algoritmo es una serie de pasos organizados que describe el proceso que se


debe seguir, para dar solución a un problema específico.

Las características fundamentales que debe cumplir todo algoritmo son:


- Debe ser preciso. e indicar el orden de realización de cada paso.
- Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el
mismo resultado.
- Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún
momento; o sea debe tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso


y Salida.

Tipos de Algoritmos

 Cualitativos: Son aquellos en los que se describen los pasos utilizando


palabras.
 Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para
definir los pasos del proceso.

1.3 Lenguaje de Programación.

Es un conjunto de símbolos, caracteres y reglas (programas) que les permiten a


las personas comunicarse con la computadora.

Los lenguajes de programación tienen un conjunto de instrucciones que nos


permiten realizar operaciones de entrada/salida, calculo, manipulación de textos,
lógica/comparación y almacenamiento/recuperación.

Los lenguajes de programación se clasifican en:

 Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente


entendibles por la computadora y no necesitan traducción posterior para que la
CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje
maquina se expresan en términos de la unidad de memoria más pequeña el bit
(dígito binario 0 o 1).

Son aquéllos que están escritos en lenguajes directamente inteligibles por la


máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas
o series de caracteres de dígitos 0 y 1) que especifican una operación y las
posiciones (dirección) de memoria implicadas en la operación se denominan
instrucciones de máquina o código máquina. El código máquina es el conocido
código binario.
Las instrucciones en lenguaje máquina dependen del hardware de la
computadora y, por tanto, diferirán de una computadora a otra.
 
Ventajas del Lenguaje Máquina
- Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de
traducción posterior, lo que supone una velocidad de ejecución superior a
cualquier otro lenguaje de programación.
Desventajas del Lenguaje Máquina
- Dificultad y lentitud en la codificación.
- Poca fiabilidad.
- Gran dificultad para verificar y poner a punto los programas.
- Los programas solo son ejecutables en el mismo procesador (CPU).

En la actualidad, las desventajas superan a las ventajas, lo que hace


prácticamente no recomendables a los lenguajes máquinas.

 Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las


instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos
para las operaciones y direcciones simbólicas.

Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos,
dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es
el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones
conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de
operaciones aritméticas son: en inglés: ADD, SUB, DIV, etc.; en español: SUM,
RES, DIV, etc.
 
Una instrucción típica de suma sería:
ADD M, N, P
 
Esta instrucción significa "sumar el contenido en la posición de memoria M al
número almacenado en la posición de memoria N y situar el resultado en la
posición de memoria P”. Evidentemente es más sencillo recordar la instrucción
anterior con un nemotécnico que su equivalente en código máquina.
0110 1001 1010 1011

Un programa escrito en lenguaje ensamblador, requiere de una fase de


traducción al lenguaje máquina para poder ser ejecutado directamente por la
computadora.

El programa original escrito en lenguaje ensamblador se denomina programa


fuente y el programa traducido en lenguaje máquina se conoce como programa
objeto, el cual ya es directamente entendible por la computadora.
 
Ventajas del lenguaje ensamblador frente al lenguaje máquina
- Mayor facilidad de codificación y, en general, su velocidad de cálculo.
Desventajas del lenguaje ensamblador
- Dependencia total de la máquina lo que impide la transportabilidad de los
programas (posibilidad de ejecutar un programa en diferentes máquinas. El
lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple
Macintosh.
- La formación de los programadores es más compleja que la correspondiente
a los programadores de alto nivel, ya que exige no solo las técnicas de
programación, sino también el conocimiento del interior de la máquina.
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran
básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos
electrónicos.

 Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (C++,


Objet Pascal, Java, Cobol, Fortran, etc.) son aquellos en los que las instrucciones
o sentencias a la computadora son escritas con palabras similares a los lenguajes
humanos (en general en inglés), lo que facilita la escritura y comprensión del
programa.

Estos lenguajes son los más utilizados por los programadores. Están diseñados
para que las personas escriban y entiendan los programas de un modo mucho
más fácil que los lenguajes máquina y ensambladores. Un programa escrito en
lenguaje de alto nivel es independiente de la máquina (las instrucciones no
dependen del diseño del hardware o de una computadora en particular), por lo que
estos programas son portables o transportables. Los programas escritos en
lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en
diferentes tipos de computadoras.
 
Ventajas de los lenguajes de alto nivel
- El tiempo de formación de los programadores es relativamente corto
comparado con otros lenguajes.
- La escritura de programas se basa en reglas sintácticas similares a los
lenguajes humanos. Nombres de las instrucciones tales como READ,
WRITE, PRINT, OPEN, etc.
- Las modificaciones y puestas a punto de los programas son más fáciles.
- Reducción del coste de los programas.
- Transportabilidad.
 
Desventajas de los lenguajes de alto nivel
- Incremento del tiempo de puesta a punto al necesitarse diferentes
traducciones del programa fuente para conseguir el programa definitivo.
- No se aprovechan los recursos internos de la máquina que se explotan
mucho mejor en lenguajes máquina y ensambladores.
- Aumento de la ocupación de memoria.
- El tiempo de ejecución de los programas es mucho mayor.

1.4 Programa.

Es el conjunto de instrucciones escritas de algún lenguaje de programación y que


ejecutadas secuencialmente resuelven un problema específico.

1.5 Programación.
La programación es un arte en que se ejercita la mente para cumplir unos
objetivos, en los cuales, aparte de nosotros -los humanos- también lo interpretan
las máquinas. La programación se basa en códigos. Un código es una serie de
instrucciones que aprovecharemos para hacer nuestros programas.

1.6 Paradigmas de programación.

En nuestro contexto, los paradigmas de programación nos indican las


diversas formas que, a lo largo de la evolución de los lenguajes, han sido
aceptadas como estilos para programar y para resolver los problemas por
medio de una computadora.

Se muestran a continuación un resumen de los paradigmas de uso más extendido


en programación.

PROGRAMACIÓN POR PROCEDIMIENTOS

Es el paradigma original de programación y quizá todavía el de uso más común.


En él, el programador se concentra en el procesamiento, en el algoritmo requerido
para llevar a cabo el cómputo deseado.

Los lenguajes apoyan este paradigma proporcionando recursos para pasar


argumentos a las funciones y devolviendo valores de las funciones. FORTRAN es el
lenguaje de procedimientos original, Pascal y C son inventos posteriores que
siguen la misma idea. La programación estructurada se considera como el
componente principal de la programación por procedimientos.

PROGRAMACIÓN MODULAR

Con los años, en el diseño de programas se dio mayor énfasis al diseño de


procedimientos que a la organización de la información. Entre otras cosas esto
refleja un aumento en el tamaño de los programas. La programación modular
surge como un remedio a esta situación. A menudo se aplica el término módulo a
un conjunto de procedimientos afines junto con los datos que manipulan. Así, el
paradigma de la programación modular consiste en:

a) Establecer los módulos que se requieren para la resolución de un problema.

b) Dividir el programa de modo que los procedimientos y los datos queden


ocultos en módulos.

Este paradigma también se conoce como principio de ocultación de


procedimientos y datos. Aunque C++ no se diseñó específicamente para
desarrollar la programación modular, su concepto de clase proporciona apoyo
para el concepto de módulo.
ABSTRACCIÓN DE DATOS

Los lenguajes como ADA y C++ permiten que un usuario defina tipos que se
comporten casi de la misma manera que los tipos definidos por el lenguaje. Tales
tipos de datos reciben a menudo el nombre de tipos abstractos o tipos definidos
por el usuario. El paradigma de programación sobre este tipo de datos consiste
en:

a) Establecer las características de los tipos de datos abstractos se desean


definir.

b) Proporcionar un conjunto completo de operaciones válidas y útiles para cada


tipo de dato.

Cuando no hay necesidad de más de un objeto de un tipo dado, no es necesario


este estilo y basta con el estilo de programación de ocultamiento de datos por
medio de módulos.

PROGRAMACIÓN ORIENTADA A OBJETOS (OOP)

El problema con la abstracción de datos es que no hay ninguna distinción entre las
propiedades generales y las particulares de un conjunto de objetos. Expresar esta
distinción y aprovecharla es lo que define a la OOP a través del concepto de
herencia. El paradigma de la programación orientada a objetos es, entonces,

a) Definir que clases se desean

b) Proporcionar un conjunto completo de operaciones para cada clase

c) Indicar explícitamente lo que los objetos de la clase tienen en común


empleando el concepto de herencia

En algunas áreas las posibilidades de la OOP son enormes. Sin embargo, en otras
aplicaciones, como las que usan los tipos aritméticos básicos y los cálculos
basados en ellos, se requiere únicamente la abstracción de datos y/o
programación por procedimientos, por lo que los recursos necesarios para apoyar
la OOP podrían salir sobrando.

1.7 Editores de texto.

Un editor de texto es un programa que permite crear y modificar archivos digitales


compuestos únicamente por texto sin formato, conocidos comúnmente como
archivos de texto o texto plano.

Tipos de editores de texto


Hay una gran variedad de editores de texto. Algunos son de uso general, mientras
que otros están diseñados para escribir o programar en un lenguaje. Algunos son
muy sencillos, mientras que otros tienen implementadas gran cantidad de
funciones.

Ejemplos

 Bloc de notas, editor integrado en Windows, también conocido como


Notepad (en inglés).
 Emacs, otro editor muy común en Unix.
 Gedit, editor libre que se distribuye junto con GNOME para sistemas tipo
Unix. También disponible para Windows.
 jEdit, editor popular multiplataforma.
 Kate, editor para Unix.
 Notepad++, editor de código fuente para Windows.
 Vi, editor muy común en Unix.

1.8 Compiladores e intérpretes.

Existen dos tipos principales de traductores de los lenguajes de programación de


alto nivel:
 Compilador, traduce el código fuente a código objeto, una vez obtenido el
código objeto, el programa puede ejecutarse independientemente del
código fuente. La traducción con un compilador implica dos fases
separadas, una de compilación y otra de ejecución en la primera estaremos
en fase de compilación y en la segunda en fase de ejecución. Su acción
equivale a la de un traductor humano, que toma un libro y produce otro
equivalente escrito en otra lengua.
 Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin
generar ningún código equivalente. Su acción equivale a la de un intérprete
humano, que traduce las frases que oye sobre la marcha, sin producir
ningún escrito permanente. Intérpretes y compiladores tienen diversas
ventajas e inconvenientes que los hacen complementarios:
 Un intérprete facilita la búsqueda de errores, pues la ejecución de un
programa puede interrumpirse en cualquier momento para estudiar el
entorno (valores de las variables, etc.). Además, el programa puede
modificarse sobre la marcha, sin necesidad de volver a comenzar la
ejecución.
 Un compilador suele generar programas más rápidos y eficientes, ya
que el análisis del lenguaje fuente se hace una sola vez, durante la
generación del programa equivalente. En cambio, un intérprete se ve
obligado generalmente a analizar cada instrucción tantas veces como se
ejecute (incluso miles o millones de veces).
 Un intérprete permite utilizar funciones y operadores más potentes,
como por ejemplo ejecutar código contenido en una variable en forma de
cadenas de caracteres. Usualmente, este tipo de instrucciones es
imposible de tratar por medio de compiladores. Los lenguajes que
incluyen este tipo de operadores y que, por tanto, exigen un intérprete,
se llaman interpretativos. Los lenguajes compilativos, que permiten el
uso de un compilador, prescinden de este tipo de operadores.

1.9 Ejecutables.

Archivo que tiene la capacidad de poder ser ejecutado de forma independiente, o


en otras palabras, que no necesita ser ejecutado por una aplicación externa. Estos
archivos son ejecutados y controlados por el sistema operativo. Un archivo
ejecutable contiene un programa, y generalmente necesitan de otros archivos para
funcionar (aunque no es necesario).

Un ejemplo de archivo ejecutable en Windows son los .EXE, o los .COM en MS-
DOS.

En general, los archivos ejecutables son el principal medio de transmisión de virus


y malware.

1.10 Consola de línea de comandos.

Es una interfaz para manipular un programa o sistema operativo con instrucciones


escritas.

Sirve para configurar una computadora, Instalarle Software o trabajar en una


maquina remota.

También podría gustarte