You are on page 1of 19

Unidad 1.

Conceptos Básicos 2012
Introducción.
Es imposible hoy en día no darse cuenta del uso de las computadoras. Estas están en las aulas de las escuelas, en las bibliotecas, los hospitales, las oficinas, las tiendas departamentales, aeropuertos, centrales camioneras, automóvil, agencias de viajes, etc. Las computadoras se han convertido en una presencia diaria en nuestras vidas aún para quienes nunca hayan usado una antes.

1.1 Clasificación del software de: sistema y aplicación.
Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático; comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos, que son llamados hardware. El software es la parte intangible (físicamente) de un computador. Se utiliza este término para referirse a todo el soporte lógico utilizado por un computador (conjunto de datos y programas). El software se clasifica en relación a sus características y a las funciones que realiza este, estas pueden ser de comunicación entre los diferentes elementos del computador (software de sistema), y comunicación entre computador y usuario (software de aplicación). Software de Sistema. Es el software “detrás de escenario” encargado de controlar el sistema físico, ocultando los detalles del hardware y que ayuda a la computadora a administrar sus recursos internos. En término computacional al software de sistema se le denomina Sistema Operativo o también software de base, consiste en programas informáticos que sirven para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas. Estos programas realizan diversas tareas, como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rígido, unidades de discos ópticos, etc.) entre otros. Además, hace que el hardware sea utilizable y lo administra a manera de lograr un buen rendimiento. Su función principal es la comunicación entre todos los elementos del computador, es el encargado de controlar las instrucciones que se están ejecutando en la CPU y de esta manera controlar los procesos para que el computador funcione de una manera correcta.

Página | 1

Aplicaciones de utilería (antivirus). Software educativo. una hoja de cálculo. Si quiere manejar grandes volúmenes de datos. Corel Draw) Aplicaciones de administración (contables. etc. Software de gestión de relaciones con el cliente. Software de diseño asistido (CAD). Software de gestión de recursos humanos. Linux). Si quiere realizar una gran cantidad de operaciones financieras. Página | 2 . Por ejemplo. Software empresarial. si usted quiere escribir textos con una buena presentación. utilizará un procesador de texto. etc.). Aplicaciones personales (manejo de agenda. Conceptos Básicos 2012 Ejemplos de este tipo de software son:  Sistemas operativos (Windows. un manejador de base de datos. excluyendo las tareas del sistema operativo. Ejemplos de este tipo de software son:                   Aplicaciones de diseño (Flash. contables o matemáticas. Excel. Software de cálculo numérico y simbólico. corresponde al conjunto de programas que cumple una función específica. Mac.Unidad 1. El software de aplicación. Manejadores de base de datos. Software de gestión de proyectos. Su función principal es asistir al usuario en sus tareas habituales. PowerPoint.). Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas. estos hacen posible que el sistema operativo se comunique con el hardware conectado al computador y que este funcione de una manera correcta. etc. Aplicaciones para control de sistemas y automatización industrial. PhotoShop. Software médico.  Controladores también conocidos como drivers. con el objeto de solucionar una necesidad particular del usuario. Telecomunicaciones (Internet y toda su estructura lógica). con especial énfasis en los negocios. Videojuegos. operaciones bancarias. en cualquier campo de actividad susceptible de ser automatizado o asistido. Software de Aplicación. Software de Sistemas de información geográfica (SIG). Aplicaciones ofimáticas (Word. ventas. actividades diarias. finanzas). el software de aplicación ayuda a que nuestras tareas se hagan de una manera sencilla en el computador y se resume en la automatización de nuestras labores.

o sea debe de tener un número finito de pasos. se debe terminar en algún momento. Página | 3 . sin embargo el algoritmo será siempre el mismo. se debe obtener el mismo resultado cada vez. Un lenguaje de programación es solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo”.  Debe producir un resultado.  Puede tener cero o más elementos de entrada. Características de los algoritmos. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta. Los datos de salida serán los resultados de efectuar las instrucciones. que sirven para llegar a la obtención de una respuesta o solución de un problema cualquiera y en sus pasos o instrucciones no están involucrados cálculos numéricos. Los algoritmos cualitativos son todos aquellos pasos o instrucciones descritos por medio de palabras. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje diferente de programación. El diseño de algoritmos requiere creatividad y conocimientos profundos de la técnica de programación. Conceptos Básicos 2012 1.  Un algoritmo debe ser finito. El algoritmo es la infraestructura de cualquier solución. Para realizar un programa es conveniente el diseño o definición previa del algoritmo.Unidad 1. Algoritmos cualitativos y algoritmos cuantitativos.2 Algoritmo. Las características fundamentales que debe cumplir todo algoritmo son:  Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Los algoritmos son independientes de los lenguajes de programación. Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problema. escrita luego en cualquier lenguaje de programación. Si se sigue un algoritmo dos veces. Si se sigue un algoritmo. Luis Joyanes Aguilar nos dice “ en la ciencia de la computación y en la programación los algoritmos son más importantes que los lenguajes de programación o las computadoras.  Un algoritmo debe estar definido.

son un buen sistema de representación. antes de ser convertido a lenguaje de programación. Al proceso por el cual se escribe. Como ejemplo podemos citar los pasos para resolver una ecuación de segundo grado. se prueba. Conceptos Básicos 2012 Como ejemplo podemos decir que la utilización de un directorio telefónico. obteniendo una descripción no del todo satisfactoria. Técnicas de representación. Un lenguaje de programación es un idioma artificial diseñado para expresar instrucciones que pueden ser ejecutadas a través de una computadora. Lenguaje natural. los pasos para resolver el factorial de un número o los pasos para encontrar el mínimo común multiplicador etc. los pasos lógicos y secuenciales para obtener una nómina. Las formulas. se depura. etc.3 Lenguaje de programación. o como modo de comunicación humana. Estos pueden usarse para crear programas que controlen el comportamiento físico y lógico de una computadora. Los métodos más conocidos son:      Diagramas de flujo. Página | 4 . para expresar algoritmos con precisión. Para la representación de un algoritmo. instrucciones para desarrollar una actividad física o los pasos a seguir para cambiar un foco fundido. son aquellos pasos o instrucciones que involucran cálculos numéricos para llegar a un resultado satisfactorio. Diagramas Nassi – Shneiderman. propias del lenguaje matemático. pero no suelen ser fáciles de convertir en programas. las instrucciones para elaborar una receta de un plato de cocina. permitiendo ambigüedades. Fórmulas matemáticas. 1. Pseudocódigo. se compila y se mantiene el código fuente de un programa informático se le llama programación. Los algoritmos cuantitativos. se utilizan algunos métodos de representación escrita gráfica o matemática. El lenguaje natural puede no ser suficientemente preciso.Unidad 1. El lenguaje de programación está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Unidad 1. Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:   Lenguajes imperativos. que traduce los comandos de los programas según sea necesario. agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Lenguaje de programación funcional. Conceptos Básicos 2012 El programador es el encargado de utilizar un lenguaje de programación para crear un conjunto de instrucciones que.  Lenguajes compilados. Interpretación y compilación Los lenguajes de programación pueden. No obstante. Por lo tanto. en líneas generales. Lenguajes funcionales. Lenguaje interpretado. Lenguaje de programación imperativo. los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones. diferente al lenguaje máquina. dividirse en dos categorías:  Lenguajes interpretados. Un lenguaje imperativo programa mediante una serie de comandos. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio. Lenguaje compilado Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que. Un lenguaje de programación es. por definición. constituirá un programa o subprograma informático. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete). al final. Es un lenguaje que crea programas mediante funciones. a su vez. debe traducirse para que el procesador pueda comprenderlo. crea un nuevo archivo Página | 5 . devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones.

encontrará una breve lista de los lenguajes de programación actuales: Lenguaje ADA BASIC C C++ Cobol Fortran Java MATLAB LISP Pascal Principal área de aplicación Tiempo real Programación para fines educativos Programación de sistema Programación de sist. Por otro lado. En efecto. la ejecución se vuelve más rápida. Conceptos Básicos 2012 independiente que no necesita ningún otro programa para ejecutarse a sí mismo. en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente) y no ejecutable (requeriría un intérprete). Sin embargo.. pagos en línea. Además. no es tan flexible como un programa escrito en lenguaje interpretado. Java. comunicaciones seguras).. el lenguaje interpretado. al ser directamente un lenguaje legible. hace que cualquier persona pueda conocer los secretos de fabricación de un programa y. 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.class). Algunos ejemplos de lenguajes ampliamente usados A continuación. Por lo tanto. en ciertos casos. sufrir una fase de compilación intermediaria.Unidad 1. como sólo es necesaria una traducción. un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión . pequeños programas que a menudo se cargan en páginas web. Python.) dado que el programa escrito en estos lenguajes puede. copiar su código o incluso modificarlo. ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias. Lenguajes intermediarios Algunos lenguajes pertenecen a ambas categorías (LISP. de ese modo. Por otra parte. Los applets Java. ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios. orientado a objeto Administración Cálculo matemáticos Programación orientada a Internet Cálculos matemáticos Inteligencia artificial Educación Compilado/interpretado Lenguaje compilado Lenguaje interpretado Lenguaje compilado Lenguaje compilado Lenguaje compilado Lenguaje compilado Lenguaje intermediario Lenguaje interpretado Lenguaje intermediario Lenguaje compilado Página | 6 . existe el riesgo de que los derechos de autor no sean respetados. Este archivo se llama ejecutable.

Orientados a objetos.Unidad 1. acceden a otro registro. Este lenguaje tiene su origen en un lenguaje que fue diseñado por los profesores Ole-Johan Dahl y Kristen Nygaard en Noruega. no invalidar su definición como lenguaje orientado a objetos. Lógicos. A este lenguaje se le denomina lenguaje anfitrión. Orientados a objetos. Así se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Conceptos Básicos 2012 PHP Perl Desarrollo de sitios web dinámicos Procesamiento de cadenas de caracteres Lenguaje interpretado Lenguaje interpretado Los lenguajes de programación pueden clasificarse según el paradigma de programación que usan en:       Procedimentales. Las sentencias de un LMD (Lenguaje de manipulación de datos) procedimental deben estar embebidas en un lenguaje de alto nivel. lo procesan y basándose en los resultados obtenidos. cualquier lenguaje que permita la definición de tipos de datos. Las bases de datos jerárquicas y de red utilizan LMD procedimentales. Esto quiere decir que hay que especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la información requerida. ya que se necesitan sus estructuras (bucles. condicionales. Quizás las condiciones mínimas necesarias las provee el formalismo que modela mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos. Procedimentales. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo. Requieren que el usuario (normalmente será un programador) especifique qué datos desea y cómo hay que obtenerlos. de operaciones nuevas sobre esos tipos de datos. Híbridos. etc. Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos.) para obtener y procesar cada registro individual. Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos. Página | 7 . Siguiendo esa idea. y de instanciar el tipo de datos podría ser considerado orientado a objetos. Estos lenguajes acceden a un registro. etc. Este lenguaje de programación orientado a objetos fue el “Simula 67” que fue un lenguaje creado para hacer simulaciones de naves. que también deben procesar. Funcionales.

PowerBuilder.NET. de forma sencilla. Ocaml. Delphi. Ruby y Smalltalk. Página | 8 . Eiffel. El lector debe conocer un metalenguaje llamado «notación BNF» (Backus Naur Form. etc. Entre ellos cabe destacar: un sistema de tipos polimórficos que permite definir una amplia variedad de estructuras de datos de uso genérico. un núcleo común de conceptos y técnicas asentado sobre bases firmemente establecidas. o Backus Normal Form). C#. No todos estos lenguajes son específicamente orientados a objetos. well formed formula. Estas reglas definen la gramática generativa (a la que llamaremos. PHP. VB. Funcionales. La sintaxis de un lenguaje lógico es un sistema de símbolos que consta de un alfabeto de símbolos básicos («símbolos terminales» se les llama en la teoría de lenguajes) y unas reglas que permiten construir a partir de ellos estructuras simbólicas. en casi todos los lenguajes de programación funcional. Sino que algunos de ellos se le han añadido extensiones orientadas a objetos. Clarion.C. cadenas de símbolos que si obedecen a las reglas se llaman sentencias (o wff. para lo que los lenguajes de programación orientados a objetos están especialmente dotados. De no menor importancia es la posibilidad de razonar. Java. gramática) del lenguaje. facilidades para definir y manipular estructuras de datos infinitas. Conceptos Básicos 2012 Son lenguajes dinámicos en los que estos objetos se pueden crear y modificar sobre la marcha. un modelo computacional simple. su comportamiento en ejecución. Esta programación orientada a objetos (POO) tomo auge a mediados de los años ochenta debido a la propagación de las interfaces gráficas de usuarios. Un nuevo paso en los lenguajes de programación es la Programación orientada a aspectos (POA). cadenas bien formadas). la posibilidad de definir funciones que aceptan otras funciones como argumentos y devuelven funciones como resultado. acerca de las propiedades de los programas: su corrección. C++. Esto permite optimizar las tareas de implementación de los lenguajes funcionales. Lógicos.Unidad 1. su eficacia. Entre los principales lenguajes de este tipo tenemos: Ada. Objective . pero cada vez atrae a más investigadores y empresas de todo el mundo. simplemente. Python. Oz. Ofrecen al programador un buen número de recursos expresivos que permiten resolver problemas complejos mediante programas pequeños y robustos. porque es el que se utiliza para definir la sintaxis de los lenguajes de programación. claro y bien fundamentado. Actualmente está en fase de desarrollo. Podemos encontrar. La gramática se expresa formalmente mediante un metalenguaje.

sea cual sea la interpretación. es decir. o bien x es A o bien x no es A» (formalizada: «(x)(A(x) ¬A(x))» ) en una lógica que sólo admita verdad o falsedad (lógica binaria) debe ser siempre verdadera. abstrayendo el significado. La interpretación se formaliza como una función que asigna a los símbolos del lenguaje elementos de la conceptuación (objetos o individuos del universo del discurso. aunque el segundo no lo sea). independientemente de la interpretación. Hay dos casos de evaluación como verdadera o falsa de una sentencia que son particularmente interesantes:  Cuando la sentencia es forzosamente verdadera. y a Luis. o bien «y es B» es verdadero. que depende de la verdad o falsedad de sus componentes. sentencias que se admiten como siempre verdaderas. la sentencia debe evaluarse como verdadera (el primero de sus componentes lo es.  Cuando la sentencia se sabe que siempre es verdadera en una determinada conceptuación. otro concepto semántico básico es el de «verdad» o «falsedad» de una sentencia. Pero la verdad o falsedad de esos componentes depende de la interpretación. Supongamos que el universo del discurso de nuestra conceptuación es un conjunto de personas entre las cuales están dos hombres llamados Juan y Luis. sea cual sea la interpretación de x y de A (es el famoso principio del «tercio excluso» ). Conceptos Básicos 2012 Un sistema axiomático está formado por un conjunto finito de axiomas. etc. Además de la función de interpretación. A a hombre y B a mujer. Las llamaremos. Un lenguaje lógico posee una semántica que se ocupa del significado. Por ejemplo. A este estudio estrictamente sintáctico de una lógica se le llama cálculo: cálculo de proposiciones. o ambos los son. Por ejemplo. cuyo número es infinito. se les pone en relación con los elementos de una conceptuación. de la interpretación declarativa que pone en relación a los elementos sintácticos del lenguaje con los elementos de la conceptuación que se pretende representar con ese lenguaje. la sentencia semiformalizada «o bien x es A o bien y es B» (formalizada sería «(A(x) B(y)» ) es verdadera si «x es A» es verdadero. si x representa a Juan. para distinguirlas del caso que veremos ahora. es decir de lo que representen. Así la sentencia «sea quien sea x.Unidad 1. cálculo de predicados. o Página | 9 . axiomas lógicos. Estas sentencias demostrables. En cualquier sistema axiomático de una lógica binaria estas sentencias deben coincidir con las leyes (axiomas o teoremas) del sistema axiomático. o relaciones entre ellos). se convierte en un lenguaje cuando se interpretan sus símbolos y sus sentencias. se les atribuye un significado. o sea. Una ley es un axioma o un teorema. Un cálculo es la estructura formal de un lenguaje. la sentencia «sea quien sea x. se llaman teoremas. y unas reglas de transformación que permiten demostrar sentencias a partir de los axiomas.

Unidad 1. Las reglas matemáticas de la lógica que pueden reducir sentencias textuales a representaciones simbólicas existen desde hace mucho tiempo. Investigadores destacados sobre estas ideas son Marvin Minsky. Nuevos hechos pueden ser evaluados frente a otros hechos existentes dados por verdaderos. en paralelo. Estas instrucciones son entregadas a través de un programa. A través de los programas el computador puede realizar variadas operaciones. de los que Prolog es sin duda el mejor representante. síntesis del habla. métodos y técnicas de éstos subcampos Cada sistema inteligente natural es un híbrido porque éstos desarrollan operaciones mentales tanto en niveles simbólicos como sub-simbólicos. sistemas híbridos inteligentes denotan a los sistemas software que emplean. etc. grandes sistemas de inteligencia artificial. como opuestos a los lenguajes procedimentales.) algunos autores proponen a que es ahora el momento de la integración para crear complejos. Thórisson y Michel Arbib. El software que utiliza el principio de resolución trabaja con cláusulas lógicas. En un lenguaje de programación lógica típico. Página | 10 . desde procesar textos y dibujos hasta resolver complejos problemas matemáticos. si A representa «hombre» y B «mujer» . Estas sentencias se llaman axiomas del dominio o axiomas propios y representan conocimiento normativo del dominio. una combinación de modelos de inteligencia artificial. la sentencia (dejando de lado chistes fáciles) es verdadera. y utiliza la unificación 21 para intentar identificar las partes derecha e izquierda de las cláusulas de una forma lógica. Los lenguajes lógicos son declarativos. Aaron Sloman. Pero en la conceptuación de las personas. Basados en las nociones de que se habían ya creado simples y específicos sistemas de inteligencia artificial (como sistemas para la visión de computadores. Híbridos. 1. Un programa es un conjunto de instrucciones escritas en algún lenguaje de programación entendible por el computador. Deb Roy. Las proposiciones son hechos o reglas. Desde hace pocos años se ha ido desarrollando una discusión sobre la importancia en la inteligencia artificial de la integración de todos éstos sistemas. En la programación software. Kristinn R. Conceptos Básicos 2012 bien es A o bien x es B» obviamente no es un axioma lógico.4 Programa. Un computador necesita de un conjunto de instrucciones para que pueda funcionar y realizar las tareas que se requiera. que mostraba cómo estas representaciones podían ser integradas en un ordenador digital para su análisis. cada aserción o sentencia expresa una proposición que puede ser representada por una fórmula lógica. investigando los valores de la variable que permitirá una identificación correcta. aunque tan sólo desde 1965 contamos con el denominado principio de resolución.

Una recomendación muy práctica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados. hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos).  Cuál es la información que se desea producir (salida)  Los métodos y fórmulas que se necesitan para procesar los datos. Mantenimiento Definición y análisis del problema. en una serie de instrucciones detalladas. el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.Unidad 1. en un código reconocible por la computadora. La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo). Es importante que se conozca lo que se desea que realice la computadora. Codificación del programa. Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. el cual requiere una definición clara y precisa. Documentación. la serie de instrucciones detalladas se le conoce como código fuente. Diseño de algoritmos. dibujos o diagramas. Depuración y verificación del programa. Depuración y verificación del programa. El proceso de identificar y eliminar errores. es necesario definir:  Los datos de entrada. Conceptos Básicos 2012 El proceso de programación es. En esta etapa se utiliza uno los métodos que más convenga para la representación del algoritmo del problema a resolver. por consiguiente. Codificación del programa. Esta fase está dada por el enunciado del problema. diagramas N-S o pseudocódigo). Diseño de algoritmos (diagrama de flujo. Una vez que se ha comprendido lo que se desea de la computadora. un proceso de solución de problemas y el desarrollo de un programa requiere las siguientes fases:       Definición y análisis del problema. Es la guía o comunicación escrita es sus variadas formas. La prueba consiste en la captura de datos. mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa. procedimientos. ya sea en enunciados. para dar paso a una solución sin errores se le llama depuración. Documentación. Página | 11 .

Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código). Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). El código fuente es escrito en un lenguaje de programación. algoritmos especializados y lógica formal. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas. Conceptos Básicos 2012 A menudo un programa escrito por una persona. 1. Documentación externa: Se define en un documento escrito los siguientes puntos:       Descripción del problema Nombre del autor Algoritmo (diagrama de flujo o pseudocódigo) Diccionario de datos Código fuente (programa) Manual del usuario: Describe paso a paso la manera cómo funciona el programa. Se lleva acabo después de terminado el programa. cuando se detecta que es necesario hacer algún cambio.Unidad 1. escribir. La programación es el proceso de diseñar. ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado. es usado por otra. además del dominio del lenguaje a utilizar. aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones. Mantenimiento. El propósito de la programación es crear programas que exhiban un comportamiento deseado.5 Programación. depurar y mantener el código fuente de programas computacionales. La documentación se divide en tres partes:  Documentación interna  Documentación Externa  Manual del Usuario   Documentación interna: Son los comentarios o mensaje que se añaden al código fuente para hacer más claro el entendimiento de un proceso. Página | 12 . con el fin de que el usuario obtenga el resultado deseado.

). lo interpretamos e intervenimos sobre él. así como cuidar el estilo en la edición.Unidad 1.6 Paradigmas de programación. Algunos de los factores de calidad más importantes son los siguientes:  Corrección. etc. de esta forma se ve facilitado el trabajo del programador. 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. Normalmente. Es muy importante que el programa sea lo más claro y legible posible. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma. Abarca desde el conjunto de conocimientos científicos que imperan en una época determinada Página | 13 . dependiendo de su naturaleza (espacio en disco que utiliza. Un paradigma es un determinado marco desde el cual miramos el mundo. con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente.  Portabilidad. Conceptos Básicos 2012 Objetivos de la programación. etc. al hablar de eficiencia de un programa. 1.  Claridad. es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y. Para determinar si un programa hace lo que debe. para facilitar así su desarrollo y posterior mantenimiento. ya que permite. Fases que pueden ser realizadas incluso por otro programador. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente. Para ello se establece una serie de factores que determinan la calidad de un programa. tráfico de red que genera. compararlo con lo que realmente hace. a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. lo comprendemos. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. además de realizar aquello para lo que fue creado (es decir.  Eficiencia. modificaciones. ya sea hardware o software. pero hay otros recursos que también pueden ser de consideración al obtener la eficiencia de un programa. tanto en la fase de creación como en las fases posteriores de corrección de errores. Esto permite que el programa pueda llegar a más usuarios más fácilmente. ampliaciones. que sea correcto). diferente a aquélla en la que se elaboró. La portabilidad es una característica muy deseable para un programa. por ejemplo. La programación debe perseguir la obtención de programas de calidad. lo haga gestionando de la mejor forma posible los recursos que utiliza. Se trata de que el programa. una vez acabado.

que más tarde es utilizada como modelo para la investigación y la formación de una teoría. han sido aceptadas como estilos para programar y para resolver los problemas por medio de una computadora. a lo largo de la evolución de los lenguajes. Con la orientación a objetos y características como el encapsulado.Unidad 1. mantenimiento. el paradigma debe ser concebido como una forma aceptada de resolver un problema en la ciencia. 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. En nuestro contexto. Esto provocó que grandes desarrollos tuvieran problemas de fiabilidad. Adam Smith define paradigma. Tradicionalmente datos y procesamiento se han separado en áreas diferente del diseño y la implementación de software. En nuestro contexto. Página | 14 . Probablemente el paradigma de programación que actualmente es el más usado a todos los niveles es la orientación a objeto. 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. relacionable a su vez con otras entidades "objeto". como: “un conjunto compartido de suposiciones. Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. el paradigma debe ser concebido como un conjunto de métodos. El paradigma nos explica el mundo y nos ayuda a predecir su comportamiento". Es la manera como percibimos el mundo: agua para el pez. El núcleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto". polimorfismo o la herencia se permitió un avance significativo en el desarrollo de software a cualquier escala de producción. en su libro “Los poderes de la mente”. los paradigmas de programación nos indican las diversas formas que. 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. reglas y generalizaciones utilizadas conjuntamente por aquellos entrenados para realizar el trabajo científico de investigación. adaptación a los cambios y escalabilidad. Conceptos Básicos 2012 hasta las formas de pensar y de sentir de la gente en un determinado lugar y momento histórico. También.

scripts o el código fuente de algún programa. es decir sin diagramación. etc. Por ejemplo. éstos son: salto de línea.7 Editores de texto. que el usuario reconoce como la letra "a" y ofrecerá al usuario las funciones necesarias para cambiar el número binario en el archivo.txt". un editor ASCII de 8 bits que lee el número binario 01100001 (decimal 97 ó hexadecimal 61) en el archivo lo representará en la pantalla por la figura a. Página | 15 . pero hoy se utilizan incluso en el procesador de texto más sencillo.Unidad 1. Los documentos creados por un procesador de texto generalmente contienen más caracteres de control para darle al texto un formato o diagramación particular. En la práctica. conocidos comúnmente como archivos de texto o texto plano. cursiva. El archivo creado por un editor de texto incluye por convención en DOS y Microsoft Windows la extensión ". Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato. Conceptos Básicos 2012 1. rara vez EBCDIC. Los editores de textos "planos" se distinguen de los procesadores de texto en que se usan para escribir sólo texto. sin formato y sin imágenes. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. tipografía. Tanto Unix como Linux dan al usuario total libertad en la denominación de sus archivos. a menudo protegidos de ser copiados por una marca registrada como por ejemplo negrilla. El código de caracteres más usado en el año 2007 es el ASCII. aunque pueda ser cambiada a cualquier otra con posterioridad. tablas. tabulación horizontal y retorno de carro. Los únicos caracteres de formateo son los caracteres de control del respectivo código de caracteres. 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. columnas. Al trasladar archivos de texto de un sistema operativo a otro se debe considerar que existen al menos dos convenciones diferentes para señalar el término de una línea: Unix y Linux usan sólo retorno de carro en cambio Microsoft Windows usa al término de cada línea retorno de carro y salto de línea. El texto plano es representado en el editor mostrando todos los caracteres presentes en el archivo. Hoy en día es comúnmente de 7 ó 8 bits en ASCII o UTF-8. En un comienzo se utilizaron tales formatos sólo en autoedición.

lo que permite trabajar en otros sistemas sin tener que aprender el uso de otro editor. Algunas funciones especiales son:   Editores diseñados para un lenguaje de programación determinado. repositorios.. Los editores de texto sirven para muchas cosas pues facilitan el trabajo. mostrando al usuario solo lo importante del texto. pero se le debe ordenar explícitamente que se desee esa opción.  Página | 16 . incluidos en un solo programa. Conceptos Básicos 2012 Los procesadores de texto pueden en la mayoría de los casos almacenar un texto plano en un archivo de texto plano. con coloreado de sintaxis. incluso las combinaciones de teclas para ejecutar funciones pueden ser adaptadas y es programable en Lisp. de otra manera podría guardarlo con algún formato especial. mientras que otros tienen implementadas gran cantidad de funciones. etc. Emacs puede ser adaptado a las necesidades del usuario. Hay una gran variedad de editores de texto. Algunos son de uso general. Un Entorno de desarrollo integrado es un programa que incluye un editor y otras herramientas de trabajo. macros. Por ejemplo. como compiladores. completado de palabras. Algunos son muy sencillos. A veces no todo el texto es relevante para el usuario. mayor que la capacidad de la memoria RAM de la máquina y también arrancar rápidamente. mientras que otros están diseñados para escribir o programar en un lenguaje. Algunos editores de texto incluyen el uso de lenguajes de programación para automatizar engorrosos o repetidos procedimientos a realizar en el texto. Hoy en día muchos editores originalmente salidos de Unix o Linux han sido portados a otros sistemas operativos. extractores de diferencias entre dos textos. Algunos editores son sencillos mientras que otros ofrecen una amplia gama de funciones. etc.Unidad 1. Con este tipo de editores ciertas regiones con texto irrelevante pueden ser plegadas. escondidas. ya que el tiempo de espera disminuye la concentración y disminuye de por si la productividad. Muchos editores de texto incluyen coloreado de sintaxis y funciones que ofrecen al usuario completar una palabra iniciada usando para ello la configuración. Editores con regiones plegables. Editores para profesionales deben ser capaces de leer archivos de gran extensión.

por lo que su uso será mejor en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas veces.EXE.9 Ejecutables. En caso de que se opte por un interpretador se debe considerar que el intérprete resida siempre en memoria. al facilitar el desarrollo y puesta a punto de programas. La ejecución de los programas compilados es más rápida que la de los interpretados. Son programas que traducen un lenguaje de alto nivel al lenguaje máquina. Un compilador es un programa que traduce el programa fuente (conjunto de instrucciones de un lenguaje de alto nivel. o en otras palabras. Un ejemplo de archivo ejecutable en Windows son los . sin embargo. ya que los errores son fáciles de detectar y sobre todo de corregir.8 Compiladores e intérpretes. Compiladores.Unidad 1.COM en MSDOS. ya que el intérprete debe traducir mientras está en la fase de ejecución. 1. Archivo que tiene la capacidad de poder ser ejecutado de forma independiente. Estos presentan una ventaja considerable frente a los intérpretes en la velocidad de ejecución. y generalmente necesitan de otros archivos para funcionar (aunque no es necesario). el resultado en forma de programa objeto será directamente ejecutable. Intérpretes. o los . Se requiere un compilador para cada lenguaje de programación. Un archivo ejecutable contiene un programa. Estos encuentran su mayor ventaja en la interacción con el usuario. por ejemplo Basic o Pascal) a programa objeto (instrucciones en lenguaje máquina que la computadora puede interpretar y ejecutar). Un intérprete traduce cada instrucción o sentencia del programa escrito a un lenguaje máquina e inmediatamente se ejecuta. Una vez compilado el programa. Conceptos Básicos 2012 1. que no necesita ser ejecutado por una aplicación externa. Un compilador efectúa la traducción. Un intérprete es un programa que procesa los programas escritos en un lenguaje de alto nivel. Página | 17 . está diseñado de modo que no existe independencia entre la etapa de traducción y la etapa de ejecución. Estos archivos son ejecutados y controlados por el sistema operativo. no ejecuta el programa. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado.

Conceptos Básicos 2012 En informática. es tradicionalmente un archivo binario cuyo contenido se interpreta por el ordenador como un programa. Sin embargo en un sentido más general. Interfaz de Línea de Comandos (CLI). o pueden utilizarse de una forma mucho más automatizada (archivo batch). 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. sino que puede tener instrucciones a interpretar por otro programa. información simbólica y de depuración. un programa ejecutable no tiene por qué necesariamente contener código de máquina. 1. u otra información que ayude al sistema operativo a ejecutar el programa. Oracle). un archivo ejecutable contiene mucha información que no es parte del programa en sí: recursos como textos e imágenes. en clientes FTP. requisitos del entorno de ejecución. un ejecutable o archivo ejecutable. Generalmente. Ruby o Perl. para diversos hardware. contiene instrucciones en código máquina de un procesador en concreto. Además suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema). leyendo comandos desde un archivo de scripts. Shell y Emulador de terminal no son lo mismo. etc. pero también puede contener bytecode que requiera un intérprete para ejecutarlo. aunque suelen utilizarse como sinónimos. un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto.Unidad 1. En general. escribiendo instrucciones en alguna especie de entrada de texto. Página | 18 . MySQL. Este tipo de ejecutables son conocidos con el nombre de scripts. Por ejemplo. Esta interfaz existe casi desde los comienzos de la computación. por su acrónimo en inglés de Command Line Interface (CLI). Dependiendo del tipo de que se traten las instrucciones. para diversos programas y sistemas operativos. Aparecen como interfaz de lenguajes interpretados tales como Java. Python. En la mayoría de los sistemas modernos. superada en antigüedad solo por las tarjetas perforadas y mecanismos similares. en DBs (Postgres. Las CLI pueden emplearse interactivamente. Debe notarse que los conceptos de CLI. hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta).10 Consola de línea de comandos. los archivos ejecutables son el principal medio de transmisión de virus. También se utilizan en aplicaciones cliente-servidor. y con diferente funcionalidad. Existen.

a costa de un mayor consumo de recursos computacionales. Así mismo aparece el problema de una mayor vulnerabilidad por complejidad. y un subconjunto más pequeño de usuarios domésticos avanzados. en entornos científicos y de ingeniería. Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo. de una reducción de la funcionalidad alcanzable. las CLI no se utilizan. especialmente en sistemas operativos basados en Unix. En dispositivos portables y PDAs (como el iPhone). debido a lo complejo que resulta ingresar datos de texto. y. Conceptos Básicos 2012 La contraparte de CLI es la interfaz gráfica de usuario (GUI) que ofrece una estética mejorada y una mayor simplificación.Unidad 1. Página | 19 . o por la ausencia total de teclados. en general.