Sie sind auf Seite 1von 16

Son aquellos programas que permiten la administración de la parte física o los

recursos de la computadora, es la que interactúa entre el usuario y los componentes


hardware del ordenador. Se clasifican el Sistemas Operativos Monousuarios y
Multiusuarios.

R= SOFTWARE DE SISTEMAS

Es la parte lógica de computadora, que permite el manejo de los recursos y la


realización de tareas específicas, también denominados programas.

R= El software

Son aquellos programas que nos ayudan a tareas específicas como edición de
textos, imágenes, cálculos, etc. también conocidos como aplicaciones.

R= SOFTWARE DE APLICACIÓN

Ofrece la estructura para un gran número de aplicaciones empresariales, científicas


y personales.

R= El software para uso general

El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de


procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría

R= El software para uso general

Se vende como paquete; es decir, con software y documentación orientada a los


usuarios (manuales de referencia, plantillas de teclado y demás).

R= El software para uso general


Está diseñado y escrito para realizar tareas específicas personales, empresariales
o científicas como el procesamiento de nóminas, la administración de los recursos
humanos o el control de inventarios.

R= El software de aplicación

Todas éstas aplicación es procesan datos (recepción de materiales) y generan


información (registros de nómina) para el usuario.

R= El software de aplicación

programa informático diseñado para facilitar al usuario la realización de un


determinado tipo de trabajo.

R= Software de Aplicación

Posee ciertas características que le diferencia de un sistema operativo (que hace


funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de
uso general) y de un lenguaje (con el cual se crean los programas informáticos).

R= Software de Aplicación

Suele resultar una solución informática para la automatización de ciertas tareas


complicadas como puede ser la contabilidad o la gestión de un almacén.

R= Software de Aplicación

Ciertas aplicaciones desarrolladas ‘a medida’ suelen ofrecer una gran potencia ya


que están exclusivamente diseñadas para resolver un problema específico.

R= Software de Aplicación
Ofrecen menos potencia, pero a cambio incluyen varias aplicaciones, como un
programa procesador de textos, de hoja de cálculo y de base de datos

R= paquetes integrados de software

se entiende a un conjunto finito de instrucciones que se deben seguir para resolver


un problema.

R= Algoritmo

Es un conjunto de pasos, instrucciones o acciones que se deben seguir para


resolver un problema.

R= Algoritmo

se entiende como una sucesión finita de pasos

R= Algoritmo

Hay dos tipos de algoritmos que son:

R= cualitativos y cuantitativos

son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven
para llegar a la obtención de una respuesta o solución de un problema.

R= cualitativos
son todos aquellos pasos o instrucciones que involucran cálculos numéricos para
llegar a un resultado satisfactorio.

R= cuantitativos

Son Características de un algoritmo

• Tiene que ser preciso.


• Tiene que estar bien definido.
• Tiene que ser finito.
• La programación es adaptar el algoritmo al ordenador.
• El algoritmo es independiente según donde lo implemente.

Esto significa que la definición de un paso debe ser suficientemente clara, para que
una persona pueda entenderla y realizarla.

R= Bien definido

Si bien no se puede dar un criterio determinístico para decidir si un paso está bien
definido, debemos apelar al sentido común para decidir que un paso está
especificado sin ambigüedades.

R= Bien definido
Un programa es un algoritmo escrito con un objetivo: conseguir un resultado. No
tiene sentido crear un programa que espere ~ segundos (infinitos segundos) y luego
escriba en pantalla "¡Hola Mundo!", del mismo modo que un algoritmo debe tener
un principio bien definido (tampoco tiene sentido el algoritmo "¡haz nada, y luego
escribe Hola Mundo!")

R= Debe tener un principio y un fin

Es un lenguaje diseñado para describir el conjunto de acciones consecutivas que


un equipo debe ejecutar.

R= Un lenguaje de programación

Es un modo práctico para que los seres humanos puedan dar instrucciones a un
equipo.

R= Un lenguaje de programación

Se define un medio de comunicación compartido por un grupo de personas (por


ejemplo: inglés o francés).

R= lenguaje natural

El lenguaje utilizado por el procesador se denomina.

R= lenguaje máquina

Se trata de instrucciones que llegan al procesador consistentes en una serie de


datos binarios (ceros y unos).

R= lenguaje máquina
no es comprensible para los seres humanos.

R= lenguaje máquina

El código escrito en este tipo de lenguaje se transforma en código máquina para


que el procesador pueda interpretarlo.

R= lenguajes intermediarios

fue el primer lenguaje de programación utilizado

R= El ensamblador

Es muy similar al lenguaje máquina, pero solo los desarrolladores pueden


comprenderlo.

R= El ensamblador

Describe la capacidad de usar un programa de software en diferentes tipos de


equipos.

R= portabilidad

es mucho más fácil de comprender que un lenguaje máquina, y permite mayor


portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes
tipos de equipos.

R= lenguaje de programación
programa mediante una serie de comandos, agrupados en bloques y compuestos
de órdenes condicionales que permiten al programa retornar a un bloque de
comandos si se cumple la condición.

R= lenguaje imperativo

Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos
lenguajes modernos usan este principio.

R= lenguaje imperativo

Carecen de flexibilidad debido a la secuencialidad de las instrucciones.


R= lenguaje imperativo

Es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado


de resultado y recibe como entrada el resultado de otras funciones. Cuando una
función se invoca a sí misma, hablamos de recursividad.

R= lenguaje de programación funcional

Los lenguajes de programación pueden, en líneas generales, dividirse en dos


categorías:

R= lenguajes interpretados y lenguajes compilados.

Requiere de un programa auxiliar (el intérprete), que traduce los comandos de los
programas según sea necesario.

R= lenguaje interpretado
Se traduce a través de un programa anexo llamado compilador que, a su vez, crea
un nuevo archivo independiente que no necesita ningún otro programa para
ejecutarse a sí mismo. Este archivo se llama ejecutable.

R= lenguaje compilado

Posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez
que ha sido compilado

R= lenguaje compilado

No es tan flexible como un programa escrito en lenguaje interpretado, ya que cada


modificación del archivo fuente (el archivo comprensible para los seres humanos: el
archivo a compilar) requiere de la compilación del programa para aplicar los
cambios.

R= lenguaje compilado

indica un método de realizar cómputos y la manera en que se deben estructurar y


organizar las tareas que debe llevar a cabo un programa”

R= Paradigma de Programación

están basados en diferentes modelos de cómputo y por lo tanto afectan a las


construcciones más básicas de un programa.

R= paradigmas fundamentales

indicar el cómo se debe calcular

R= Enfoque imperativo
indicar el qué se debe calcular

R= Enfoque declarativo

Tiene varias ramas diferenciadas: el paradigma funcional, el paradigma lógico, la


programación reactiva y los lenguajes descriptivos.

R= Enfoque declarativo

Describe cómo debe realizarse el cálculo, no el porqué

R= Paradigma Imperativo

consiste en una serie de sentencias, ejecutadas según un control de flujo explícito,


que modifican el estado del programa.

R= Un computo

son celdas de memoria que contienen datos (o referencias), pueden ser


modificadas, y representan el estado del programa.

R= Las variables.

Describe que se debe calcular, sin explicitar el cómo

R= Paradigma Declarativo

No existe un orden de evaluación prefijado

R= Paradigma Declarativo
Las variables son nombres asociados a definiciones, y una vez instanciadas son
inmutables.

R= Paradigma Declarativo

No existe sentencia de asignación

R= Paradigma Declarativo

Basado en los modelos de cómputo cálculo lambda (Lisp, Scheme) y lógica


combinatoria (familia ML, Haskell)

R= Programación Funcional

Basado en la lógica de predicados de primer orden

R= Programación Lógica

Basado en la teoría de grafos.

R= Programación Reactiva (Dataflow)

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.

R= Editor de Texto
son incluidos en el sistema operativo o en algún paquete de software instalado y se
usan cuando se deben crear o modificar archivos de texto como archivos de
configuración, scripts o el código fuente de algún programa.

R= Los editores de textos

El archivo creado por un editor de texto incluye por convención en DOS y Microsoft
Windows la extensión.

R= txt

Compilador
Definición:
Un compilador 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, o simplemente texto. Este proceso de traducción se conoce como
compilación.
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 cómo piensa un ser humano, para luego compilarlo
a un programa más manejable por una computadora.

Partes del Compilador:

Análisis: Se trata de la comprobación de la corrección del programa fuente, e


incluye las fases correspondientes al Análisis Léxico (que consiste en la
descomposición del programa fuente en componentes léxicos), Análisis Sintáctico
(agrupación de los componentes léxicos en frases gramaticales) y Análisis
Semántico (comprobación de la validez semántica de las sentencias aceptadas en
la fase de Análisis Sintáctico).

Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto


y suele estar formado por una o varias combinaciones de fases de Generación de
Código (normalmente se trata de código intermedio o de código objeto) y de
Optimización de Código (en las que se busca obtener un código lo más eficiente
posible).

Front-end: es la parte que analiza el código fuente, comprueba su validez, genera


el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele
ser independiente de la plataforma o sistema para el cual se vaya a compilar, y está
compuesta por las fases comprendidas entre el Análisis Léxico y la Generación de
Código Intermedio.

Tipos de compiladores

Compiladores cruzados: generan código para un sistema distinto del que están
funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su
eficiencia, pero
manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el código máquina a partir de una
única lectura del código fuente.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces
antes de poder producir el código máquina.
Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes
del código según se necesitan.
El Intérprete

Definición:
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).

Compilación justo a tiempo


Para desdibujar más la distinción entre los interpretadores, los interpretadores de bytecode y la
compilación, está la compilación justo a tiempo (o JIT), una técnica en la cual la representación
intermedia es compilada a código de máquina nativo en tiempo de ejecución. Esto confiere la
eficiencia de ejecutar el código nativo, al costo de tiempo de inicio y de un uso creciente de la
memoria cuando el bytecode o el AST es compilado por primera vez. La optimización adaptativa es
una técnica complementaria en la cual el interpretador hace un análisis de desempeño del
programa
que está corriendo (profiling) y compila sus partes más frecuentemente ejecutadas a código
nativo.
Ambas técnicas tienen algunas décadas, apareciendo en lenguajes tales como Smalltalk en los
años
1980.
En años recientes, la compilación justo a tiempo ha ganado la atención de la mayoría de los
implementadores de lenguajes de programación, con Java, Python, y el Microsoft .NET
Framework todos ahora incluyendo JITs.

En informática, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario cuyo


contenido se interpreta por el ordenador como un programa.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero
también puede contener bytecode que requiera un intérprete para ejecutarlo. Además suele
contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema).

Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se
pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por
ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en
concreto.

CONSOLA DE LINEA DE COMANDOS

Es un método que permite a las personas dar instrucciones a algún programa informático por medio
de una línea de texto simple. Debe notarse que los conceptos de CLI, Shell y Emulador de Terminal
no son lo mismo, aunque suelen utilizarse como sinónimos.

La Línea de Comandos de Windows es una implementación de la consola MS-DOS para la interfaz


gráfica de las diversas versiones Microsoft Windows.

La línea de comandos ha estado presente en forma activa en el sistema operativo Windows desde
la versión 3.0 hasta la versión Windows 98, donde los programas de la interfaz gráfica eran
ejecutados por medio de la consola y sobre la cual todo el sistema operativo era montado.1

A partir de la versión de Windows XP, la línea de comandos pasó a segundo plano como un
complemento de sistema, sin que perdiera la funcionalidad de la misma.

Diseño algorítmico de funciones.

En este se explica detalladamente lo que realiza el algoritmo para resolver el problema planteado.
En un diseño de algoritmo que sea complejo puede subdividirse en subprogramas para el estudio o
la revisión de los pasos que lleven a la solución y sea menos el índice de errores que tenga al
momento de la prueba, y a este diseño se le conoce como diseño modular pues es sencillo revisar
cada proceso ya antes dividido para su rápida especificación y prueba.

Un algoritmo cuenta con un inicio y sus subprogramas llamados también diseño modular.
• La función es una estructura autónoma similar a los módulos. La diferencia radica en que la
función se usa para devolver un solo valor de un tipo de dato simple a su punto de
referencia. La función se relaciona especificando su nombre en una expresión, como si fuera
una variable ordinaria de tipo simple. Las funciones se dividen en estándares y definidas por
el usuario.

• Estándar: Son funciones proporcionadas por cualquier lenguaje de programación de alto


nivel, y se dividen en aritméticas y alfabéticas.

• Definidas por el usuario: son funciones que puede definirlas el programador con el
propósito de ejecutar alguna función específica, y que por lo general se usan cuando se trata
de hacer algún cálculo que será requerido en varias ocasiones en la parte principal del
algoritmo.

DISEÑO DE ALGORITMOS APLICADOS A PROBLEMAS.


1.2 Algoritmos diseño.
Para llegar a la realización de un programa es necesario el diseño previo de algoritmo, de modo
que sin algoritmo no puede existir un programa.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan
como de la computadora que lo ejecuta. En cada problema el algoritmo se puede expresar en
un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo,
el algoritmo será siempre el mismo.

Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy importante


será el diseño de algoritmos. El diseño de la mayoría de los algoritmos requiere creatividady
conocimientos profundos de la técnica de la programación.
Técnicas de diseño de algoritmos
• Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto
de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es
óptima.
• Algoritmos paralelos: permiten la división de un problema en subproblemas de forma
que se puedan ejecutar de forma simultánea en varios procesadores.
• Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en
función de valores pseudoaleatorios.
• Algoritmos determinísticos: el comportamiento del algoritmo es lineal: cada paso del
algoritmo tiene únicamente un paso sucesor y otro antecesor.
• Algoritmos no determinísticos: el comportamiento del algoritmo tiene forma de árbol y
a cada paso del algoritmo puede bifurcarse a cualquier número de pasos
inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
• Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una
solución de cada uno de ellos para después unirlas, logrando así la solución al problema
completo.
• Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas
basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
• Programación dinámica: intenta resolver problemas disminuyendo su coste
computacional aumentando el coste espacial.
• Ramificación y acotación: se basa en la construcción de las soluciones al problema
mediante un árbol implícito que se recorre de forma controlada encontrando las
mejores soluciones.
• Vuelta atrás (backtracking): se construye el espacio de soluciones del problema en un
árbol que se examina completamente, almacenando las soluciones menos costosas.

Características de algoritmo
La resolución de un problema exige el diseño de un algoritmo que resuelva el problema, como
lo muestra la siguiente figura:

Pasos para la resolución de un problema


1.- Diseño del algoritmo que describe la secuencia ordenada de pasos sin ambigüedades- que
conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo).
2.- Expresar el algoritmo como un programa en un lenguaje adecuado. (Fase de codificación).
3.- Ejecución y validación del programa por la computadora.

Características de los algoritmos


Un algoritmo debe:
• ser preciso e indicar el orden de realización de cada paso.
• estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado
cada vez.
• ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe
tener un número finito de pasos.
Existen dos herramientas utilizadas conceptualmente para diseñar algoritmos: los diagramas de
flujo y el pseudocódigo.

Das könnte Ihnen auch gefallen