Download clase-4-LenguajeC

Document related concepts

Rust (lenguaje de programación) wikipedia , lookup

Función de orden superior wikipedia , lookup

Maple (software) wikipedia , lookup

Caml wikipedia , lookup

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