domingo, 25 de septiembre de 2011

6.1 - ANÁLISIS DE PROBLEMAS

ANÁLISIS DE PROBLEMAS



Cuando un usuario plantea a un programador un problema que resolver mediante su ordenador, por lo general ese usuario tendrá conocimientos más o menos amplios sobre el dominio del problema, pero no es habitual que tenga conocimientos de informática. Por ejemplo, un contable que necesita un programa para llevar la contabilidad de una empresa será un experto en contabilidad (dominio del problema), pero no tiene por qué ser experto en programación.

Del mismo modo, el informático que va a resolver un determinado problema puede ser un experto programador, pero en principio no tiene por qué conocer el dominio del problema; siguiendo el ejemplo anterior, el informático que hace un programa no tiene por qué ser un experto en contabilidad.

Por ello, al abordar un problema que se quiere resolver mediante un ordenador, el programador necesita de la experiencia del experto del dominio para entender el problema. Al final, si se quiere llegar a una solución satisfactoria es necesario que:
El problema esté bien definido con el máximo detalle
Las especificaciones de las entradas y salidas del problema, deben ser descritas también en detalle:
  •  ¿Qué datos son necesarios para resolver el problema?
  • ¿Qué información debe proporcionar la resolución del problema?


6.- ANÁLISIS DE PROBLEMAS

ANÁLISIS DE PROBLEMAS

El análisis de un problema consiste en observar definidamente un problema, para tratar de incluir los datos de entrada y averiguar el proceso para poder llegar a una solución satisfactoria.


Para poder llegar a una solucion satisfactoria es necesario definir correctamente los datos de entrada, el proceso y los datos de salida.

domingo, 11 de septiembre de 2011

5.1- Ejecutables

EJECUTABLES

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.

Sin embargo en un sentido más general, un programa ejecutable no tiene por qué necesariamente contener código de máquina, sino que puede tener instrucciones a interpretar por otro programa. Este tipo de ejecutables son conocidos con el nombre de scripts.

Determinar si un archivo es ejecutable es sobre todo una cuestión de convención. Unos sistemas operativos se basan en la extensión de archivo (como la terminación .exe) y otros lo hacen leyendo los metadatos (como los bits de permiso de ejecución en Unix).

En la mayoría de los sistemas modernos, un archivo ejecutable contiene mucha información que no es parte del programa en sí: recursos como textos e imágenes, requisitos del entorno de ejecución, información simbólica y de depuración, u otra información que ayude al sistema operativo a ejecutar el programa.


INTERFAZ DE LINEA DE COMANDO



Interfaz de Línea de Comandos (CLI), por su acrónimo en inglés de Command Line Interface (CLI), 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.

Las CLI pueden emplearse interactívamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho más automatizada (batch), leyendo comandos desde un archivo de scripts.

Esta interfaz existe casi desde los comienzos de la computación, superada en antigüedad solo por las tarjetas perforadas y mecanismos similares. Existen, para diversos programas y sistemas operativos, para diversos hardware, y con diferente funcionalidad.

Por ejemplo, las CLI son parte fundamental de los Shells o Emuladores de Terminal. Aparecen en todos los desktops (Gnome, KDE, Windows) como un método para ejecutar aplicaciones rápidamente. Aparecen como interfaz de lenguajes interpretados tales como Java, Python, Ruby o Perl. También se utilizan en aplicaciones cliente-servidor, en DBs (Postgres, MySQL, Oracle), en clientes FTP, etc. Las CLI son un elemento fundamental de aplicaciones de ingeniería tan importantes como Matlab y Autocad.

5.- Ejecutables



EJECUTABLES

un ejecutable es tradicionalmente un archivo binario cuyo contenidos se interpreta por el ordenador como un programa.

dependiendo del tipo de que se traten loas instrucciones hablaremos de ejecutables portables y no potables.




INTERFAZ DE LINEA DE COMANDO


es un método que permite a las personas dar intrucciones a un programa informatico por medio de texto simple.

Los CLI (comand line interface) existen para diversos programas y sistemas operativos.

4.1 Editores de texto


EDITOR DE TEXTO

Un editor de texto es un programa que permite crear o modificar archivosdigitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor.
Por ejemplo un editor de 8 bytes lee el numero binario 0110 0001 en el archivo y lo representara en la pantalla por la figura “a”, que el usuario reconoce como la letra “a”, y ofrecerá al usuario las funciones necesarias para cambiar el numerobinario del archivo.
Los editores 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 o el código fuente de un programa.
El archivo creado por un editor de texto incluye por convención en DOS y Microsoft la extensión .txt , aunque pueda ser cambiada a cualquier otra con posterioridad.
Los editores de texto se distinguen de los procesadores de texto en que se usan para escribir solo texto, sin formato y sin imágenes, es decir sin diagramación.
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, el editor de texto debe de ser considerado como una herramienta de trabajo del programador.
son programas que permiten introducir texto, letras o números, y redactarlos, rehacer, copiarlo, etc.
todo esto con un diseño minimalista
por ejemplo: bloc de notas.

PROCESADORES DE TEXTO


Los procesadores de textos nos brindan una amplia gama de funcionalidades, ya sean tipográficas u organizativas, con algunas variantes según el programa de que se disponga. Como regla general, todos pueden trabajar con distintos tipos y tamaños de letra, formato de párrafo y efectos artísticos; además de brindar la posibilidad de intercalar o superponer imágenes u otros objetos gráficos dentro del texto.

Como ocurre con la mayoría de las herramientas informáticas, los trabajos realizados en un procesador de textos pueden ser guardados en forma de archivos, usualmente llamados documentos, así como impresos a través de diferentes medios.
Ademas, es un programa que permite introducir y editar texto con funciones mas sofisticadas, como formulas algebraicas, tablas, entre otros.

INTERPRETE

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 loscompiladores 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 ydepuració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).

Para mejorar el desempeño, algunas implementaciones de programación de lenguajes de programación pueden interpretar o compilar el código fuente original en una más compacta forma intermedia y después traducir eso al código de máquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. Python, UCSD Pascal y Java).
es un programa que permite analizar y ejecutar otros programas escritos en un lenguaje de alto nivel.
algunos lenguajes interpretados son:
  • Perl
  • PHP
  • Javascript
  • asp
  • Phyton
  • Ruby
COMPILADOR


El compilador es un programa que se encarga de traducir los programas escritos por el programador en lenguaje de alto nivel (entendible por el ser humano) a un lenguaje de bajo nivel que es el comprensible por la máquina y que, de esta manera, permite que pueda ser ejecutado por la computadora. Sería la transformación del código fuente a un lenguaje máquina o código objeto. A este proceso de traducción se le conoce como compilación.
La compilación se realiza una vez y el programa se ejecuta cuantas veces quiera.
es un programa que permite traducir el código fuente de un lenguaje de alto nivel, a otro lenguaje de nivel inferior.


Partes de un compilador.
  • análisis
  • síntesis
  • front end
  • back end

4.- Editores de texto

EDITOR DE TEXTO

son programas que permiten introducir texto, letras o números, y redactarlos, rehacer, copiarlo, etc.
todo esto con un diseño minimalista
por ejemplo: bloc de notas.

PROCESADORES DE TEXTO

es un programa que permite introducir y editar texto con funciones mas sofisticadas, como formulas algebraicas, tablas, entre otros.

INTERPRETE

es un programa que permite analizar y ejecutar otros programas escritos en un lenguaje de alto nivel.
algunos lenguajes interpretados son:
  • Perl
  • PHP
  • Javascript
  • asp
  • Phyton
  • Ruby
COMPILADOR

es un programa que permite traducir el código fuente de un lenguaje de alto nivel, a otro lenguaje de nivel inferior.

Partes de un compilador:
  • análisis
  • síntesis
  • front end
  • back end


3.1 Programacion.

PROGRAMAS INFORMÁTICOS




Un programa informático 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.

En informática, se los denomina binarios, debido a que una vez que han pasado por el proceso de compilación y han sido creados, las instrucciones que se escribieron en un lenguaje de programación que los humanos usan para escribirlos con mayor facilidad, se han traducido al único idioma que la máquina comprende, combinaciones de ceros y unos llamadacódigo máquina. El mismo término, puede referirse tanto a un programa ejecutable, como a su código fuente, el cual es transformado en un binario cuando es compilado.

Generalmente el código fuente lo escriben profesionales conocidos como programadores. Se escribe en un lenguaje que sigue uno de los siguientes dos paradigmas: imperativo o declarativo y que posteriormente puede ser convertido en una imagen ejecutable por un compilador.


PROGRAMACIÓN SIMULTÁNEA
Muchos programas pueden correr simultáneamente en la misma computadora, a lo cual se le conoce como multitarea y puede lograrse a través de mecanismos de software o de hardware. Los sistemas operativos modernos pueden correr varios programas a través del planificador de procesos un mecanismo de software para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa mientras estos están corriendo. También se puede lograr la multitarea por medio del hardware; las computadoras modernas que usan varios procesadores o procesadores con varios núcleos pueden correr muchos programas a la vez.

PARADIGMAS DE PROGRAMACIÓN

  1. Imperativo: es considerado el más común y está representado, por ejemplo, por C o BASIC.
  2. Funcional: está representado por Scheme o Haskell. Este es un caso del paradigma declarativo.
  3. Lógico: está representado por Prolog. Este es otro caso del paradigma declarativo.
  4. Declarativo: por ejemplo la programación funcional, la programación lógica, o la combinación lógico-funcional.
  5. Orientado a objetos: está representado por Smalltalk, un lenguaje completamente orientado a objetos.