Está en la página 1de 30

UNIVERSIDAD NACIONAL

FAUSTINO SANCHEZ CARRION ESCUELA PROFESIONAL DE FISICA


1. INTRODUCCIN A LA SIMULACIN Y LOS LENGUAJES DE PROGRAMACIN 1.1. SIMULACIN La simulacin es una experimentacin con un modelo de una hiptesis o un conjunto de hiptesis de trabajo.

La simulacin es la mejor alternativa de la observacin de un sistema, nos permite recopilar informacin pertinente acerca del sistema en el paso del tiempo. La simulacin no es una tcnica de optimizacin ms bien se usa para estimar las mediciones del desempeo de un sistema modelado. Un precursor de la simulacin en nuestros das es la tcnica del Montecarlo, esquema dirigido hacia sistemas estocsticos o determinsticos con base en el muestreo aleatorio, en consecuencia la simulacin es un experimento estadstico (Handy A. Taha).

Thomas T. Goldsmith Jr. y Estle Ray Mann la define as: Simulacin es una tcnica numrica para conducir experimentos en una computadora digital. Estos experimentos comprenden ciertos tipos de relaciones matemticas y lgicas, las cuales son necesarias para describir el comportamiento y la estructura de sistemas complejos del mundo real a travs de largos periodos.

Una definicin ms formal formulada por R.E. Shannon1 es: La simulacin es el proceso de disear un modelo de un sistema real y llevar a trminos las experiencias con l, con la finalidad de comprender el comportamiento del sistema a evaluar

nuevas estrategias dentro de los lmites impuestos por un cierto criterio o un conjunto de ellos para el funcionamiento del sistema.

1.1.1. ETAPAS PARA REALIZAR UN ESTUDIO DE SIMULACIN

DEFINICIN DEL SISTEMA Consiste en estudiar el contexto del problema, identificar los objetivos del proyecto, especificar los ndices de medicin de la efectividad del sistema, especificar los objetivos especficos del modelamiento y definir el sistema que se va a modelar.

FORMULACIN DEL MODELO Una vez definidos con exactitud los resultados que se esperan obtener del estudio, se define y construye el modelo con el cual se obtendrn los resultados deseados. En la formulacin del modelo es necesario definir todas las variables que forman parte de l, sus relaciones lgicas y los diagramas de flujo que describan en forma completa el modelo.

COLECCIN DE DATOS

Es importante que se definan con claridad y exactitud los datos que el modelo va a requerir para producir los resultados deseados.

IMPLEMENTACION DEL MODELO EN LA COMPUTADORA

Con el modelo definido, el siguiente paso es decidir si se utiliza algn lenguaje como el fortran, algol, etc., o se utiliza algn paquete como Promodel, Stella, simula, etc., para procesarlo en la computadora y obtener los resultados deseados.

VERIFICACIN

El proceso de verificacin consiste en comprobar que el modelo simulado cumple con los requisitos de diseo para los que se elabor.2 Se trata de evaluar que el modelo se comporta de acuerdo a su diseo del modelo

VALIDACIN DEL SISTEMA A travs de esta etapa es valorar las diferencias entre el funcionamiento del simulador y el sistema real que se est tratando de simular.3 Las formas ms comunes de validar un modelo son: 1. La opinin de expertos sobre los resultados de la simulacin. 2. La exactitud con que se predicen datos histricos. 3. La exactitud en la prediccin del futuro. 4. La comprobacin de falla del modelo de simulacin al utilizar datos que hacen fallar al sistema real. 5. La aceptacin y confianza en el modelo de la persona que har uso de los resultados que arroje el experimento de simulacin. EXPERIMENTACIN

La experimentacin con el modelo se realiza despus que ste haya sido validado. La experimentacin consiste en generar los datos deseados y en realizar un anlisis de sensibilidad de los ndices requeridos.

EXPERIMENTACIN En esta etapa del estudio, se interpretan los resultados que arroja la simulacin y con base a esto se toma una decisin. Es obvio que los resultados que se obtienen de un estudio de simulacin ayudan a soportar decisiones del tipo semiestructurado.

DOCUMENTACIN

Dos tipos de documentacin son requeridos para hacer un mejor uso del modelo de simulacin. La primera se refiere a la documentacin del tipo tcnico y la segunda se refiere al manual del usuario, con el cual se facilita la interaccin y el uso del modelo desarrollado.

1.1.2. MODELOS DE SIMULACIN

La experiencia puede ser un trabajo de campo o de laboratorio el modelo del mtodo usado para la simulacin sera terico, conceptual o sistmico.

Despus de confirmar la hiptesis ya podemos disear un teorema. Finalmente si este es admitido puede convertirse en una teora o en una ley.

1) MODELO TERICO El 'modelo terico' debe contener los elementos que se precisen para la simulacin. Un ejemplo con trabajo de laboratorio es un programa de estadstica con ordenador que genere nmeros aleatorios y que contenga los estadsticos de la media y sus diferentes versiones. Adems debe ser capaz de determinar la normalidad en trminos de probabilidad de las series generadas. La hiptesis de trabajo es que la media y sus versiones tambin determinan la normalidad de las series. Es un trabajo experimental de laboratorio. Si es cierta la hiptesis podemos establecer la secuencia teorema, teora, ley. Es el modelo principal de todo una investigacin cientfica, gracias a ello podemos definir o concluir la hipotesis, las predicciones, etc. 2) MODELO CONCEPTUAL

El modelo conceptual desea establecer por un cuestionario y con trabajo de campo, la importancia de la discriminacin o rechazo en una colectividad y hacerlo por medio de un cuestionario en forma de una simulacin con una escala de actitud. Despus de ver si la poblacin es representativa o adecuada, ahora la simulacin es la aplicacin del cuestionario y el modelo es el cuestionario para confirmar o rechazar la hiptesis de si existe discriminacin en la poblacin y hacia qu grupo de personas y en que cuestiones. Gran parte de las simulaciones son de este tipo con modelos conceptuales.

3) MODELO SISTMICO

El modelo sistmico es ms pretencioso y es un trabajo de laboratorio. Se simula totales. el El sistema anlisis social de en una de es sus una

representaciones

sistemas

representacin total. Un plan de desarrollo en el segmento de transportes con un modelo de ecologa humana, por ejemplo. El nfasis en la teora general de sistemas es lo adecuado en este tipo de simulaciones. Este mtodo, que es para un Sistema complejo, es sumamente abstracto, no se limita a la descripcin del sistema, sino que debe incluir en la simulacin las entradas y salidas de energa y procesos de homeostasis, autopoiesis y retroalimentacin. Tanto el programa de estadstica, como la escala de actitud, como el sistema total, son perfectas simulaciones de la realidad y modelizan todos los elementos en sus respectivas hiptesis de trabajo. Son tambin un microclima y el ambiente o el escenario en los procesos de simulacin/experimentacin. Otras propiedades que deben

contener las simulaciones es que sean repetibles indefinidamente. Que eviten el efecto de aprendizaje que incita al encuestador a rellenar l mismo los

1.1.3. SIMULACIN POR COMPUTADORA Es un intento de modelar situaciones de la vida real por medio de un programa de computadora, lo que requiere ser estudiado para ver cmo es que trabaja el sistema. Ya sea por cambio de variables, quizs predicciones hechas acerca del comportamiento del sistema. La simulacin por computadora se ha convertido en una parte til del modelado de muchos sistemas naturales en fsica, qumica y biologa, y sistemas humanos como la economa y las ciencias sociales (sociologa computacional),3 as como en dirigir para ganar la penetracin su comportamiento cambiar cada simulacin segn el conjunto de parmetros

iniciales supuestos por el entorno. Las simulaciones por computadora son a menudo consideradas seres humanos fuera de un loop de simulacin. Tradicionalmente, el modelado formal de sistemas ha sido a travs de un modelo matemtico, que intenta encontrar soluciones analticas a problemas que permiten la prediccin del comportamiento de un sistema de un conjunto de parmetros y condiciones iniciales. La simulacin por computadora es frecuentemente usada como un accesorio para, o sustitucin de, sistemas de modelado para los cuales las soluciones analticas de forma cerrada simple no son posibles. Ah se encuentran muchos tipos diferentes de simulacin por computadora, la caracterstica comn que todas ellas comparten es el intento por generar una muestra de escenarios representativos para un modelo en que una enumeracin completa de todos los estados posibles seran prohibitivos o imposibles. Varios paquetes de software existen para modelar por computadora en el funcionamiento de la simulacin se realiza sin esfuerzo y simple (por ejemplo: la simulacin Montecarlo y el modelado estocstico como el Simulador de Riesgo). Es cada vez ms comn escuchar acerca de simulaciones a muchas clases designadas como "ambientes sintticos". Esta etiqueta ha sido adoptada al ampliar la definicin de "simulacin", que abarca virtualmente cualquier representacin computarizada.

1.1.4. SIMULACIN E INFORMATICA

En informtica la simulacin tiene todava mayor significado especializado: Alan Turing us el tmino "simulacin" para referirse a lo que pasa cuando una computadora digital corre una tabla de estado (corre un programa) que describe las transiciones de estado, las entradas y salidas de una mquina sujeta a discreto-estado. La simulacin computarizada de una mquina sujeta.

En programacin, un simulador es a menudo usado para ejecutar un programa que tiene que correr en ciertos tipos de inconvenientes de computadora o en un riguroso controlador de prueba de ambiente. Por ejemplo, los simuladores son frecuentemente usados para depurar un microprograma (microcdigo) o algunas veces programas de aplicacin comercial. Dado que, la operacin de computadoras es simulada, toda la informacin acerca de la operacin de computadoras es directamente disponible al programador, y la velocidad y ejecucin pueda variar a voluntad. Los simuladores pueden ser usados para interpretar la ingeniera de seguridad o la prueba de diseo de lgica VLSI, antes de que sean construidos. En informtica terica el trmino "simulacin" representa una relacin entre los sistemas de transicin de estado. Esto es usado en el estudio de la semntica operacional. En el rea de las ciencias son de gran ayuda ya que los estudiantes relacionan conceptos abstractos con reales (el choque de molculas) y tambin ayuda en el sentido de los recursos ya que solo se tiene que disponer con un par de computadores y no con todo el aparataje de un laboratorio entero. 1.1.5. SIMULACIN EN LA PREPARACIN La simulacin es usada en el entrenamiento o preparacin tanto del personal civil como militar; esto sucede cuando es prohibitivamente caro o simplemente muy peligroso para permitirle usar equipo real a un aprendiz en el mundo real. En esta ltima situacin ellos aprendern valiosas lecciones en un ambiente virtual seguro. La conveniencia es permitir errores durante el entrenamiento para un sistema crtico de seguridad. El entrenamiento simulado tpicamente viene en tres categoras: 1. Simulacin de "Vida", es cuando las personas reales usan equipo simulado en el mundo real. 2. Simulacin "Virtual", es cuando las personas reales usan equipo simulado en mundos simulados o ambientes virtuales.

3. Simulacin "Constructiva", es cuando personas simuladas, usan equipo simulado, en ambientes simulados. 1.1.6. SIMULACIN EN LA EDUCACIN

Este tipo de simulacin es un tanto parecida a la de entrenamiento o preparacin. Ellas se enfocan en tareas especficas. En el pasado los videos eran usados por maestros y para educar alumnos a observar, solucionar problemas y jugar un rol; sin embargo se ha visto desplazada por la simulacin, puesto que sta incluye vietas narrativas animadas, stas son videos de caricaturas hipotticas e historias basadas en la realidad, envolviendo a la clase en la enseanza y aprendizaje, tambin se usa para evaluar el aprendizaje, resolver problemas de habilidades y disposicin de los nios, y el servicio de los profesores.

1.1.7. SIMULACIN EN LAS CIENCIAS NATURALES

Los experimentos basados en tcnicas como la espectroscopa de RMN proveen datos detallados sobre el comportamiento de la materia. Sin embargo, para interpretar estos experimentos y para obtener una resolucin mayor en espacio y tiempo, tenemos que recurrir a modelos tericos. La resolucin analtica de estos modelos es imposible para la mayora de los sistemas de inters prctico. Por ello, es necesario recurrir a la resolucin numrica de estos modelos en forma de simulaciones. Una simulacin busca recrear los elementos que se consideran importantes en la reproduccin de un fenmeno observado empricamente. Ejemplos importantes son la dinmica molecular y la qumica computacional, ambas utilizadas ampliamente para estudiar el plegamiento de protenas en la biofsica y las propiedades mecnicas de polmeros artificiales en la ciencia de materiales.

1.1.8. SIMULACIN MEDICA

Este tipo de simulacin incrementa cada vez ms en su desarrollando y se estn desplegando cada vez ms para ensear procedimientos teraputicos y de diagnstico as como conceptos y la toma de decisin mdica al personal en las profesiones mdicas. Estos simuladores se han estado desarrollando para el entrenamiento para una gama de procedimientos bsicos como la transfusin de sangre, una ciruga laparoscpica, cuidados traumatolgicos auscultacin pulmonar y cardiaca, etc.

1.2. FSICA COMPUTACIONAL

Se denomina fsica computacional a una rama de la fsica que se centra en la elaboracin de modelos por ordenador de sistemas con muchos grados de libertad. En general, se efectan modelos microscpicos en los cuales las "partculas" obedecen a una dinmica simplificada, y se estudia el que puedan reproducirse las propiedades macroscpicas a partir de este modelo muy simple de las partes constituyentes. La manera en que se realizan las simulaciones es resolviendo las ecuaciones que gobiernan el sistema. Por lo general, son grandes sistemas de ecuaciones diferenciales ordinarias o ecuaciones diferenciales a derivadas parciales, que no pueden ser resueltos de manera analtica. A menudo, la dinmica simplificada de las "partculas" tiene cierto grado de aleatoriedad. En general, esta vertiente se denomina Mtodo Monte Carlo,

nombre que le viene por los casinos de Monte Carlo como forma jocosa de recordar que el mtodo usa la aleatoriedad. Otras simulaciones se basan en que la evolucin de una "partcula" en el sistema depende, exclusivamente, del estado de las partculas vecinas, y se rige mediante reglas muy simples y, en principio, determinadas. A esto se le llama simulaciones con Autmatas Celulares. Un ejemplo clsico, aunque ms matemtico que fsico, es el famoso Juego de la Vida, ideado por John Conway. La fsica computacional tiene sus aplicaciones ms relevantes en Fsica de estado Slido (magnetismo, estructura electrnica, dinmica molecular, cambios de fase, etc.), Fsica No Lineal, dinmica de fluidos y astrofsica (simulaciones del Sistema Solar, por ejemplo). Las simulaciones que se realizan en fsica computacional requieren gran capacidad de clculo, por lo que en muchos casos es necesario utilizar supercomputadores o clusters de computadores en paralelo. 1.3. FUNDAMENTOS DE PROGRAMACION 1.3.1. LOS PROGRAMAS (SOTFWARE) El programa o software de una computadora es un conjunto de instrucciones de programa detalladas que controlan y coordinan los componentes del hardware de una computadora y controlan las operaciones de un sistema informtico (Luis Joyanes Aguilar). El software se divide en dos grupos, software del sistema y software de aplicaciones. El proceso de escribir un programa se denomina programacin y el conjunto de instrucciones que se utilizan para escribir un programa se llama lenguaje de programacin (Ricardo Marcelo Villalobos).

1)

SOFTWARE DEL SISTEMA El software del sistema coordina las diferentes partes de un sistema de computadora y conecta e interacta entre el software de aplicacin y el hardware de la computadora. Otro tipo de software de sistema que gestiona, controla las actividades de la computadora y realiza tareas de procesos comunes, se denomina utility o utilidades. El software del sistema que gestiona y controla las actividades de la computadora se denomina sistema operativo. Otro software de sistema son los programas traductores (Luis Joyanes Aguilar). En resumen el software de sistema es el conjunto de programas indispensables para que la mquina funcione.

2)

SOFTWARE DE APLICACIN El software de aplicacin tiene con funcin principal asistir y ayudar a un usuario de computadora para ejecutar tareas especficas. Los programas de aplicacin se pueden desarrollar son los diferentes lenguajes y herramientas de software. Por ejemplo una aplicacin de procesamiento de textos (Word Proccessing) tal como Word o Word Perfect ayuda a crear documentos, o una hoja de clculo (Excel) ayuda a automatizar procesos tediosos o repetidos clculos matemticos (Luis Joyanes Aguilar).

1.3.2. LENGUAJE DE PROGRAMACION Los lenguajes de programacin se utilizan para escribir programas.los programas de las computadoras constan de una secuencia de

instrucciones que se codifican como consecuencias de dgitos numricos que podrn entender dichas computadoras. Existen tres tipos de lenguaje de programacin. a) Lenguaje mquina Fue el primer lenguaje utilizado en la programacin de computadoras, pero se dejo de utilizarse por su dificultad y compilacin, utiliza el alfa binario que consta de los nicos smbolos 0 y 1, denominados bits. Sus instrucciones son cadenas binarias (cadena o serie de caracteres de dgitos 0y1) que especifican una operacin, es el nico que entiende directamente la computadora y es dependiente de la mquina.
Ventajas: Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de

programacin. Mnima ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la compilacin del programa equivalente escrito en otros lenguajes. Desventajas: Las instrucciones son difciles de recordar y los programas resultan largos y laboriosos de escribir y tambin de corregir y depurar. Poca fiabilidad Los programas slo son ejecutables en el mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que los hace prcticamente no recomendables.

Lenguaje mquina cdigo binario Cdigo de operacin


00010101 10000001 Cargar contenido de la direccin de memoria 129 en el acumulador 00010111 10000010 Sumar contenido de la direccin de memoria 130 al acumulador

Direccin

Significado

b) Lenguaje de bajo nivel


Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la computadora en particular El lenguaje de bajo nivel por excelencia es el ensamblador. Este es el primer intento de sustituir el lenguaje mquina por otro ms similar a los utilizados por las personas. facilitar la labor de los programadores, se desarrollaron cdigos mnemotcnicos para las operaciones y direcciones simblicas. Se requiere de un traductor (ensamblador) para traducir los smbolos de cdigo de operacin y direcciones simblicas especificados en un programa a sus equivalentes en el lenguaje mquina.

El ensamblador va traduciendo lnea a lnea a la vez que comprueba la existencia de errores. Si localiza alguno da un mensaje de error

x86 Assembly Language Linux Assembly Language SPARC Assembly Language MIPS Assembly Language

Programa escrito en leguaje ensamblador (Cdigo Fuente) Cdigo de operacin Direccin

Ensamblador

Programa escrito en de mquina (Cdigo objeto) i

Instruccin del leguaje ensamblador

00010101 00010111 00010110

10000001 10000010 10000011 Ventajas:

LOAD A ADD B STORE C

Frente al lenguaje mquina: Mayor facilidad de codificacin y depuracin y, en general, su velocidad de clculo, ahorran tiempo y requieren menos atencin a detalles. Permite el uso de comentarios entre las lneas de instrucciones. Se incurren en menos errores y los que se cometen son ms fciles de localizar. Mnima ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la compilacin del programa equivalente escrito en otros lenguajes. Los programas en lenguaje ensamblador son ms fciles de modificar que los programas en lenguaje mquina. Dependencia total de la computadora lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes computadoras). La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige

no slo las tcnicas de programacin, sino tambin el conocimiento de la arquitectura de la computadora Todas las instrucciones son elementales, es decir, en el programa se deben describir con el mximo detalle todas las operaciones que se han de efectuar en la mquina para la realizacin de cualquier proceso Aplicaciones: Muy reducidas, se centran bsicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos. c) LENGUAJE DE ALTO NIVEL Permite a los programadores escribir instrucciones en un lenguaje ms familiar para ellos y que contiene notaciones matemticas comnmente utilizadas Estn diseados para

que las personas escriban y entiendan los programas de un modo mucho ms fcil que los lenguajes mquina y ensamblador. Independiente de la computadora (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que los programas son portables o transportables, esto es, pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras. Se requiere de un traductor (compilador o intrprete) para traducir los smbolos de cdigo de operacin y direcciones simblicas especificados en un programa a sus equivalentes en el lenguaje mquina

Cdigo de operacin

Direccin

Instruccin en lenguaje ensamblador

Instruccin en lenguaje de alto nivel

00010101 00010111 00010110

10000001 10000010 10000011

LOAD A ADD B STORE C

C=A+B

Ventajas: El tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos, nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son ms fciles Reduccin del costo de los programas. Transportabilidad. Permiten tener una mejor documentacin. Son ms fciles de mantener. Desventajas: Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo No se aprovechan los recursos internos de la computadora que se explotan mucho mejor en lenguajes mquina y ensambladores Aumento de la ocupacin de memoria El tiempo de ejecucin de los programas es mucho mayor

Ejemplos: Fortran (1954). Algol (1958). Lips (1958). Cobol (1960). PL/I (1963). Basic (1964). Simula (1964). Pascal (1970). SamallTalk (1973). Modula (1975).

C (1971). C++ (1983). Turbo Pascal (1968). Python (1991). Visual Basic (1984). Java (1995).

Java (1998). C # (2000). PHP (1995) Etc.

1.3.3. TRADUCTORES DE LENGUAJES DE PROGRAMACION Son programas que traducen los cdigos fuentes (programas escritos en lenguaje de alto nivel) a cdigo maquina (Ricardo Marcelo Villalobos). Los traductores de dividen en: a) Intrpretes Un intrprete es un traductor que toma un programa fuente, lo traduce y, a continuacin lo ejecuta, el sistema de traduccin consiste en: traducir la primera sentencia del programa a lenguaje mquina, se detiene la traduccin, se ejecuta la sentencia, a continuacin, se traduce la siguiente, se detiene la traduccin, se ejecuta la sentencia y as sucesivamente hasta terminar el programa (Luis Joyanes Aguilar). En resumen traduccin y ejecucin secuencialmente (lnea por lnea), ejecucin lenta. Ejemplos: Basic. SmallTalk. JavaScript (todas las plataformas) Logo (Linux, Windows, Mac)

Lush (Lisp para grficos -Linux) Perl (Mundo Unix y en general para todas las dems plataformas), etc. Etc. b) Compiladores Un compilador es un programa que traduce los programas fuentes escritos en lenguaje de alto nivel en lenguaje mquina. La traduccin del programa completo se realiza se realiza en una sola operacin denominada compilacin del programa, es decir, se traducen todas las instrucciones del programa en un solo bloque. El programa compilado y depurado (eliminados los errores del cdigo fuente) se denomina cdigo ejecutable por que ya se puede ejecutar directamente cuantas veces desee (Luis Joyanes Aguilar).

Programa escrito en leguaje de alto nivel (Cdigo Fuente)

Programa escrito en de mquina Compilador (Cdigo objeto)

Ejemplo: C. C++. Java. C#. Pascal. Fortran. Cobol.

Etc.

1.3.4. PARADIGMAS DE PROGRAMACION La evolucin de los lenguajes de programacin ha ido paralelo a la idea de paradigma de programacin: enfoques alternativos a los procesos de programacin. En realidad paradigma de programacin representa

fundamentalmente enfoques diferentes para las construcciones de soluciones a problemas y por consiguiente afectan por completo de desarrollo software (Luis Joyanes Aguilar). Un paradigma de programacin es un modelo que engloba a ciertos lenguajes que comparten: Elementos estructurales: con qu confeccionan los programas? Elementos metodolgicos: cmo se confecciona un programa?

a) Programacin imperativa Es el ms antiguo (mquina de Von Neumann). Un lenguaje imperativo es un conjunto de instrucciones que se ejecutan una por una, de principio a fin, de modo secuencial excepto cuando intervienen instrucciones de salto de secuencia o control. Este paradigma define el proceso de programacin como el desarrollo de secuencias de rdenes (comandos) que manipulan los datos para producir los resultados deseados (Luis Joyanes Aguilar). Por ejemplo. o o o o Paso 1: solicitar nmero Paso 2: multiplicar nmero por 2 Paso 3: imprimir resultado de la operacin Paso 4: etc.

Los lenguajes imperativos son: BASIC, C, C++, Java, Clipper, Dbase, Perl, ADA, Fortran, Algol, COBOL, Simula, Paqscal, Object Pascal, Modula, etc. Lenguajes imperativos proceduales: Es la aplicacin quien controla qu porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La ejecucin de la aplicacin se inicia con la primera lnea de cdigo, y sigue una ruta predefinida a travs de la aplicacin, llamando procedimientos segn sea necesario

FORTRAN PASCAL C ADA ALGOL

La arquitectura consta de una secuencia de celdas, llamadas memoria, en las cuales se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritmticas y lgicas, llamadas comandos Ofrece al programador conceptos que se traducen de forma natural al modelo de la computadora b) Lenguaje declarativo: Uso de una cierta lgica como lenguaje de programacin: Un programa es un conjunto de frmulas lgicas que resultan ser la especificacin del problema que se pretende resolver. La computacin se entiende como una forma de inferencia o deduccin en dicha lgica.

Provee

el

"qu",

pero

deja

el

"cmo"

liberado

la

implementacin particular del intrprete (lenguaje compilado o interpretado). Se le indica a la computadora qu es lo que se desea obtener o qu es lo que se est buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan ms de 32 aos. No se indica el orden en el que se computa una funcin o se deriva un nuevo hecho. Programa: Especificacin de un problema. Instrucciones: Frmulas lgicas. Modelo de cmputo: Inferencias lgicas. Variables: Variables lgicas. Ejemplos PROLOG SQL HTML WSDL (Web Services Description Language) XML Tipos: 1. Programacin lgico Definicin de hechos y relaciones lgicas entre estos Consiste en emplear la lgica como lenguaje de programacin algoritmos = lgica + control Un algoritmo se construye especificando conocimiento en un lenguaje formal (lgica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que acta sobre aqul. PROLOG

2. Leguaje funcional

Se basa en el concepto de funcin (matemtica) y su definicin mediante ecuaciones, que constituyen el programa. El objetivo de la programacin funcional es

conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el programa. Computacin = reduccin determinista de

expresiones (funcionales) para obtener un valor. Aproximaciones: ecuacional; algebraica; clculo. Haskell Miranda Lisp Scheme Ocaml Standard ML

c) Lenguajes orientados a objetos La idea fundamental de la orientacin a objetos y de los lenguajes que implementan este paradigma es combinar (encapsular) en una nica unidad tanto los datos como las funciones que operan (manipulan) sobre los datos. Esta caracterstica permite modelar los objetos del mundo real de un modo mucho ms eficiente que con funciones y datos. Esta unidad de programacin se denomina objeto (Luis Joyanes Aguilar). Objeto: Cualquier cosa de la vida real (fsico/tangible o

abstracto/intangible), casi todos pueden considerados como objetos; por ejemplo, una bicicleta, una frase, un nmero, etc. Entonces cualquier cosa que incorpore una estructura (atributo, propiedades o caractersticas) y un comportamiento (mtodo) se le puede considerar como objeto un objeto es una instancia de una clase (Eva M. Vsquez Valle).

Lavadora

Marca= Fagor Modelo= XJ201 Numero serie= R2D2 Capacidad= 40 entarRopa() sacarRopa() ponerEnMarcha() Atributos del objeto

Mtodos del objeto

Clase: Es una descripcin de un grupo de objetos con: Propiedades en comn (Atributos). Comportamiento similar (Operaciones y mtodos). La misma forma de relacionarse con otros objetos (relaciones). (Eva M. Vsquez Valle). Lenguaje orientado por objetos Ejemplos Ada, C++, Visual FoxPro, Delphi, Eiffel, Java, Perl, etc

1.4. ALGORITMOS Un algoritmo en un mtodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos (Luis Joyanes Aguilar). Entonces algoritmo debe ser: preciso, definido y finito. Diseo de un algoritmo se determina como hace el programa la tarea solicitada. Los mtodos ms eficaces para el proceso de diseo se basan en el conocido divide y vencers, es decir la resolucin de problemas complejos se realiza dividiendo el problema en subproblemas y a continuacin se divide estos subproblemas en otros de nivel ms bajo, hasta que pueda ser implementada un solucin en la computadora.

1.4.1. HERRAMIENTAS DE UN ALGORITMO 1) Diagrama de flujo Es una representacin grafica que utiliza smbolos normalizados por ANSI, y expresa las sucesivas instrucciones que se debe realizar para resolver el problema. Estas instrucciones no dependen de la sintaxis de ningn lenguaje de programacin, sino que debe servir fcilmente para su transformacin (codificacin) en un lenguaje de programacin (Ricardo Marcelo Villalobos).

Inicio y Fin

Entrada o Salida

Proceso

Decisin

Direccin de Flujo

2) Pseudocdigo Es una herramienta de programacin en la que las instrucciones en palabras similares al ingls o espaol, que facilita tanto la escritura como la lectura de los programas. En esencia un pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmo. Por ejemplo: Strat //clculo de impuestos y salarios Read nombre, horas, precio Salario Tasas Salario_Neto horas*precio 0.25*Salario Salario-Tasa

Write Nombre, Salario, Tasas, Salario_Neto end Estructura bsica de un algoritmo: Comentario. Palabras reservados. Identificadores. Variables. Constantes.

Expresiones. Bifurcaciones. Bucles.

1.5. APLICACIN Los diferentes lenguajes de programacin tienden a desarrollarse para diferentes reas de aplicacin: Cientfica Procesamiento de datos Inteligencia artificial Procesamiento de textos Programacin de sistemas De propsito general 1.5.1. APLICACIONES CIENTFICAS Manipulan predominante nmeros y arrays de nmeros, usando principios matemticos y estadsticos como la base de los algoritmos (test estadstico, programacin lineal anlisis de regresin y aproximaciones numricas para la solucin de ecuaciones diferenciales e integrales). Frecuentemente la cantidad de datos en tales problemas es relativamente pequeo (del orden de unos cientos de nmeros) y su estructura es relativamente simple (un vector o matriz bidimensional). Normalmente requiere ms trabajo del procesador central de una computadora que sus dispositivos de entrada salida.

1.5.2. APLICACIN DE PROCESAMIENTO DE DATOS Problemas de programacin cuyo inters predominante es la creacin o mantenimiento, extraccin y compendio de datos en registros y archivos. Normalmente el procesamiento de datos se encuentra en el centro de la gestin de empresas que incluye las funciones relativas a las nminas contabilidad, facturacin, inventario, produccin y ventas.

El volumen de datos que se encuentran en los archivos es generalmente grande (varios miles de registros por archivo y varios cientos de caracteres de informacin por registro). La cantidad de clculo aritmtico u otras manipulaciones de datos en un registro individual es relativamente bajo. Un programa tpico de procesamiento de datos consume la mayor parte del tiempo de clculo haciendo operaciones de entrada- salida; paso a travs de los registros de un archivo para localizar y/o actualizar alguna de la informacin sobre una base regular (diariamente, semanalmente o anualmente). GOBOL y PL/I. 1.5.3. APLICACIN INTELIGENCIA ARTIFICIAL Se caracterizan porque son programas que se han diseado principalmente para simular el comportamiento inteligente. Incluyen algoritmos de juegos tales como el ajedrez, programas de comprensin de lenguaje natural, visin por computadora, robtica y sistemas expertos LISP y PROLOG

1.5.4. APLICACIN PROGRAMACIN DE SISTEMAS Aplican el desarrollo de programas que hacen de interfaz entre la computadora (hardware) y el programador y operador. Estos programas incluyen compiladores, ensambladores, intrpretes, rutinas de entrada-salida, facilidades de gestin y planificadores para la utilizacin de los distintos recursos que componen la computadora.

C y Ada.

1.5.5. APLICACIN DE PROPOSITO GENERAL

Soportan

aplicaciones cientficas, de procesamiento de datos, de

procesamiento de texto y programacin de sistemas.

PL/I.

Referencias 1. Shannon, Robert; Johannes, James D. (1976). Systems simulation: the art and science. IEEE Transactions on Systems, Man and Cybernetics. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4309432. 2. Galn, Jos M.; Izquierdo, Luis R.; Izquierdo, Segismundo S.; Santos, Jos I.; del Olmo, Ricardo; Lpez-Paredes, Adolfo; Edmonds, Bruce (2009). Errors and Artefacts in Agent-Based Modelling. Journal of Artificial Societies and Social Simulation . http://jasss.soc.surrey.ac.uk/12/1/1.html. 3. Izquierdo, Luis R.; Galn, Jos M.;Santos, Jos I.;del Olmo, Ricardo (2008). Modelado de sistemas complejos mediante simulacin basada en agentes y mediante dinmica de sistemas. Empiria. Revista de Metodologa de Ciencias Sociales. Bibliografa 1. De Jong, T. Learning and Instruction with Computer Simulations. Education & Computing (1991) 2. M.M. Wolfson and G.J. Pert. Introduction to Computer Simulation. 3. Introduccin informal a Matlab y Octave. http://iimyo.forja.rediris.es/. 4. Ricardo Marcelo Villalobos, Fundamentos de programacin php, primera edicin. 5. Luis Joyanes Aguilar, Fundamentos de Programacin algoritmos, estructura de datos y objetos, cuarta edicin. 6. Eva Matilde Vsquez Valle, Programacin con Java, primera edicin. 7. Hamdy A. Taha, Investigacin de Operaciones, sptima edicin. 8. Introduccin a la programacin en C. http://books.google.com.pe/books?id=0JNZ0G7gv5IC&pg=PA2&dq=introduccion+a+l os+lenguajes+de+programaci%C3%B3n&lr=&cd=26#v=onepage&q=&f=false