sábado, 10 de septiembre de 2011

ANALISIS

PROCESO:

  ENTRADA.                                        PROCESO.                                      SALIDA.

  igreso de datos                                analisis del problema.                             Solucion.


 FUNCION DEL ANALISIS:
Un análisis en sentido amplio es una descomposición de un todo en partes para poder estudiar su estructura, sistemas operativos o funciones.etc
La parte esencial de la planeación y diseño la constituye el analisis de los sistemas hipoteticos
desde el punto de vista de las prepociciones y de las condiciones limitativas.
Por otra parte, un análisis puede ser un estudio de los límites, las características y las posibles soluciones de un problema.

HERRAMIENTAS:
  • Seleccionar la herramienta correcta.
  • Reconocer el momento en el que se debe retroceder para adquirir mayores facilidades.
  • Consultar con los expertos.
  • Estar en la capasidad de enterderse en el mismo lenguage.
  • Conocer los limites de la utilización de determinada herramienta.

viernes, 9 de septiembre de 2011

EJECUTABLES

EJECUTABLE:
 un ejecutable o archivo ejecutable, es un archivo binario quesu contenido se interpreta 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.
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.

INTERFAZ DE LINEA DECOMANDO:
es un método que permite a las personas dar instrucciones a algún programa 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.

ANALISIS DE PROBLEMA

     ENTRADA.                                        PROCESO.                                      SALIDA.

  igreso de datos                                analisis del problema.                             Solucion.


 FUNCION DEL ANALISIS:
La parte esencial de la planeación y diseño la constituye el analisis de los sistemas hipoteticos
desde el punto de vista de las prepociciones y de las condiciones limitativas.

HERRAMIENTAS:
  • Seleccionar la herramienta correcta.
  • Reconocer el momento en el que se debe retroceder para adquirir mayores facilidades.
  • Consultar con los expertos.
  • Estar en la capasidad de enterderse en el mismo lenguage.
  • Conocer los limites de la utilización de determinada herramienta.

jueves, 8 de septiembre de 2011

EJECUTABLES

-ejecutables:
eL ejecutable es tradicionalmente un archivo binario cuyo contenido
se interpreta por el ordenador.
-tipos de ejecutables: portables y no portables.

es un método que permite a las personas dar instrucciones a algún programa por medio de una línea de texto simple-interfaz de linea de comando:

-funcionamiento:
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).

miércoles, 7 de septiembre de 2011

EDITOR DE TEXTO, PROCESADOR DE TEXTO, INTERPRETE Y COMPILADOR

EDITOR DE TEXTO:
Un editor de texto permite crear y modificar archivos digitales 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.
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, scripts o el código fuente de algún programa.
El archivo creado por un editor de texto incluye por convención en DOS y Microsoft Windows la extensión ".txt", aunque pueda ser cambiada a cualquier otra con posterioridad.

PROCESADOR DE TEXTO:
Un procesador de texto es una aplicación informática destinada a la creación o modificación de documentos.
Los procesadores de textos nos brindan una amplia funcionalidad. Todos los procesadores 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 imágenes u otros objetos gráficos dentro del texto.
Los procesadores de texto también incorporan desde hace algunos años correctores de ortografía y gramática, así como diccionarios multilingües y de sinónimos.

INTERPRETES:
Es un programa capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes a diferencia 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.
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.
 COMPILADORES:
Un compilador es un programa 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 simplemente texto. Este proceso de traducción se conoce como compilación.
- PAERTES DE UN 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.
- Back-end:
  es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.

- 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.

martes, 6 de septiembre de 2011

DIFERENCIA ENTRE EDITOR Y PROCESADOR DE TEXTO, INTERPRETE Y COMPILADOR

DIFERENCIA ENTRE EDITOR Y PROCESADOR 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.

Los procesadores de textos a diferiencia de los editores nos opermiten poner formato al texto 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



INTERPRETE
es un programa capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes a diferencia 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.

COMPILADOR:
Un compilador es un programa 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 simplemente texto. Este proceso de traducción se conoce como compilación.
- PAERTES DE UN COMPILADOR:
-  Análisis
-  Síntesis
-  Front-end
-  Back-end

- TIPOS DE COMPILADORES:
 - Compiladores cruzados
 - Compiladores optimizadores
 - Compiladores de una sola pasada
 - Compiladores de varias pasadas
 - Compiladores JIT

sábado, 3 de septiembre de 2011

PROGRAMA, PROGRAMACION Y PARADIGMA DE PROGRAMACION

PROGRAMA:
Un programa 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.

De acuerdo a sus funciones, se clasifican en software de sistema y software de aplicación. En los computadores actuales, al hecho de ejecutar varios programas de forma simultánea y eficiente, se le conoce como multitarea.
Una vez escritos, pueden ser ejecutados de diversas formas:
  • Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpretar y a los programas que lo hacen se los conoce como intérpretes.
  • Traduciendo el código escrito del programa (lo que se denomina código fuente), a su equivalente en lenguaje máquina. A este proceso se le llama compilar y al programa traductor se le denomina compilador. Ejemplos de esto son: El lenguaje C,
EJECUCION Y ALMACENAMIENTO DE PROGRAMAS:

Típicamente, los programas se almacenan en una memoria no volátil (por ejemplo un disco), para que luego el usuario de la computadora, directa o indirectamente, solicite su ejecución. Al momento de dicha solicitud, el programa es cargado en la memoria de acceso aleatorio o RAM del equipo, bajo el control del software llamado sistema operativo, el cual puede acceder directamente al procesador. El procesador ejecuta (corre) el programa, instrucción por instrucción hasta que termina. A un programa en ejecución se le suele llamar también proceso. Un programa puede terminar su ejecución en forma normal o por causa de un error, dicho error puede ser de software o de hardware.

- Programas ejecutados manualmente:
Los programas históricamente se cargaron manualmente al procesador central mediante interruptores. Una instrucción era representada por una configuración de estado abierto o cerrado de los interruptores. Después de establecer la configuración, se ejecutaba un botón de ejecución. Este proceso era repetitivo. También, históricamente los programas se cargaban manualmente mediante una cinta de papel o tarjetas perforadas. Después de que el programa se cargaba, la dirección de inicio se establecía mediante interruptores y el botón de ejecución se presionaba.

-Progamas generados automaticos
La programación automática es un estilo de programación que crea código fuente mediante clases genéricas, prototipos, plantillas, aspectos, y generadores de código para aumentar la productividad del programador. El código fuente se genera con herramientas de programación tal como un procesador de plantilla o un IDE. La forma más simple de un generador de código fuente es un procesador macro, tal como el preprocesador de C, que reemplaza patrones de código fuente de acuerdo a reglas relativamente simples.

-Ejecucion simultanea:
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.

PROGRAMACION:
Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposición del programador para que este pueda comunicarse con los dispositivos hardware y software existentes.
Lenguaje de programación es un conjunto de sintaxis y reglas semánticas que definen los programas del computador, que los programadores usan para comunicar instrucciones a una computadora y poder ejecutar un programa

Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:
  • programación estructurada
  • programación modular
  • programación orientada a objetos (POO)
  • programación declarativa
El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los siguientes pasos:

  1. Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.
  2. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.
  3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.
  4. Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
  5. Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación debería resultar inmediata.
  6. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.).

COMPILACION:

El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.
El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, para que el código éste directamente ejecutable por el procesador. A este proceso se le llama compilación.

OBJETIVOS DE LA PROGRAMACION:
La programación debe perseguir la obtención de programas de calidad. Para ello se establece una serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más importantes son los siguientes:
  • Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.
  • Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.
  • Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de consideración al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que genera, etc.).
  • Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la que se elaboró. La portabilidad es una característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a más usuarios más fácilmente.
PARADIGMA DE PROGRAMACION:

Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas claramente delimitados. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.

PARADIGMAS MAS COMUNES:
-Imperativo(algoritmico). Programacion orientada a objeto y programacion extructurada.
es considerado el más común y está representado, por ejemplo, por C o BASIC.

La programación imperativa, es un paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
La implementación de hardware de la mayoría de computadores es imperativa; prácticamente todo el hardware de los computadores está diseñado para ejecutar código de máquina, que es nativo al computador, escrito en una forma imperativa. Esto se debe a que el hardware de los computadores implementa el paradigma de las Máquinas de Turing. Desde esta perspectiva de bajo nivel, el estilo del programa está definido por los contenidos de la memoria, y las sentencias son instrucciones en el lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador).
Los lenguajes imperativos de alto nivel usan variables y sentencias más complejas, pero aún siguen el mismo paradigma. Las recetas y las listas de revisión de procesos, a pesar de no ser programas de computadora, son también conceptos familiares similares en estilo a la programación imperativa; cada paso es una instrucción, y el mundo físico guarda el estado (Zoom).
Los primeros lenguajes imperativos fueron los lenguajes de máquina de los computadores originales. En estos lenguajes, las instrucciones fueron muy simples, lo cual hizo la implementación de hardware fácil, pero obstruyendo la creación de programas complejos

-declarativo:
La Programación 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.

Existen varios tipos de lenguajes declarativos:
  • Los lenguajes lógicos, como Prolog.
  • Los lenguajes algebraicos, como Maude y SQL
  • Los lenguajes funcionales, como Haskell
>Prolong:
es un lenguaje de programación lógico e interpretado, bastante conocido en el medio de investigación en Inteligencia Artificial.
Prolog cuenta con operadores para la unificación y comparación, sea con evaluación o sea simbólica, como los siguientes:
  • X is Y %unificación con evaluación.
  • X = Y %unificación simbólica
  • X=:=Y %comparación con evaluación
  • X == Y %comparación simbólica.
Listas:
La representación de hechos simples no es lo común en la clasificación de elementos, sino que se agrupan los elementos de un mismo tipo en una lista.
Las listas son colecciones de elementos en Prolog. Una lista se divide en dos partes: Cabeza. Es el primer elemento de la lista. Cola. Es una lista con el resto de los elementos de la lista. La cabeza y la cola de una lista se separan con el símbolo "|".

 
 
>Maude
Maude es un lenguaje de programación para especificaciones formales mediante el uso de términos
algebraicos. Se trata de un lenguaje interpretado que permite la verificación de propiedades y transformaciones
sobre modelos y que permite ejecutar la especificación como si fuera un prototipo.
Llamamos Core Maude al intérprete de Maude implementado en C++ y que provee toda la funcionalidad
 
>SQL:
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un
lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de
operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo
efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos,
así como también hacer cambios sobre ella.
básica del lenguaje.
 
>HASKELL:
Haskell es un lenguaje de programación puramente funcional de propósito general y
fuertemente tipado. Su nombre proviene del lógico Haskell Curry.
Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones
recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas pueden resultar
en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar
extremadamente tediosas de programar. Haskell es, desde 2002, uno de los lenguajes funcionales
sobre los que más se ha investigado. Se han desarrollado muchas variantes:
 
-Funcional:
la programación funcional es un paradigma de programación declarativa basado en la utilización de
funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones,
en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado. La programación
funcional tiene sus raices en el cálculo lambda, un sistema formal desarrollado en los 1930s para investigar
la definición de función, la aplicación de las funciones y la recursión. Muchos lenguajes de programación
funcionales pueden ser vistos como elaboraciones del cálculo lambda
 
El objetivo es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar
al nivel de la máquina para describir el proceso llevado a cabo por el programa, y evitar el concepto de estado
del cómputo. La secuencia de computaciones llevadas a cabo por el programa se rige única y exclusivamente
por la reescritura de definiciones más amplias a otras cada vez más concretas y definidas, usando lo que se
denominan "definiciones dirigidas"
 
Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones,
entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente
matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de
una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de
efectos colaterales.
 
Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de
construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las
repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas)..
Entre las ventajas que suelen citarse de usar un paradigma funcional en la programación de computadoras,
están las siguientes:
  • Ausencia de efectos colaterales
  • Proceso de depuración menos problemático
  • Pruebas de unidades más confiables
  • Mayor facilidad para la ejecución concurrente

- Logico:

La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcional, programación basada en restricciones, programas DSL (de dominio específico) e híbridos. La programación lógica gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.

- Orientada a objetos:

La programación orientada a objetos o POO (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

La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
  • Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.
  • Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP.
  • Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
  • Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
  • Evento: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
  • Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
  • Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
  • Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
  • Componentes de un objeto: atributos, identidad, relaciones y métodos.
  • Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

viernes, 2 de septiembre de 2011

ALGORITMOS Y LENGUAJES DE PROGRAMACION

ALGORITMO:
es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
Preciso: implica el orden de realización de cada uno de los pasos
Definido: si se sigue dos veces, se obtiene el mismo resultado.
Finito: Tiene un numero determinado de pasos, implica que tiene un fin,
La definición de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendrá:
Entrada: ingrediente y utensilios empleados.
Proceso: elaboración de la receta en la cocina

Salida: terminación del plato.


DIAGRAMA DE FLUJO:
Es la representacion grafica de un algoritmo.
esta es la simbologia que se utiliza para crear un diagrama de flujo.
Nombre
Símbolo
Función
Terminal
'Diagramas de flujo'
Representa el inicio y fin de un programa. También puede representar una parada o interrupción programada que sea necesaria realizar en un programa.
Entrada / salida
'Diagramas de flujo'
Cualquier tipo de introducción de datos en la memoria desde los periféricos o registro de información procesada en un periférico.
Proceso
'Diagramas de flujo'
Cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas, de transformaciones, etc.
Decisión
'Diagramas de flujo'
Indica operaciones lógicas o de comparación entre datos (normalmente dos) y en función del resultado de la misma determina (normalmente si y no) cual de los distintos caminos alternativos del programa se debe seguir
Conector Misma Página
'Diagramas de flujo'
Sirve para enlazar dos partes cualesquiera de un diagrama a través de un conector en la salida y otro conector en la entrada. Se refiere a la conexión en la misma pagina del diagrama
Indicador de dirección o línea de flujo
'Diagramas de flujo'
Indica el sentido de la ejecución de las operaciones
Salida
'Diagramas de flujo'
Se utiliza en ocasiones en lugar del símbolo de salida. El dibujo representa un pedazo de hoja. Es usado para mostrar datos o resultados.

este es un ejemplo de un diagrama de flujo de un numero:




LENGUAJE DE PROGRAMACION:
Es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
  • lenguajes imperativos;
  • lenguajes funcionales.
LENGUAJE IMPERATIVO:
Un lenguaje imperativo 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. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

LENGUAJE FUNCIONAL:
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) 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.
INTERPRETACION Y COMPILACION:
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
  • lenguajes interpretados
  • lenguajes compilados

LENGUAJE INTERPRETADO:
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.

LENGUAJE COMPILADO:
Un programa escrito en un lenguaje compilado 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.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente requiere de la compilación del programa para aplicar los cambios.

LENGUAJE INTERMEDIARIOS:
Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).

A continuación, encontrará una breve lista de los lenguajes de programación actuales:
LenguajePrincipal área de aplicaciónCompilado/interpretado
ADATiempo real Lenguaje compilado
BASICProgramación para fines educativosLenguaje interpretado
CProgramación de sistema Lenguaje compilado
C++Programación de sistema orientado a objetoLenguaje compilado
CobolAdministraciónLenguaje compilado
FortranCálculo Lenguaje compilado
JavaProgramación orientada a Internet Lenguaje intermediario
MATLABCálculos matemáticos Lenguaje interpretado
Cálculos matemáticos Cálculos matemáticosLenguaje interpretado
LISPInteligencia artificial Lenguaje intermediario
Pascal EducaciónLenguaje compilado
PHPDesarrollo de sitios web dinámicosLenguaje interpretado
Inteligencia artificialInteligencia artificialLenguaje interpretado
PerlProcesamiento de cadenas de caracteresLenguaje interpretado


CODIGO ASCII :
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.

Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto como el teclado

Ejemplos:

PROGRAMA, PROGRAMACION Y PARADIGMA DE PROGRAMACION

PROGRAMA:
Es la secuencia de instrucciones que una computadora puede interpretar.

PROGRAMACION:
 es el proceso de diseñar, escribir, depurar y mantener el código fuente de programas computacionales.

PARADIGMA DE PROGRAMACION:
Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que unívocamente trata de resolver uno o varios problemas.

TIPOS:
- interpretativo  (algoritmo).  Programacion orientada a objetos y programacion extructurada.

  • entrada de datos.
  • estados.
  • flujo de control.
  • condicionales.
  • asignacion de memoria.
  ejemplos: java, pascal, PHP, etc.

- declarativo. Programacion funcional y programacion logica.
  • afirmaciones.
  • restriccion o reglas.
  • ecuaciones.
  • preposiciones.
  • transformaciones.
  • incognitas o hipotesis.
- demostrativo
  • programacion de ejemplos
  • generalizar
  • simular

jueves, 1 de septiembre de 2011

ALGORITMOS Y LENGUAJES DE PROGRAMACION

ALGOTIMO

Es la secuencia de pasos logicos para resolver un problema.

DIAGRAMA DE FLUJO:

es la representacion grafica del algoritmo utilizando diferentes simbolos


LENGUAJE DE PROGRAMACION:

Es un lenguaje de diseño para descubrir el conjunto de acciones consecutivos
que un equipodebe ejecutar.
el lenguaje que utiliza el procesador se le denomina lenguaje maquina.

Los lenguajes de programacion generalmente se dividen en dos:
Imperativos  y  Funcionales.