Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Interfaz con otros lenguajes

Curso de Ada - Interfaz con otros lenguajes

 ****- (11 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
31. Interfaz con otros lenguajes
En el mercado existen miles de bibliotecas de programación escritas en C ó C++. También es bastante común tener que reutilizar una parte de nuestros programas escritos en otro lenguaje. Para este propósito existen en Ada los pragmas (directivas de compilación) de interfaz con otros lenguajes, definidos en el Annex B: Interface to Other Languages. El estándar define interfaces con los lenguajes C, COBOL y Fortran, y también con ensamblador. Las implementaciones pueden definir interfaces con otros lenguajes siguiendo el mismo esquema. Así, por ejemplo, GNAT proporciona interfaz con C++ (aunque el name mangling suele dificultar esta tarea).

Para importar desde nuestro programa Ada una función definida en otro lenguaje se utiliza el pragma Import. Ésta es la base de los conocidos bindings que nos permiten utilizar una librería escrita en otro lenguaje desde Ada. Para hacer que un subprograma escrito en Ada pueda ser llamado desde otro lenguaje, se utiliza el pragma Export.

También se pueden importar y exportar variables o constantes.

A la hora de enlazar (link) el programa completo tenemos que especificar a nuestro compilador con qué bibliotecas externas ha de enlazar para encontrar los subprogramas u objetos importados. Para esto también puede ser de ayuda el pragma Linker_Options, con el cual se pueden especificar los argumentos para el linker.

La biblioteca predefinida tiene varios paquetes, todos ellos hijos de Interfaces destinados a facilitar la interfaz con otros lenguajes, definiendo tipos y subprogramas para ello:





Ejemplo de importación desde C


-- Ejemplo para limpiar la pantalla with Interfaces.C; procedure Cls is package C renames Interfaces.C; function System (Command : C.Char_Array) return C.Int; pragma Import(C, System, "system"); Rc : C.Int; begin Rc := System (C.To_C ("cls")); -- Comando sintaxis MS-DOS. En Unix sería clear end Cls;

Este ejemplo compilaría perfectamente usando GNAT con:

gnatmake cls.adb

Sin embargo si en vez de importar funciones de las librerías estándar de C tenemos que importar nuestras propias funciones, primero tendríamos que definirlas en su correspondiente archivo .c, compilarlas y luego pasárselas al compilador de Ada.

Por ejemplo si nuestras funciones están definidas en el archivo mis_funciones.c y si usamos el compilador gcc:

gcc -c mis_funciones.c

Con esto se obtiene un mis_funciones.o que se ha de pasar al gnatmake para que enlace con las funciones:

gnatmake ejemplo.adb -largs mis_funciones.o

Si no lo hacemos así fallará la fase de enlace del programa porque existen referencias a funciones externas no encontradas.

Manual de Referencia de Ada


Tabla de contenidos
  1. 1 - Introducción
  2. 2 - Historia
  3. 3 - Manual de referencia
  4. 4 - Instalación
  5. 5 - Hola Mundo
  6. 6 - Elementos del lenguaje
  7. 7 - Tipos
  8. 8 - Enteros
  9. 9 - Enumeraciones
  10. 10 - Coma flotante
  11. 11 - Coma fija
  12. 12 - Arrays
  13. 13 - Strings
  14. 14 - Registros
  15. 15 - Registros discriminados
  16. 16 - Registros variantes
  17. 17 - Punteros a objetos
  18. 18 - Punteros a subprogramas
  19. 19 - Tipos derivados
  20. 20 - Tipos etiquetados (orientación a objetos)
  21. 21 - Subtipos
  22. 22 - Objetos (variables y constantes)
  23. 23 - Atributos
  24. 24 - Expresiones
  25. 25 - Operadores
  26. 26 - Sentencias y estructuras de control
  27. 27 - Subprogramas
  28. 28 - Sobrecarga
  29. 29 - Entrada/salida
  30. 30 - Pragmas
  31. 31 - Interfaz con otros lenguajes
  32. 32 - Diseño y programación de sistemas grandes
  33. 33 - Paquetes
  34. 34 - Clausula use
  35. 35 - Clausula with
  36. 36 - Paquete Standard
  1. 37 - Declaraciones
  2. 38 - Ámbito
  3. 39 - Visibilidad
  4. 40 - Renombrado
  5. 41 - La biblioteca Ada (unidades y subunidades)
  6. 42 - Unidades de biblioteca
  7. 43 - Unidades hijas
  8. 44 - Subunidades
  9. 45 - Compilación separada y dependiente
  10. 46 - Tipos abstractos de datos
  11. 47 - Tipos limitados
  12. 48 - Unidades genéricas
  13. 49 - Excepciones
  14. 50 - Paquete Ada.Exceptions
  15. 51 - Concurrencia
  16. 52 - Tareas
  17. 53 - Sincronización de tareas mediante puntos de entrada o citas (entry)
  18. 54 - Aceptación de citas (accept)
  19. 55 - Selección de citas (select)
  20. 56 - Llamadas a punto de entrada complejas
  21. 57 - Tareas dinamicas: creación dinamica de tareas (tipos t
  22. 58 - Dependencia de tareas
  23. 59 - Ejemplos de tareas
  24. 60 - Programación distribuida con GLADE
  25. 61 - Novedades de Ada 2005
  26. 62 - Unidades predefinidas
  27. 63 - Paquete Ada.Strings.Fixed
  28. 64 - Paquete Ada.Strings.Unbounded
  29. 65 - Paquete Ada.Text_IO
  30. 66 - Paquete Ada.Text_IO.Editing
  31. 67 - Paquete Ada.Float_Text_IO
  32. 68 - Paquete Ada.Sequential_IO
  33. 69 - Paquete Ada.Command_Line
  34. 70 - Paquete Interfaces
  35. 71 - Recursos en la Web
Autor y licencia de 'Curso de Ada - Interfaz con otros lenguajes'
José Alfonso Malo Romero Extraído de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n GNU Free Documentation License
El contenido está disponible bajo los términos de GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Ada - Interfaz con otros lenguajes'

Revisamos varios lenguajes de programación que son usados en la actualidad para hacer páginas Web.... Más »
Revisamos varios lenguajes de programación que son usados en la actualidad para hacer páginas Web.... Más »
Recopilación de refranes en francés e italiano y de temas como el vino y la... Más »
Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
Este es un curso tremendamente completo, guiado y con ejemplos y prácticas pensadas para convertirlo... Más »
Gente Wiki
Santiago
Soy consultor y asesor en ingeniería y administración y pienso que el compartir inquietudes es la base del desarrollo humano.
Innovación, Análisis estadístico,...
Amparo Rodriguez Rivera
Maestra de educacion superior y secundaria, en las especialidades de informatica y ciencias, ademos soy miembro del equipo del programa...
Nestor Boche
Ingeniero 35 años. Gerente de empresa con 3 años de vida. Discipulo de la administración, tecnología, crecimiento, basadas en que...
Jmslayer
Mis intereses giran en torno a la literatura, el arte en general, la música, la informática. Utilizo el wikilearning para...
Historia de la literatura
Arturo Gutiérrez
Diseñador gráfico, artista. Además de todo lo relacionado con mi profesión (diseño, fotografía, pintura, comics, publicidad), me gustan las películas...
Oscar Trujillo
Soy consultor en innovación, mercadotecnia y relaciones comerciales especializado en emprendimientos, micro y pequeñas empresas. Radico en cuernavaca, morelos, méxico,...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?