Resumen de
informática
NOMBRE;
LENIN ALFONZO GONZALEZ
CARRERA;
INFORMÁTICA
CI;
23.471.434
PROFESOR;
JESUS
LENGUAJE DE PROGRAMACIÓN
en informática, cualquier lenguaje artificial
que puede utilizarse para definir una secuencia de instrucciones para su
procesamiento por un ordenador o computadora. Es complicado definir qué es y
qué no es un lenguaje de programación. Se asume generalmente que la traducción
de las instrucciones a un código que comprende la computadora debe ser
completamente sistemática. Normalmente es la computadora la que realiza la
traducción.
LENGUAJES DE BAJO NIVEl
Vistos
a muy bajo nivel, los microprocesadores procesan exclusivamente señales
electrónicas binarias. Dar una instrucción a un microprocesador supone en
realidad enviar series de unos y ceros espaciadas en el tiempo de una forma
determinada. Esta secuencia de señales se denomina código máquina. El código
representa normalmente datos y números e instrucciones para manipularlos. Un
modo más fácil de comprender el código máquina es dando a cada instrucción un
mnemónico, como por ejemplo STORE, ADD o JUMP. Esta abstracción da como
resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de
cada microprocesador.Los lenguajes de bajo nivel permiten crear programas muy
rápidos, pero que son a menudo difíciles de aprender. Más importante es el hecho
de que los programas escritos en un bajo nivel son prácticamente específicos
para cada procesador. Si se quiere ejecutar el programa en otra máquina con
otra tecnología, será necesario reescribir el programa desde el principio.
LENGUAJES DE ALTO NIVEL
Por
lo general se piensa que los ordenadores son máquinas que realizan tareas de
cálculos o procesamiento de textos. La descripción anterior es sólo una forma
muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre
lo que se pide a la computadora y lo que realmente comprende. Existe también
una relación compleja entre los lenguajes de alto nivel y el código máquina.Los
lenguajes de alto nivel son normalmente fáciles de aprender porque están
formados por elementos de lenguajes naturales, como el inglés. En BASIC, el
lenguaje de alto nivel más conocido, los comandos como 'IF CONTADOR = 10 THEN
STOP' pueden utilizarse para pedir a la computadora que pare si CONTADOR es
igual a 10. Por desgracia para muchas personas esta forma de trabajar es un
poco frustrante, dado que a pesar de que las computadoras parecen comprender un
lenguaje natural, lo hacen en realidad de una forma rígida y sistemática
INTÉRPRETES Y COMPILADORES
La
traducción de una serie de instrucciones en lenguaje ensamblador (el código
fuente) a un código máquina (o código objeto) no es un proceso muy complicado y
se realiza normalmente por un programa especial llamado compilador. La
traducción de un código fuente de alto nivel a un código máquina también se
realiza con un compilador, en este caso más complejo, o mediante un intérprete.
Un compilador crea una lista de instrucciones de código máquina, el código
objeto, basándose en un código fuente. El código objeto resultante es un
programa rápido y listo para funcionar, pero que puede hacer que falle el
ordenador si no está bien diseñado. Los intérpretes, por otro lado, son más
lentos que los compiladores ya que no producen un código objeto, sino que
recorren el código fuente una línea cada vez. Cada línea se traduce a código
máquina y se ejecuta. Cuando la línea se lee por segunda vez, como en el caso
de los programas en que se reutilizan partes del código, debe compilarse de
nuevo. Aunque este proceso es más lento, es menos susceptible de provocar
fallos en la computadora.
ALGORITMO
En matemáticas, ciencias de
la computación y disciplinas relacionadas, un algoritmo (del griego y latín,
dixit algorithmus y este a su vez del matemático persa Al-Juarismi1 ) es un
conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y
finitas que permite realizar una actividad mediante pasos sucesivos que no
generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y
una entrada, siguiendo los pasos sucesivos se llega a un estado final y se
obtiene una solución. Los algoritmos son el objeto de estudio de la
algoritmia.1
En la vida cotidiana, se
emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son
los manuales de usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos
en matemática son el algoritmo de la división para calcular el cociente de dos
números, el algoritmo de Euclides para obtener el máximo común divisor de dos
enteros positivos, o el método de Gauss para resolver un sistema lineal de
ecuaciones.
En
general, no existe ningún consenso definitivo en cuanto a la definición formal
de algoritmo. Muchos autores los señalan como listas de instrucciones para
resolver un problema abstracto, es decir, que un número finito de pasos
convierten los datos de un problema (entrada) en una solución (salida).1 2 3 4
5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que
terminar o resolver un problema en particular. Por ejemplo, una versión modificada
de la criba de Eratóstenes que nunca termine de calcular números primos no deja
de ser un algoritmo.7
A lo
largo de la historia varios autores han tratado de definir formalmente a los
algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros.8
9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como
son números, símbolos o gráficas mientras que, en general, los algoritmos
funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la
parte común en todas las definiciones se puede resumir en las siguientes tres
propiedades siempre y cuando no consideremos algoritmos paralelos:7
Tiempo
secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–,
definiendo así una secuencia de estados "computacionales" por cada
entrada válida (la entrada son los datos que se le suministran al algoritmo
antes de comenzar).
Estado
abstracto. Cada estado computacional puede ser descrito formalmente utilizando
una estructura de primer orden y cada algoritmo es independiente de su
implementación (los algoritmos son objetos abstractos) de manera que en un
algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
Exploración
acotada. La transición de un estado al siguiente queda completamente
determinada por una descripción fija y finita; es decir, entre cada estado y el
siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de
términos del estado actual.
En
resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada
paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora
en particular, y además tiene un límite fijo en cuanto a la cantidad de datos
que se pueden leer/escribir en un solo paso. Esta amplia definición abarca
tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por
ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al
menos en principio, con números de precisión infinita; sin embargo no es
posible programar la precisión infinita en una computadora, y no por ello dejan
de ser algoritmos.10 En particular es posible considerar una cuarta propiedad
que puede ser usada para validar la tesis de Church-Turing de que toda función
calculable se puede programar en una máquina de Turing (o equivalentemente, en
un lenguaje de programación suficientemente general):10
Aritmetizabilidad.
Solamente operaciones innegablemente calculables están disponibles en el paso
inicial.
MEDIOS DE EXPRESIÓN DE UN ALGORITMO
Los
algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje
natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre
otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.
El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del
lenguaje natural. Dichas expresiones son formas más estructuradas para
representar algoritmos; no obstante, se mantienen independientes de un lenguaje
de programación específico.
La
descripción de un algoritmo usualmente se hace en tres niveles:
1. Descripción de alto nivel. Se
establece el problema, se selecciona un modelo matemático y se explica el
algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo
detalles.
2. Descripción formal. Se usa
pseudocódigo para describir la secuencia de pasos que encuentran la solución.
3. Implementación. Se muestra el
algoritmo expresado en un lenguaje de programación específico o algún objeto
capaz de llevar a cabo instrucciones.
También
es posible incluir un teorema que demuestre que el algoritmo es correcto, un
análisis de complejidad o ambos
No hay comentarios:
Publicar un comentario