Profesora: Lilian Torres Materia: Programación I (1er Parcial) UTESA CLASE #2. (1) LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA. RECUENTO Y EJEMPLOS DE LOS LENGUAJES ESTRUCTURADOS. (2) INTRODUCCIÓN AL LENGUAJE C. ESTRUCTURA DEL LENGUAJE C. PALABRAS RESERVADAS DEL C. TIPOS DE DATOS EN C. PASCAL Fue diseñado por el profesor Hiklaus Wirth del Instituto Federal de Tecnología de Zurich en 1970. Le puso el nombre de un matemático francés del siglo XVII, Blaise Pascal, a quien se debe, entre otros descubrimientos, la primera máquina de calcular. El lenguaje fue implantado por primera vez por su diseñador y posteriormente estuvo disponible para todos los microcomputadores populares. La razón principal que impulsó a Wirth a desarrollar PASCAL fue el ofrecer un lenguaje para enseñanza de la programación como disciplina sistematizada, de forma que los principios de la disciplina estuvieran claramente reflejados por el lenguaje. PASCAL se basa en un lenguaje anterior de programación, el ALGOL 60, conservando todas las características deseables de este lenguaje, con las aplicaciones y correcciones necesarias. El hecho de que el PASCAL fuera adoptado ampliamente no solo para la enseñanza de la programación sino también para el desarrollo de sistemas de microprocesadores y por usuarios de microcomputadores es un indicativo de su éxito y también del éxito de su diseñador al conseguir su principal propósito. También pretendía que una eficiente y fiable implantación del lenguaje, pudiera realizarse con cualquier computador. En esta área el Pascal no tuvo tanto éxito. Muchas de sus implantaciones distan mucho de ser compactas necesitando más memoria que sus implantaciones en BASIC. El PASCAL provee un amplio repertorio de estructuras de programación y permite definir tipos de datos según se requieran. Por consiguiente, al programador se le facilitan todas las características necesarias para dar a sus programas una estructura lógica y se le proporciona la posibilidad de diseñar sus propias estructuras de datos en caso de que las suplidas por el pascal no satisfagan sus necesidades. De esta manera no se hace necesario recurrir a métodos artificiales o idiosincrásicos para diseñar programas y manejar datos. Las normas impuestas por el Pascal, tales, como el requerir del programador cada variable y decir cómo se utilizará, deben ser consideradas como un beneficio ya que al permitir el desarrollo de programas en forma sistematizada se evitan automáticamente la mayor parte de los errores más comunes en programación. COBOL El deseo de desarrollar un lenguaje de programación que fuera aceptado por cualquier marca de computador, reunió en Estados Unidos, en Mayo de 1959, una comisión (denominada CODASYL: Conference On Data Systems Languages) integrada por fabricantes de computadores, empresas privadas y representantes del Gobierno, dando lugar a la creación del lenguaje COBOL (COmmon Business Oriented Language) orientado a los negocios, llamándose ésta primera versión COBOL-60, por ser éste el año que vio la luz. El COBOL Es un lenguaje para cálculos en el campo de los negocios y proceso de datos comerciales. El encumbramiento del COBOL en esta área iba en contra de la política del gobierno de EEUU que requería la adquisición de un compilador COBOL para cada computador comprado con sus fondos. COBOL, estaba en constante evolución gracias a las sugerencias de los usuarios y expertos dando lugar a las revisiones de 1961, 1963 y 1965. La primera versión estándar nació en 1968, siendo revisada en 1974, llamadas COBOL ANSI o COBOL-74, muy extendidas todavía. En la actualidad es COBOL-85 la última versión revisada del lenguaje COBOL, estando pendiente la de 1997. 1 Como lenguaje comercial, el COBOL destaca en el manejo de datos alfanuméricos y ficheros, de forma que permite la realización de tareas tales como la lectura y actualización de ficheros de registros y la cumplimentación automática de formularios. Entre sus inconvenientes se encuentran sus rígidas reglas de formato de escritura, la necesidad de escribir todos los elementos al máximo detalle, la extensión excesiva de sus sentencias y la inexistencia de funciones matemáticas LENGUAJE C El lenguaje fue creado en 1972 por Dennis Ritchie, que junto con Ken Thompson había diseñado anteriormente el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la máquina para utilizarlo en la implementación del sistema operativo UNIX. Desde entonces, tanto el UNIX como el C han tenido un enorme desarrollo y proliferación, hasta convertirse en un estándar industrial para el desarrollo de software El C es un lenguaje moderno de propósito general que combina las características de un lenguaje de alto nivel (programación estructurada, tipos y estructura de datos, recursividad, etc.) con una serie de características más propias de lenguajes de más bajo nivel. Esta cualidad del C hace posible que el programador use la programación estructurada para resolver tareas de bajo nivel, obteniendo un código ejecutable veloz y eficiente. Debido a sus características de más bajo nivel, mucha gente considera al C como un lenguaje de nivel medio. Debido a esta libertad de programación que proporciona este lenguaje, se ha vuelto muy popular y es el lenguaje más usado entre los desarrolladores profesionales de software de aplicaciones comerciales (procesamiento de textos, bases de datos, aplicaciones cientifico-técnicas, etc.). Además C, es un lenguaje pequeño (posee pocas instrucciones) y conciso (no presenta instrucciones redundantes). El coste de un lenguaje tan potente y útil es que no es particularmente fácil de aprender. De hecho, la programación segura y fiable en este lenguaje requiere un conocimiento bastante profundo del mismo C++. El C++, el sucesor del lenguaje C, fue desarrollado por Bjarn Stroustup en los laboratorios Bell a principio de la década de los ochenta. En el lenguaje C, “C++” es una orden que equivale a C: =C+1, por lo que se entiende que con C++ el lenguaje C se eleva hacia su siguiente nivel. C++ introduce la programación orientada a objetos en C. Los objetos proporcionan una forma completamente nueva de ver los programas, una nueva filosofía de programación. Al igual que C, C++ es un lenguaje muy poderoso y eficiente. Sin embargo C++ es aún más difícil de aprender que C. Dado que C es un subconjunto de C++, aprender C++ significa aprender todo acerca de C y después aprender la filosofía de la programación orientada a objetos y el uso que hace C++ de la misma. Visual C++ Sistema de desarrollo C y C++ para aplicaciones DOS y Windows, de Microsoft. Introducido en 1993, el Visual C++ Standard Edition de Visual C++ reemplaza a QuickC para Windows. (Microsoft QuickC fue un producto comercial de entorno de desarrollo integrado (IDE) diseñado por Microsoft para el lenguaje de programación C, reemplazado por Visual C++ Standard Edition. Su principal competidor fue Turbo C). El Visual C++ Professional Edition incluye el Windows SDK (Kit de desarrollo de software de Microsoft) y reemplaza Microsoft C/C++ 7.0. LISP El objeto del Lisp es el Proceso de listas (LISt Processing). El proceso de listas quizás no parezca una actividad tan común como para justificar un lenguaje especial, pero el hecho es que una lista es una estructura de datos generales muy particular y con su ayuda pueden ser emprendidos problemas de muchos tipos de manera asequible. 2 Como List trata listas de cualquier tipo de elementos, permite descubrir y ejecutar cálculos no numéricos y proporcionar en particular una herramienta para el manejo de símbolos. Lisp fue desarrollado por el profesor John McCarthy y sus alumnos en el Instituto de Tecnología de Massachusetts en 1959. Su propósito original fue desarrollar un sistema de programación llamado el Registrador de Avisos que sería capaz de manejar hechos y comandos, utilizando los hechos según el sentido común para ayudar a interpretar y llevar a cabo los comandos. Los trabajadores en otras áreas, particularmente los relacionados en trabajos de Inteligencia Artificial se dieron pronto cuenta de que el lenguaje de McCarthy aportaba los medios de manipular los símbolos que estaban buscando. El manejo de símbolos es un requisito común a muchas áreas de investigación que son parte de Inteligencia Artificial (AI), incluyendo la resolución de problemas de tipo general, reconocimiento de patrones, prueba de teoremas y manejo de cálculos lingüísticos y algebraicos. Como consecuencia el Lisp ha llegado a ser el lenguaje más utilizado de Inteligencia Artificial (AI). ADA El lenguaje de programación Ada fue diseñado en un esfuerzo de colaboración, patrocinado por el Departamento de Defensa con la participación de la industria, mundo académico y comunidad internacional. Su propósito principal fue proporcionar un lenguaje de alto nivel en el que pudieran expresarse, desarrollarse y mantenerse los problemas de programación de sistemas. Ada contiene mecanismos especiales para la gestión de sucesos concurrentes en un entorno de tiempo real, desarrollando paquetes específicos de la aplicación y definiendo operadores y procedimientos genéricos. Fue a principios de los 70s cuando el Departamento de Defensa de los EE.UU., identificó un grave problema en el crecimiento del coste del software en los sistemas de computadoras "empotradas", es decir, sistemas que están incluidos en distintos vehículos militares. La principal causa de este problema era la ausencia de un lenguaje de programación adecuado y de un entorno de programación para desarrollar y mantener este software. Las aplicaciones caían en el área general de la "programación de sistemas" y la mayoría de estos programas estaban repletos de líneas de código escritas en ensamblador, obviamente variaba según la máquina. Por lo tanto afectaba a su transportabilidad. En 1975 el Departamento de Defensa de los EE.UU formó un grupo de trabajo en un lenguaje de alto orden cuya misión era: 1) Identificar el conjunto completo de requerimientos para los lenguajes del Departamento de Defensa (DD). 2) Evaluar la adecuación de los lenguajes existentes seleccionados sobre la base de éstos requerimientos. 3) Hacer una recomendación sobre el DD debía adoptar uno o más lenguajes existentes. Durante el período 1976-1977, se realizó una extensa evaluación de los veintitrés lenguajes existentes (incluyendo SIMULA, ALGOL, JOVIAL, PASCAL FORTRAN, COBOL, y PL/I, (pero excluyendo sorprendentemente al C) sobre la base de los requerimientos TINMAN. El informe final concluyó con que ninguno de los veintitrés lenguajes evaluados eran candidatos y que debía desarrollarse un nuevo lenguaje sobre un lenguaje que sirviera como base apropiada. Los candidatos fueron Pascal, Algol, y PL/I. En 1977 se inició el diseño de un nuevo lenguaje como un proyecto competitivo, y mas adelante se seleccionaron cuatro de los competidores para desarrollar diseños del lenguaje. Estos cuatro diseños, llamados, Azul, Rojo, Amarillo, y Verde, (para preservar el anonimato), fueron evaluados extensamente en 1978 y se seleccionaron dos para el final. Al final el diseño Verde, propuesto por Honeywell-Bull, fue seleccionado como el nuevo lenguaje de alto nivel de Departamento de Defensa de EE.UU. El lenguaje se llamó Ada en reconocimiento a Augusta Ada Byron, hija del poeta Lord Byron. Ella es considerada por algunos como la primera programadora del mundo, puesto que trabajó con Charles Babbage, a principios del siglo XIX. 3 Desde 1979, los esfuerzos se han dirigido a desarrollar un documento e implementaciones estándar para Ada. El primero de tales documentos se publicó en 1980 y la versión final, llamada Reference Manual for the Ada Programming Languaje, fué aprobada a principios de 1983 como el estándar militar. Esa fue la historia de Ada, un lenguaje que a nivel mundial constó muchos miles de dólares. Hoy en día tenemos la versión de GNAT Ada95 que es muy parecida al Pascal for Windows. Al compilador GNAT que la podemos bajar de forma gratuita en el sitio de Ada Core Technologies, citado más abajo. El GNAT fue originalmente por el GNAT Team, (Equipo GNAT) en la Universidad de New York, aunque ahora está siendo distribuída por Ada Cores Technologies. INTRODUCCIÓN AL LENGUAJE C ESTRUCTURA DEL LENGUAJE C. La estructura de un programa en C, consta de algunas partes esenciales: las cuales son uno o más módulos llamadas funciones, siendo main() la primera función que es llamada cuando empieza la ejecución del programa . La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C es el siguiente: main( ) { } Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más importante de cualquier programa C y además, es el más pequeño que se puede escribir y que se compile correctamente. En él se define la función main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está formada por un bloque de sentencias, que está encerrado entre llaves {}. PALABRAS RESERVADAS DEL C Las palabras reservadas son palabras especiales que no pueden usarse para nombrar otros elementos del lenguaje, como son int y float. El número de palabras reservadas en C es significativamente menor que el de otros lenguajes. En Turbo C hay 43, algunas más en Turbo C++ y menos en ANSI C. Es preciso insistir en que C hace distinción entre mayúsculas y minúsculas. Por lo tanto, la palabra reservada for no puede escribirse como FOR, pues el compilador no la reconoce como una instrucción, sino que la interpreta como un nombre de variable. TIPOS DE DATOS EN C. Tipo de datos predefinidos. Tipo de datos Descripción Int Enteros Float Reales Long Enteros de largo alcance double Reales de doble precisión char Carácter Rango -32,768 a +32767 3.4 x 10-38 a 3.4 x 3.4 1038 -2´147,483,648 a 2´147,483,647 1.7 x 10-308 a 1.7 x 10308 Símbolos del abecedario, números o símbolos especiales. Constantes Las constantes, como su nombre lo indica, son valores que se mantiene invariables durante la ejecución del programa. Su formato es el siguiente: const tipo_de_dato nombre= valor; donde const, es una palabra reservada, para indicarle al compilador que se está declarando una constante. 4 Ejemplo: const int dia=7; const float pi=3.14159; const char caracter= ‘m’; const char fecha[]="25 de diciembre"; Caso Especial Constantes Simbólicas Las constantes simbólicas, se declaran mediante la directiva #define, como se explicó anteriormente. Funcionan de la siguiente manera, cuando C encuentra el símbolo que representa a la constante, lo sustituye por su respectivo valor. Ejemplo: #define N 150 #define PI 3.1416 #define P 50 Diferencias fundamentales entre la declaratoria const y #define; la primera, va dentro del programa, es decir, dentro de la función main() o alguna función definida por el usuario, mientras que #define va en el encabezado, después de los #include, por eso estas no llevan al final el punto y coma (;). Declaración de Variables Una Variable, como su nombre lo indica, es capaz de almacenar diferentes valores durante la ejecución del programa, su valor varía. Es un lugar en la memoria el cual, posee un nombre (identificador), y un valor asociado. La declaración de variables en C, se hace en minúsculas. Formato: Tipo_de_dato nombre_de_la_variable; int x; float y; char car = ’M’; char nombre[6]="Lilian"; Programa que imprime Hola amigos y en la siguiente línea imprime cambiar. #include <stdio.h> #include <conio.h> main( ) { printf("Hola amigos!\n"); printf("cambiar"); getch(); } Programa que lee 2 números e imprime la suma y multiplicación de ambos. #include <stdio.h> #include <conio.h> #include <math.h> main() { int a,b,s,m; scanf("%d",a); scanf("%d",b); s=a+b; m=a*b; printf("La suma es %d\n",s); printf("La multiplicación es %d",m); getch(); } 5 6