Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
18 | Capítulo 1: Repaso de programación y resolución de problemas Interfaz Enlace de conexión en un límite compartido que permite a los sistemas independientes satisfacer y actuar o comunicarse entre sí. Sistema interactivo Sistema que permite la comunica- ción directa entre el usuario y la computadora. Sistema operativo Conjunto de programas que controla todos los recursos de la computadora. Editor Programa interactivo empleado para crear y modi- fi car programas fuente o datos. Además de los programas que compra o escribe el usuario, hay programas en la computadora que están diseñados para simplifi car la interfaz usuario/computadora, lo que facilita el uso de la máquina. La interfaz entre el usuario y la computadora es un conjunto de dispositivos I/O —por ejemplo, un teclado, ratón y pantalla— que permiten al usuario comunicarse con la computadora. Los usuarios trabajan con teclado, ratón y pantalla en su lado del límite de inter- faz; los cables conectados a estos dispositivos llevan los impulsos electrónicos con los que trabaja la computadora en su lado del lími- te de interfaz. En el límite mismo está un mecanismo que traduce la información para los dos lados. Al comunicarse directamente con la computadora, se está usando un sistema interactivo. Los siste- mas interactivos permiten la entrada directa de programas y datos y proporcionan retroalimentación inmediata al usuario. En contraste, los sistemas por lotes requieren que todos los datos sean introdu- cidos antes de que se ejecute un programa y proporcionan retroalimentación sólo después de que se ha ejecutado un programa. En este texto se centra la atención en los sistemas interactivos, aunque en el capítulo 4 se examinan programas orientados a archivos, que comparten ciertas similitudes con los sistemas por lotes. El conjunto de programas que simplifi ca la interfaz usuario/computadora y mejora la efi cacia del procesamiento se denomina software de sistema. Incluye el compilador así como el sistema operativo y el editor (véase la fi gura 1-10). El sistema operativo controla todos los recursos de la computadora. Puede introducir programas, llamar al compilador, ejecutar programas objeto y realizar cualquier otra instrucción del sistema. El editor es un programa interactivo utilizado para crear y modifi car programas fuente o datos. ENTRADA Programa Introducción del programa, introducción de datos COMPUTADORA Software del sistema: sistema operativo, compilador, editor Informes, listas SALIDA Figura 1-10 Interfaz usuario/computadora DALE01.indd 18DALE01.indd 18 4/12/06 18:48:284/12/06 18:48:28 www.FreeLibros.me 1.3 ¿Qué es una computadora? | 19 Información básica Los orígenes de C++ A fi nales de la década de 1960 y principios de la de 1970, Dennis Ritchie creó el lenguaje de programación C en AT&T Bell Labs. En aquella época, un grupo de personas en los laboratorios Bell estaba diseñando el sistema operativo UNIX. Al inicio, UNIX se escribía en lenguaje ensamblador, como era costumbre para casi todo el software de sistema en esos días. Para evitar las difi cultades de programar en lenguaje ensamblador, Ritchie inventó C como un lenguaje de programación de sistema. C combina las características de bajo nivel de un lenguaje ensamblador con la facilidad de uso y portabilidad de un lenguaje de alto nivel. UNIX se reprogramó de modo que casi 90% se escribió en C y el resto en lenguaje ensamblador. Las personas suelen preguntarse de dónde viene el enigmático nombre C. En la década de 1960 un lenguaje de programación denominado BCPL (Basic Combined Programming Language) tuvo un segui- miento pequeño pero leal, sobre todo en Europa. De BCPL surgió otro lenguaje con B como abreviatura para su nombre. Para su lenguaje, Dennis Ritchie adoptó características del lenguaje B y decidió que el sucesor de B debería nombrarse C. Así que el avance fue de BCPL a B y después a C. En 1985 Bjarne Stroustrup, también de laboratorios Bell, inventó el lenguaje de programación C++. Añadió al lenguaje C características para abstracción de datos y programación orientada a objetos (temas que se analizan más adelante en este libro). En lugar de nombrarlo lenguaje D, el grupo de laboratorios Bell de una manera humorística lo nombró C++. Como se verá más adelante, ++ signifi ca la operación de incremento en los lenguajes C y C++. Dada una variable x, la expresión x++ indica incrementar (sumar uno a) el valor actual de x. Por tanto, el nombre C++ hace pensar en una versión mejorada (“incrementada”) del lenguaje C. Desde los años en que el doctor Stroustrup inventó C++, el lenguaje comenzó a evolucionar en formas un poco diferentes en distintos compiladores de C++. Aunque las características fundamentales de C++ fueron casi las mismas en los compiladores de las empresas, una compañía podía añadir una nueva carac- terística de lenguaje, mientras que otra no. Como resultado, los programas de C++ no siempre fueron trans- portables de un compilador al siguiente. La comunidad dedicada a la programación acordó que el lenguaje necesitaba ser estandarizado, y un comité conjunto de la International Standards Organization (ISO) y el American National Standards Institute (ANSI) comenzó el largo proceso de crear un estándar de lenguaje C++. Después de varios años de análisis y debate, el estándar de lenguaje ISO/ANSI para C++ se aprobó de manera ofi cial a mediados de 1998. La mayoría de los compiladores actuales de C++ avalan el estándar ISO/ ANSI (de aquí en adelante llamado estándar C++). Para ayudarlo si está usando un compilador preestándar, en todo el libro se indican las discrepancias entre las características de lenguaje antiguas y las nuevas que podrían afectar la manera como escribe sus programas. Aunque en un principio C se propuso como un lenguaje de programación de sistema, tanto C como C++ se emplean mucho hoy día en negocios, industria y computación personal. C++ es poderoso y versátil e incorpora una amplia variedad de conceptos de programación. En este libro el alumno conocerá una parte sustancial del lenguaje, pero C++ incorpora características complejas que van más allá del alcance de un curso de programación introductorio. Aunque las computadoras solitarias (independientes) son comunes en los hogares y negocios pequeños, es muy común que muchos usuarios se conecten juntos y formen una red. En una red de área local (LAN, por sus siglas en inglés) las computadoras están conectadas mediante cables y deben estar razonablemente cerca, como en un edifi cio de ofi cinas. En una red de área amplia (WAN, por sus siglas en inglés) o red de largo alcance, las computadoras están muy apartadas desde el punto de vista geográfi co y se comunican por medio de líneas telefónicas, cable de fi bra óptica u otros medios. La red de largo alcance mejor conocida es la Internet, que al principio se diseñó como un medio para que las universidades, negocios y agencias de gobierno intercambiaran información de investigación. La Internet se hizo popular con el establecimiento de la World Wide Web, un sistema de computado- ras enlazadas por medio de Internet que soporta documentos formateados específi camente (páginas web) que contienen texto, gráfi cas, audio y video. DALE01.indd 19DALE01.indd 19 4/12/06 18:48:304/12/06 18:48:30 www.FreeLibros.me 20 | Capítulo 1: Repaso de programación y resolución de problemas 1.4 Ética y responsabilidades en la profesión de computación Toda profesión opera con un conjunto de principios éticos que ayudan a defi nir las responsabilidades de las personas que la practican. Por ejemplo, los médicos tienen la responsabilidad ética de mantener confi dencial la información acerca de sus pacientes. Los ingenieros tienen una responsabilidad ética con sus patrones de proteger la información de propiedad exclusiva, pero también tienen la responsa- bilidad de proteger al público y al ambiente del daño que podría resultar de su trabajo. Los escritores estáncomprometidos éticamente a no plagiar el trabajo de otros, etcétera. La computadora presenta un vasto y novedoso ámbito de capacidades que pueden afectar al ambiente de manera espectacular. Esto enfrenta a la sociedad con muchas situaciones éticas nuevas. Algunas de las prácticas éticas se aplican a la computadora, mientras que otras situaciones requieren nuevas reglas éticas. En algunos casos, podría no haber normas establecidas, pero corresponde a la persona decidir lo que es ético. En esta sección se examinan algunas situaciones comunes encontra- das en la profesión de la computación que dan lugar a asuntos éticos. Un profesional en la industria de la computación, como cualquier otro, tiene conocimiento que le permite hacer ciertas cosas que otros no pueden. Saber cómo tener acceso a las computadoras, cómo programarlas y cómo manejar datos da al profesional de las computadoras la capacidad para crear productos nuevos, resolver problemas importantes y ayudar a las personas a manejar sus interaccio- nes con el mundo aún más complejo en el que vivimos. El conocimiento de las computadoras puede ser un medio poderoso para efectuar un cambio positivo. El conocimiento puede ser empleado también de maneras no éticas. Una computadora puede ser programada para activar una bomba, sabotear la línea de producción de un competidor o robar dinero. Aunque estos ejemplos constituyen un punto extremo y son inmorales en cualquier contexto, hay ejemplos más sutiles que son únicos para las computadoras. Piratería de software Es fácil copiar el software de computadora. Pero al igual que los libros, el software está en general protegido por las leyes de los derechos de autor. Es ilegal copiar software sin permiso de su creador. Tal copia se llama piratería de software. Las leyes de derechos de autor protegen a los creadores de software (y libros y arte), de modo que puedan obtener ganancias del esfuerzo y dinero gastado en el desarrollo de software. El desa- rrollo de un paquete de software puede costar millones de dólares, y este costo (junto con el de producir el paquete, enviarlo, apoyar a los clientes y permitir que el vendedor al menudeo incremente el precio) se refl eja en el precio de compra. Si las personas hacen copias no autorizadas del software, entonces la compañía pierde esas ventas y tiene que aumentar sus precios para compensar o gastar menos dinero en el desarrollo de versiones mejoradas del software; en cualquier caso, se hace más difícil lograr un precio deseable del software. En ocasiones los piratas de software racionalizan su robo de software con la excusa de que sólo hacen una copia para su propio uso. Después de todo, no es que estén vendiendo gran cantidad de copias ilegales. Pero si miles de personas hacen lo mismo, entonces la compañía pierde millones de dólares, lo que origina precios más altos para todos. Los profesionales de la computación tienen la obligación ética de no participar en la piratería de software y deben tratar de evitar que ocurra. Nunca copie software sin autorización. Si alguien le pide una copia de una pieza de software, debe negarse a proporcionarla. Si alguien le pide “prestado” el software para probarlo, dígale que lo puede hacer en su máquina (o en la tienda de un vendedor al menudeo), pero no haga una copia. Esta regla no está restringida a duplicar software protegido por las leyes del derecho de autor; incluye el plagio de todo o parte del código que pertenece a cualquier otro. Si alguien le autoriza copiar un poco de su código, entonces, como cualquier escritor responsable, debe agradecer a esa persona con una cita en el código. Piratería de software Copia no autorizada de software para uso personal o uso por parte de otros. DALE01.indd 20DALE01.indd 20 4/12/06 18:48:384/12/06 18:48:38 www.FreeLibros.me
Compartir