C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Documentos relacionados
Tema 2 Introducción a la Programación en C.

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Fundamentos de Programación 2017-I

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Lenguaje de Programación

Computadora y Sistema Operativo

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

TEMA 3: El proceso de compilación, del código fuente al código máquina

Técnicas de Programación

Principios de Computadoras II

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Introducción a la programación

Elementos de un programa en C

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Informática Ingeniería en Electrónica y Automática Industrial

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Introducción a la programación. El lenguaje de programación C

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Lenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación

Estructuras de Datos Declaraciones Tipos de Datos

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Tema V Generación de Código

LÓGICA DE PROGRAMACIÓN

1. Computadores y programación

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Preliminares. Tipos de variables y Expresiones

Un. VI. Generador de código intermedio.

FUNDAMENTOS DE INFORMÁTICA

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Tema III: Introducción al lenguaje de programación

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Programación En Lenguaje C

Tecnología de software para sistemas de tiempo real

Programación Avanzada

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Pruebas de escritorio

Compilación de Programas C en UNIX y LINUX

Curso de Programación Avanzada en C

Tema 7. Generación de código

Programación. Test Autoevaluación Tema 3

Unidad I: Organización del Computador. Ing. Marglorie Colina

FUNCIONAMIENTO DEL ORDENADOR

Lenguaje de Programación: Compiladores de C y C++

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz.

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Lenguajes de programación Última modificación 2008/10

Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas

JAVA 7 Los fundamentos del lenguaje Java

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Unidad III El lenguaje de programación C

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

INTRODUCCIÓN AL LENGUAJE C

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Microsoft Visual Studio está basado en.net framework. Definiciones de.net Framework:

01 Introducción al lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Funciones básicas del depurador

Qué es un programa informático?

Introducción a la Operación de Computadoras Personales

Construyendo Programas más Complejos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Algoritmos y Lenguajes de Programación

Operadores y Expresiones

TIPOS DE DATOS BASICOS EN LENGUAJE C

Unidad II: Análisis semántico

ANEXO XVII DE LA RESOLUCION N

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Tema III: Semestre: A-2011

Programación MODULAR: Subalgoritmos - funciones y procedimientos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Informática I. Lenguajes de Programación, Herramientas de Desarrollo. Alejandro Furfaro

Lenguaje C++ Introducción 6. Introducción a la Computación Tc1001 Programación en Lenguaje C++

Manual de turbo pascal

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

Programación estructurada (Introducción a lenguaje C)

Bloque III. Herramientas

Nociones Básicas de un Sistema Computador. Clase 2 Introducción a la Programación

Consigue las herramientas que necesitas Inicio: 20 Noviembre 2016

Usando el Sistema Operativo

El lenguaje de programación PHP Tipos de Datos. Semestre: A-2010

Objetos de aprendizaje: Computadora

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

ENTORNO DE DESARROLLO Y COMPILACIÓN DE PELLES C

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Fundamentos de Ordenadores. Depurar programas usando Nemiver

UNIVERSIDAD DE OVIEDO

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

Transcripción:

C1 INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Índice 1. Lenguajes de Programación 1. Definición. 2. Niveles de lenguajes de programación 3. Compiladores e intérpretes 2. El lenguaje C 1. Historia 2. Características. 3. Compilación. 4. Entorno de desarrollo. 5. Mi primer programa.

Lenguajes de Programación: Definición Un Lenguaje de Programación es un conjunto de símbolos y reglas con los que expresar órdenes a un ordenador. Los símbolos que acepta un lenguaje de programación representan su léxico. Las reglas son sintácticas y semánticas: Sintaxis: establece qué construcciones son aceptables como instrucciones válidas. Semántica: establece el significado de dichas Instrucciones válidas.

Lenguajes de Programación: Definición Lenguaje Natural (Humano) Lenguaje de Programación Léxico Palabras y signos de puntuación Símbolos del lenguaje. Sintaxis Oraciones correctas. Instrucciones bien formadas y válidas. Semántica Información que trasmite quien habla o escribe. Qué acciones debe ejecutar el ordenador para hacer lo que ordena el programa.

Niveles de los lenguajes de programación Básicamente se pueden establecer tres categorías: Lenguaje máquina Lenguaje ensamblador Alto nivel Lenguaje máquina Lenguaje directamente comprensible por el procesador. Representación bit a bit en '1's y '0's. Depende totalmente del hardware. Es definido por el conjunto de instrucciones que soporta un procesador. Ej: Un programa escrito en lenguaje de máquina del 68000 Motorola es completamente incomprensible por el Pentium Intel.

Niveles de los lenguajes de programación Lenguaje ensamblador Emplea palabras nemotécnicas para hacer referencia a las instrucciones del lenguaje de máquina. Ensamblador ADD AX,54 01000101 Lenguaje de máquina 01010100 Incluye nombres simbólicos para hacer referencia a las variables o etiquetas para marcar el destino de los saltos en el flujo del programa. Ensamblador atras: jmp atras Lenguaje de máquina 00000101 11010100 El programa escrito en lenguaje ensamblador debe ser traducido a lenguaje de máquina, ya que el procesador sólo entiende 0 s y 1 s. Programa Fuente en Ensamblador Programa Ensamblador Programa Objeto 1 s y 0 s en Lenguaje Máquina

Niveles de los lenguajes de programación Lenguaje Máquina y Ensamblador Son esencialmente iguales. Hay una correspondencia simple entra ambos y son considerados lenguajes de Bajo Nivel. Ambos están directamente ligados a la arquitectura del procesador y del ordenador que se utilice y requieren una alta especialización del programador. Lenguajes de Alto Nivel Definen su sintaxis y sus estructuras al margen del procesador que se utilicen. Son independientes del procesador. Son portables (a priori). Una sola sentencia de alto nivel corresponde en general a muchas instrucciones de bajo nivel. La correspondencia entre las estructuras de alto nivel y el código de máquina es compleja. Las sentencias se escriben en un programa fuente utilizando un editor de texto (son legibles), en el que pueden aparecer comentarios. Las instrucciones son más abstractas y potentes. Necesitan ser traducidos al lenguaje del procesador (compilador).

Compiladores e intérpretes El compilador En la etapa de análisis, el compilador verifica que los símbolos son correctos (léxico), que las sentencias están bien construidas (sintaxis) y que las instrucciones tengan un significado coherente (semántica). En la etapa de síntesis se genera código de máquina para el procesador específico y si es posible se optimiza el código atendiendo, por ejemplo, a criterios como: Tamaño del programa Velocidad de ejecución.

Compiladores e intérpretes Tras la compilación se genera un fichero con el programa ejecutable. Al ejecutarse puede dar lugar a varios procesos. El Intérprete En contraposición a un compilador, un intérprete es un programa que sólo realiza la traducción del programa fuente a medida que sea necesario y, normalmente, no guardan el resultado de dicha traducción. Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración. Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito

Historia del Lenguaje C Creado por Dennis Ritchie entre el año 1970-73. En 1973 la mayor parte del kernel de Unix fue reescrito en C. En 1978, Ritchie junto a Brian Kerninghan publicaron The C Programming Language (K&R) donde se hicieron nuevas aportaciones al lenguaje y se estableció el conjunto mínimo de carácterísticas que debía cumplir un compilador de C. Estándar de Facto Durante los 70 empezó progresivamente a reemplazar a BASIC en microcomputadoras. 1980 Stroustroup desarrolla C++ como una extensión orientada a objetos del C. El ANSI crea una comisión para estandarizar el lenguaje. 1983-1989. El lenguaje C que cumple con la especificación se le llama ANSI C. Soportado por la mayoría de los compiladores. Incluye el K&R pero con nuevas características. Si se escribe en ANSI C se garantiza la portabilidad.

Características del Lenguaje C Lenguaje de alto nivel con posibilidad de bajo nivel. Independiente del hardware aunque si el programador quiere puede "bajar" al hardware. El núcleo del lenguaje es relativamente pequeño. Se apoya en bibliotecas o librerías externas para realizar funciones esenciales (como la entrada /salida). Dado que las librerías están también estandarizadas (ANSI) se puede considerar que forman parte del lenguaje. El paradigma de programación que mejor se aviene al lenguaje C es el de Programación Estructurada: Escritura de programas mediante módulos que necesitan sólo tres estructuras: secuencia, selección e iteracción (sin necesidad de saltos incondicionales de tipo goto, exit o múltiples return) El flujo del programa en C está definido por secuencia, decisiones condicionales, bucles y llamadas a funciones. Conjunto de operadores aritmético-lógicos muy poderoso. Cuidado, porque puede fácilmente crear programas casi imposibles de entender o crípticos. Valores almacenados en variables, con diferentes tipos. Los programas grandes se subdividen en funciones: procedimientos con parámetros de entrada y de salida bien definidos.

Compilación El Programa Fuente es un fichero texto que contiene las instrucciones y comentarios escritos por el programador. Puede incluir sentencias del tipo: # include <stdio.h> Indica que se incluya un archivo de cabecera.(.h).estos archivos contienen definiciones y declaraciones útiles y utilizadas por las librerías. Antes de compilar se crea otro programa fuente mediante un preprocesamiento: incluyendo los archivos de cabecera quita comentarios reemplaza definiciones (#define PI 3.14) se obtiene programa fuente intermedio (texto) extendido (.i)

Compilación El programa fuente intermedio es compilado y se obtiene un programa objeto en código de máquina del procesador (.o). Este programa objeto todavía no es directamente ejecutable, dado que falta por integrar el código ejecutable de las Librerías (.a) o de otros prgramas (.o).

Compilación El enlazador (Linker) une todos los archivos que contengan código objeto para el programa, así como las librerías a las que éstos hacen referencia. Se resuelven las referencias cruzadas entre las distintas partes del código. Ejemplo: Una instrucción en objeto1.o puede hacer referencia a una variable en objeto2.o En objeto1.o y objeto2.o se invocan funciones de la librería estándar. Como resultado se obtiene el programa directamente ejecutable por el S.O.

Entorno de desarrollo integrado (IDE) Un entorno de desarrollo integrado, (IDE: integrated development environment), es un programa informático compuesto por un conjunto de herramientas para facilitar las tareas de programación. Normalmente constan de: un editor de textos donde escribimos el código un compilador, que generará el código ejecutable un depurador, que nos permite buscar errores herramientas para elaborar interfaces gráficas (GUI: graphical user interface)

Entorno de desarrollo integrado (IDE) CODE::BLOCKS Es un IDE de uso libre y multiplataforma para el desarrollo de programas en C y C++. Permite el uso de diferentes compiladores. En nuestro caso usaremos el compilador gcc en su versión para Windows MinGW Dispone de multitud de posibilidades de configuración en lo que respecta a las características del editor, opciones de compilación, depuración, etc. Durante el curso, nosotros nos centraremos sólo en los aspectos relacionados con la programación en C Más información en: http://www.codeblocks.org/ http://es.wikipedia.org/wiki/code::blocks

Entorno de desarrollo integrado (IDE) CODE::BLOCKS

Mi primer programa en C #include <stdio.h> /*Cabecera E/S estandar*/ main() /*Función principal main*/ { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/

Mi primer programa en C Todo programa debe tener una función main, donde comienza la ejecución del programa #include <stdio.h> /*Cabecera E/S estandar*/ main() /*Función principal main*/ { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/

Mi primer programa en C #include <stdio.h> /*Cabecera E/S estandar*/ main() /*Función principal main*/ { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/ Las llaves {} delimitan las sentencias incluidas en el bloque de definición de la función main.

Mi primer programa en C #include <stdio.h> /*Cabecera E/S estandar*/ main() /*Función principal main*/ { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/ Comentarios aclaratorios delimitados por /* */. Son ignorados por el compilador y eliminados en la etapa de preprocesamiento

Mi primer programa en C Se ordena la inclusión (durante el etapa de preprocesamiento) del archivo de cabecera de E/S estándar. Es necesario porque se va a utilizar una función de E/S. #include <stdio.h> /*Cabecera E/S estandar*/ main() /*Función principal main*/ { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/

Mi primer programa en C #include <stdio.h> main() Dentro de función main se invoca la función printf de la librería de E/S estándar. printf muestra por la salida estándar (la pantalla normalmente) el contenido de la cadena de caracteres que se le pasa como argumento. /*Cabecera E/S estandar*/ El carácter especial representado por \n /*Función principal main*/ significa un cambio de línea. { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/

Mi primer programa en C #include <stdio.h> main() /*Cabecera E/S estandar*/ Las sentencias en C terminan con el carácter ; /*Función principal main*/ { /*Inicio bloque main*/ printf(" Hola mundo!\n"); /*Llamada función main*/ } /*Fin bloque main*/