User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/2013-i/actividad_6.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
teaching:ie0117:2013-i:actividad_6

This is an old revision of the document!


Actividad 7. Conceptos básicos de C y bindings de python para C

En esta actividad se realizarán prácticas en el lenguaje de programación C con el objetivo de entender los conceptos básicos de programación, compilación y memoria. Al final se mostrará como se pueden interconectar los lenguajes de programación de python y c.

Preguntas de la actividad

  • Qué es compilar e interpretar? Cuáles son las diferencias?
  • Cómo se compila un programa escrito en C?
  • Por qué se debe compilar un programa escrito en C?
  • Con qué se compila un programa escrito en C?
  • Cómo se automatiza o facilita la compilación en C?
  • Cómo hago para facilitar el trabajo en equipo para crear un programa grande en C?
  • Para qué sirve una biblioteca?
  • Qué es “shared library”?
  • Cómo se puede llamar a una función de C desde python?
  • Qué es un binding de python?

Temas tentativos a cubrir

  • Memoria: program, data, heap, stack
  • GCC
  • Makefiles, cmake, autotools
  • Programación en C: includes, while, for, if, tipos, printf, punteros, argumentos, pila, funciones, arreglos, arreglos y punteros, structs, etc.
  • Bibliotecas: .c, .o, .h linking, pkg-config .so
  • Cómo compilar?
  • Cómo hacer un binding de python para C.

Instrucciones

  • Haga un programa que imprima “Hola Mundo” usando la biblioteca stdio. Compílelo y ejecútelo.
  • Haga un programa que implemente una estructura de datos tipo FIFO con un espacio de 10 enteros. Haga un programa que ingrese 100 números del 0 al 99 y cada vez que itere un número, que imprima el contenido completo de la estructura FIFO. El programa debe indicar si la estructura está llena o está vacía. El programa debe retirar un número de la estructura de datos cuando dicha estructura esté llena. Una vez que hayan sido alimentados todos los datos, la estructura debe ser vaciada retirando uno a uno los datos que aun estén en el FIFO.
  • Implemente un “median filter” utilizando una ventana de 4 datos. (use la estructura FIFO implementada en el punto anterior)
  • Usando una librería para accesar archivos de audio (libsndfile, libaudiofile, sndlib), filtre el audio de un archivo de ejemplo y vuélvalo a almacenar en un nuevo archivo. Observe las diferencias. Use diferentes tamaños de ventana.

Binding de python

  • Usando el ejemplo mostrado por el profesor construya una función sencilla de C pero que acepte argumentos y retorne un valor desde python.

Evaluación

Se evaluará que la función creada en C pueda aceptar un argumento y que regrese un valor cuando es llamada desde python.

~~DISCUSSION~~

teaching/ie0117/2013-i/actividad_6.1456507780.txt.gz · Last modified: 2022/09/20 00:08 (external edit)