Download clase-4-LenguajeC
Document related concepts
Transcript
E S C U E L A D E C I E N C I A S E M P R E S R I A L E S Lenguaje de Programación C en pocas palabras Paul Leger http://pleger.cl Interpretes y Compiladores de Lenguajes de Programación La mayoría de las implementaciones de un lenguaje de programación (ej. Java y C) necesitan dos etapas para ejecutar un programa: compilar e interpretar Las implementaciones de Python generalmente usa una sola etapa: interpretación Código fuente (ej. “py”) Código Compilado (ej. “pyc”) Interpretado ejecutado Introducción a C • Creado en 1969-1973, luego tuvo una extensión llamada C++, la cual soporta programación orientada a objetos • Muchos lenguajes están inspirados (al menos en sintaxis) en C . Por ejemplo, Java, PHP, PYTHON, C#, Perl, Ruby, etc. • Hoy en día C, se usa principalmente para crear aplicaciones de bajo nivel, donde la eficiencia es un requisito • C soporta “if”, ciclos, arrays, y las mayorías de las características vistas en Python C en un ejemplo básico #include<stdio.h> int main() { //aquí hay un comentario int a = 2; float b = a; printf(“El valor de es %f”,b); return 0; } Algunas diferencia con Python • La mayoría de las implementaciones de C usan compiladores por términos de eficiencias. • Soporta tipos estáticos (ej. “int”), esto permita aumentar su eficiencia al ejecutar su código y evitar algunos errores cuando el código se ejecuta (mirar pizarra y computador) • Permite administración directa de la memoria (first-class memory) a través de PUNTEROS! • Esto lo vuelve muy eficiente, pero extremadamente peligroso (principalmente su aritmética) Uso de Memoria A=3 A=2 A += 1 print A int main() { int a = 2; ++a; print(“%i”, a); return 0; } PYTHON Interprete de Python a=3 C C RAM C con punteros #include<stdio.h> int sumar1(int a, int b) { int c = a + b; b = a; return c; } int sumar2(int *a, int *b) { int c = *a + *b; *b = *a; return c; } int main() { int a = 2, b = 4; int c1 = sumar1(a,b); int c2 = sumar2(&a,&b); print(“%i”,b); return 0; } Administración de Memoria con Punteros Suponga una variable Yptr, cuya dirección es 100 y su valor 1 C y Sistemas Operativos • El bajo nivel de los sistemas operativos generalmente está implementado en C • Muchos ejemplos de códigos de sistemas operativos están en C • Sistemas operativos usan C por su capacidad de administrar la memoria de manera eficiente