1. PROGRAMA INFORMATICO
Es un conjunto de instrucciones que una vez
ejecutadas realizarán una o varias tareas en una
computadora.
Sin programas, estas máquinas no pueden
funcionar.
Al conjunto general de programas, se le denomina
software, que más genéricamente se refiere al
equipamiento lógico o soporte lógico de una
computadora digital.
2. PROGRAMA DE APLICACION
es un tipo de software diseñado para facilitar al usuario la concreción de un
cierto trabajo. Esta característica lo diferencia de otros tipos de programas,
como los sistemas operativos (que son los que hacen funcionar a la
computadora), los lenguajes de programación (que permiten crear los
programas informáticos en general) y las utilidades (que realizan tareas de
mantenimiento o de uso general).
3. SISTEMA OPERATIVO
Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso
del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un
administrador de los recursos de hardware del sistema.
En una definición informal es un sistema que consiste en ofrecer una distribución
ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los
diversos programas que compiten por ellos.
A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir
qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan
dos funciones diferentes.
Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar
programas de manera conveniente, protegiéndolo de los detalles y complejidades del
hardware. Administrar eficientemente los recursos del computador.
4. Lenguaje de programacion
Un conjunto de sintaxis y reglas semánticas que definen los programas del computador. Es
una técnica estándar de comunicación para entregarle instrucciones al computador. Un
lenguaje le da la capacidad al programador de especificarle al computador, qué tipo de
datos actúan y que acciones tomar bajo una variada gama de circunstancias, utilizando un
lenguaje relativamente próximo al lenguaje humano.
Un programa escrito en un lenguaje de programación necesita pasar por un proceso de
compilación, interpretación o intermedio, es decir, ser traducido al lenguaje de máquina
para que pueda ser ejecutado por el ordenador.
Los lenguajes de programación pueden ser clasificados de acuerdo a diversos
criterios:
Lenguajes interpretados (Interpretes) como Basic, Dbase.
Lenguajes compilados (Compiladores) como C, C++, Clipper.
Lenguajes interpretados con recolectores de basura (Maquina Virtual) como
Smalltalk, Java, Ocaml.
Lenguajes Scripts (Motor de ejecución) como Perl, PhP.
5. Lenguaje de maquina
es el sistema de códigos directamente interpretable por un circuito microprogramable, como el
microprocesador de una computadora o el microcontrolador de un autómata . Este lenguaje está
compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un
programa consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas
instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por
el propio programa o eventos externos. El lenguaje de máquina es específico de cada máquina o
arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.
Lenguaje de máquina del Intel 8088. El código de máquina en hexadecimal se
resalta en rojo, el equivalente en lenguaje ensamblador en magenta, y las
direcciones de memoria donde se encuentra el código, en azul. Abajo se ve un
texto en hexadecimal y ASCII.
Los circuitos microprogramables son sistemas digitales, lo que significa que
trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción,
se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo
utiliza dichos signos. Esto permite el empleo de las teorías del álgebra
booleana y del sistema binario en el diseño de este tipo de circuitos y en su
6. Lenguaje e alto nivel
Un lenguaje de programación de alto nivel se caracteriza por expresar los
algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar
de a la capacidad ejecutora de las máquinas.
En los primeros lenguajes de alto nivel la limitación era que se orientaban a un
área específica y sus instrucciones requerían de una sintaxis predefinida. Se
clasifican como lenguajes procedimentales.
Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos
conocimientos de programación para realizar las secuencias de instrucciones
lógicas. Los lenguajes de alto nivel se crearon para que el usuario común
pudiese solucionar un problema de procesamiento de datos de una manera más
fácil y rápida.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de
programación que evitaba estos inconvenientes, a costa de ceder un poco en las
ventajas. Estos lenguajes se llaman de tercera generación o de alto nivel, en
contraposición a los de bajo nivel o de nivel próximo a la máquina.
7. Lenguaje de bajo nivel
Un lenguaje de programación de bajo nivel es el que
proporciona un conjunto de instrucciones
aritmeticológicas sin la capacidad de encapsular dichas
instrucciones en funciones que no estén ya
contempladas en la arquitectura del hardware.
8. Lenguaje de ensamblador
El lenguaje ensamblador, o assembler (assembly language en inglés) es un lenguaje
de programación de bajo nivel para los computadores, microprocesadores,
microcontroladores, y otros circuitos integrados programables. Implementa una
representación simbólica de los códigos de máquina binarios y otras constantes
necesarias para programar una arquitectura dada de CPU y constituye la
representación más directa del código máquina específico para cada arquitectura
legible por un programador. Esta representación es usualmente definida por el
fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos
de procesamiento (las instrucciones), los registros del procesador, las posiciones de
memoria, y otras características del lenguaje. Un lenguaje ensamblador es por lo
tanto específico a cierta arquitectura de computador física (o virtual). Esto está en
contraste con la mayoría de los lenguajes de programación de alto nivel, que,
idealmente son portables.
9. •Algoritmo
Podemos encontrar muchas definiciones de algoritmo en los textos de programacion, todas
ellas muy similares:
Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.
Una secuencia de pasos que conducen a la realización de una tarea.
Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades
tendientes a resolver un determinado tipo de problema o procedimiento.
Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un
programa.
Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser
definido, finito y preciso.
Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un
determinado problema.
Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción
determinada.
Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas
definidas.
Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en
un número finito de pasos.
Un conjunto de símbolos y procedimientos usados en la realización de un cálculo.
10. PSEUDO CODIGO
(o falso lenguaje) es utilizado por programadores para describir algoritmos en
un lenguaje humano simplificado que no es dependiente de ningún lenguaje de
programación. Por este motivo puede ser implementado en cualquier lenguaje
por cualquier programador que utilice el pseudocódigo.
11. COMPILAR
es un programa informático que traduce un programa escrito en un lenguaje de
programación a otro lenguaje de programación, generando un programa
equivalente que la máquina será capaz de interpretar. Usualmente el segundo
lenguaje es lenguaje de máquina, pero también puede ser un código intermedio
(bytecode), o simplemente texto. Este proceso de traducción se conoce como
compilación.[1]
Un compilador es un programa que permite traducir el código fuente de un
programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior
(típicamente lenguaje de máquina). De esta manera un programador puede
diseñar un programa en un lenguaje mucho más cercano a como piensa un ser
humano, para luego compilarlo a un programa más manejable por una
computadora
12. TRADUCTORES E INTERPRETES
En ciencias de la computación, intérprete o interpretador es un programa informático
capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los
intérpretes se diferencian de los compiladores en que mientras estos traducen un programa
desde su descripción en un lenguaje de programación al código de máquina del sistema, los
intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción
por instrucción, y normalmente no guardan el resultado de dicha traducción.
Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en
sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un
solo archivo fuente puede producir resultados iguales solo si es compilado a distintos
ejecutables específicos a cada sistema.
Los programas interpretados suelen ser más lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles
como entornos de programación y depuración (lo que se traduce, por ejemplo, en una
mayor facilidad para reemplazar partes enteras del programa o añadir módulos
completamente nuevos), y permiten ofrecer al programa interpretado un entorno no
dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo
que se conoce comúnmente como máquina virtual).
13. PROGRAMACION ESTRUCTURADA
es una técnica para escribir programas (programación de computadora) de
manera clara. Para ello se utilizan únicamente tres estructuras: secuencia,
selección e iteración; siendo innecesario el uso de la instrucción o
instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT
SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que
las necesidades de programación existentes en los años 1960,
principalmente debido a las aplicaciones gráficas, por lo que las técnicas
de programación estructurada no son suficientes. Ello ha llevado al
desarrollo de nuevas técnicas, tales como la programación orientada a
objetos y el desarrollo de entornos de programación que facilitan la
programación de grandes aplicaciones.
14. Programacion de modular
es un paradigma de programación que consiste en dividir un programa en módulos o
subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para
solucionar problemas de programación más grandes y complejos de lo que ésta puede
resolver.
Al aplicar la programación modular, un problema complejo debe ser dividido en varios
subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe
hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser
resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento
sucesivo, divide y vencerás ó análisis descendente (Top-Down).
15. Programacion orientada a objectos
(OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus
interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias
técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se
popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de
lenguajes de programación que soportan la orientación a objetos
Los objetos son entidades que tienen un determinado estado, comportamiento (método)
e identidad:
El estado está compuesto de datos, será uno o varios atributos a los que se habrán
asignado unos valores concretos (datos).
El comportamiento está definido por los métodos o mensajes a los que sabe responder
dicho objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras
palabras, es su identificador (concepto análogo al de identificador de una variable o una
constante).
16. Programacion declarativa
en contraposición a la programación
imperativa es un paradigma de programación
que está basado en el desarrollo de programas
especificando o "declarando" un conjunto de
condiciones, proposiciones, afirmaciones,
restricciones, ecuaciones o transformaciones
que describen el problema y detallan su
solución. La solución es obtenida mediante
mecanismos internos de control, sin
especificar exactamente cómo encontrarla (tan
sólo se le indica a la computadora que es lo
que se desea obtener o que es lo que se está
buscando). No existen asignaciones
destructivas, y las variables son utilizadas con
Transparencia referencial
17. Diagrama de flujo
es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas
como la programación, la economía, los procesos industriales y la psicología
cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que
representan los pasos del algoritmo, y representan el flujo de ejecución mediante
flechas que conectan los puntos de inicio y de fin de proceso.