OpenLLM-France/wikimedia huggingface dataset:
# Programación en Ada/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

Este ejemplo compilaría perfectamente usando GNAT con:
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:
Con esto se obtiene un mis_funciones.o que se ha de pasar al gnatmake para que enlace con las funciones:
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

* Annex B: Interface to Other Languages
# Programación en Ada/Operadores
## Clasificación

Ésta es la lista de operadores de Ada de menor a mayor precedencia.
Clasificación de operadores :
| Clase | Nombre | Fórmula | Sintáxis Ada |
| Lógicos | Conjunción | $x\land y$ | and |
| | Disyunción inclusiva | $x\lor y$ | or |
| | Disyunción exclusiva | $(x\land {\bar {y}})\lor ({\bar {x}}\land y)$ | xor |
| Relacionales | Igualdad | $x=y$ | = |
| | Desigualdad | $x\neq y$ | /= |
| | Menor que | $x<y$ | < |
| | Menor o igual que | $x\leq y$ | <= |
| | Mayor que | $x>y$ | > |
| | Mayor o igual que | $x\geq y$ | >= |
| Aditivo unario | Identidad | $+x$ | + |
| | Negación | $-x$ | - |
| Aditivo binario | Suma | $x+y$ | + |
| | Resta | $x-y$ | - |
| Concatenación | Concatenación | | & |
| Multiplicativo | Multiplicación | $x\times y$ | * |
| | División | ${\begin{matrix}{\frac {x}{y}}\end{matrix}}$ | / |
| | Módulo | $x{\bmod {y}}$ | mod |
| | Resto | | rem |
| De máxima precedencia | Exponenciación | $x^{y}$ | ** |
| | Negación | $\lnot x$ | not |
| | Valor absoluto | $|x|$ | abs |

## Propiedades

En todos los casos, excepto para la exponenciación, los dos operandos deben ser del mismo tipo.
Los operadores se pueden sobrecargar.

## Comprobación de pertenencia (in, not in)

Además existe la comprobación de pertenencia ($x\in T$, in; $x\notin T$, not in) que técnicamente no es un operador y no se puede sobrecargar. Su precedencia es la misma que la de los operadores relacionales. Se puede utilizar con rangos o con subtipos.

## Operadores lógicos de cortocircuito

Para los operadores lógicos existen versiones para minimizar las evaluaciones (short-circuit evaluation). Es decir, se evalúa primero el operando de la izquierda y después, sólo si es necesario para determinar el resultado, el de la derecha:
* Conjunción and then: no se evalúa la segunda expresión si la primera es falsa porque ya sabemos que el resultado será falso.
* Disyunción inclusiva or else: no se evalúa la segunda expresión si la primera es verdadera porque ya sabemos que el resultado será verdadero.

## Manual de referencia de Ada

* 4.5 Operators and Expression Evaluation
# Programación en Ada/Hola Mundo

Un ejemplo común de la sintaxis de un lenguaje es el programa Hola mundo. He aquí una implementación en Ada con la intención de ser un primer contacto.
Por ahora puede ser suficiente con aprender a compilar y enlazar un programa escrito en Ada, pero si tienes curiosidad aquí va una explicación del programa.
La cláusula with establece una dependencia con el paquete Ada.Text_IO y hace disponible toda la funcionalidad relacionada con la Entrada/Salida de textos.
Después se define un procedimiento como programa principal. Nótese que en Ada no tiene que tener un nombre especial como main, simplemente ha de estar fuera de cualquier paquete. Al compilar se indica cuál es el programa principal.
Ada.Text_IO.Put_Line llama al procedimiento Put_Line definido en el paquete Ada.Text_IO para imprimir la cadena "¡Hola, mundo!".

## Abreviando

Si no deseamos tener sentencias largas, como Ada.Text_IO.Put_Line, se pueden usar dos métodos para abreviar:
* Usar una cláusula use para hacer directamente visible todas las entidades definidas en Ada.Text_IO. No es recomendable abusar de esta cláusula por las razones explicadas aquí.
* Usar una cláusula renames, para renombrar Ada.Text_IO con un nombre más corto.

## Compilación

Como ejemplo, con el compilador GNAT este programa se debe escribir en un archivo llamado hola_mundo.adb (el nombre del procedimiento que contiene, más .adb) y se compilaría así:
Naturalmente si usas un entorno integrado de desarrollo la compilación será una opción de menú o un botón de la barra de herramientas.
El resultado es un archivo ejecutable llamado hola_mundo que imprime ¡Hola, mundo! por su salida estándar (normalmente en una ventana en modo texto).
# Programación en Ada/Manual de referencia

A menudo abreviado ARM o RM, el manual de referencia de Ada (nombre completo: Ada Reference Manual, ISO/IEC 8652:1995(E)), es el estándar oficial que define el lenguaje. A diferencia de otros documentos oficiales de ISO, el manual de Ada se puede reproducir libremente, lo cual es una gran ventaja para su difusión.
En este libro encontrarás enlaces al manual de referencia en cada sección acabada, en relación con el tema tratado. El ARM es el lugar donde todas las preguntas sobre Ada tienen respuesta, aunque puede ser un texto un tanto árido por su carácter de estándar oficial. En cualquier caso es la fuente más completa y exacta de información.
Otros documentos de cabecera de Ada son los Ada Rationale, documentos que acompañan al estándar y explican las justificaciones en el diseño de cada revisión del lenguaje.
Enlaces externos al Manual de Referencia y Rationale
* Ada 2005:
** Reference Manual y Rationale
* Ada 95
** Ada 95 Reference Manual
** Ada 95 Rationale
* Ada 83:
** Ada 83 Reference Manual
** Ada 83 Rationale
# Programación en Ada/Objetos

Los objetos son entidades que se crean en tiempo de ejecución y contienen un valor de un determinado tipo. En Ada los objetos se clasifican en variables y constantes.
Nótese que el concepto de objeto no implica necesariamente el uso del paradigma de la orientación a objetos. Para programar orientado a objetos en Ada se utilizan los objetos de tipo etiquetado.

## Variables

Una variable se introduce en el programa mediante una declaración, que se podría denotar así:
Por ejemplo:

## Constantes

Una constante es un objeto que se inicializa a un valor cuando se declara y posteriormente no puede cambiar.
Una constante se declara igual que una variable, pero añadiendo la palabra reservada constant:
Por ejemplo:
Un tipo especial de constante es el número nombrado para el cual no es necesario especificar un tipo y que es equivalente a usar el literal correspondiente.

## Manual de referencia de Ada

* 3.3 Objects and Named Numbers
# Quechua

* Quechua
| Colombia | Ecuador | Peru | Bolivia | Chile | Argentina |
| República de Colombia | República del Ecuador | República del Perú | República de Bolivia | República de Chile | República Argentina |
| Ir al quechua sureño » Ir al quechua norteño (kichwa) » Ir al quechua ancashino » Ir al quechua huanca » ||||||
# QEMU/Instalar QEMU
## Instalar QEMU

La mayoría de las distribuciones GNU/Linux disponen de procesos de instalación sencilla basados en repositorios de paquetes. Habitualmente es preferible usar la opción del repositorio para instalar QEMU, ya que nos aseguraremos que se instalará y ejecutará. Algunos ejemplos son:
| Distribución | Comando de instalación |
| Fedora | yum install qemu |
| Debian | apt-get install qemu |
| SUSE | yast -i qemu |
| Gentoo | emerge -av app-emulation/qemu |
| Mac (Homebrew) | brew install qemu |
Si no se puede instalar QEMU desde un repositorio de paquetes, hay que ir a la pagina web de QEMU y descargar el ultimo código fuente y seguir las instrucciones indicadas.
Para Microsoft Windows, se puede instalar una interfaz grafica para QEMU llamada QEMU Manager, o hacerse con un fichero de instalación de QEMU.

### QEMU desde el código

Se puede necesitar o preferir instalar QEMU compilando el código fuente, que está disponible en la pagina web de QEMU. La documentación de usuario del emulador QEMU tiene instrucciones básicas para compilar el código fuente en Linux y Microsoft Windows.

## Instalar QEMU-KVM

QEMU por si mismo no es muy rápido, ya que realiza muchas tareas de emulación incluso cuando se ejecuta en hardware compatible con el sistema operativo guest (invitado). Para mejorar el rendimiento QEMU tiene un modulo para el kernel llamado KVM que permite que el código de la mayoría de los sistemas operativos guest se ejecute directamente sobre el procesador host (anfitrión) cuando se ejecutan desde Linux con procesadores x86 o x86-64 que dispongan de las extensiones para virtualización. Por ejemplo, si el host es un sistema Linux x86 y el guest es Windows XP, entonces KVM puede ejecutar la mayor parte del código nativo de Windows XP directamente en el procesador sin necesidad de emulación.
QEMU-KVM requiere un host Linux o BSD Unix , y una CPU con extensiones para virtualización -- sean Intel VT o AMD-V. Para determinar si la CPU dispones de estas extensiones en Linux, hay que ejecutar el siguiente comando desde la consola:
Si el comando no devuelve nada, la CPU no soporta las extensiones para virtualización requeridas.
La mayoría de las distribuciones actuales de Linux disponen de procesos de instalación sencilla basados en repositorios de paquetes. Habitualmente es preferible usar la opción del repositorio para instalar QEMU-KVM, ya que nos aseguraremos que se instalará y ejecutará. Estas son algunas distribuciones comunes y sus comandos de instalación de QEMU-KVM:
| Distribución | Comando de instalación |
| Fedora | yum install @virtualization or yum install qemu-kvm |
| Debian | apt-get install kvm |
| SUSE | yast -i kvm |
Existe más información disponible en la pagina web de KVM. Si no se puede instalar QEMU-KVM desde un repositorio de paquetes, hay que ir a la pagina web de QEMU-KVM y descargar el ultimo código fuente y seguir las instrucciones indicadas.

## Notas

* 1 2 También valido para otra distribuciones basadas en RPM (por ej. RedHat, CentOS).
* 1 2 También válido para otras distribuciones basadas en dpkg (por ej. Ubuntu, Mepis, Mint).
# QEMU/UI
## Dispositivo apuntador

Por defecto, QEMU usa un controlador PS/2 para proporcionar un dispositivo apuntador (ratón). Este tipo de dispositivo usa coordenadas relativas, de ahí el requerimiento para capturar el ratón.
De cualquier manera, los sistemas invitados que soportan dispositivos USB HID, también puede emular tabletas de dibujo, que usan coordenadas absolutas.
Para habilitar esta funcionalidad solo hay que añadir una. Ver tabletas de dibujo.
# QEMU/Dispositivos/Almacenamiento

Se pueden añadir dispositivos de almacenamiento usando el parámetro -drive, o con el comando drive_add desde el monitor de QEMU.

## Tipo de unidad

Se pueden emular varios tipos de unidad. El tipo se especifica a través del modificador media. Si no se especifica, por defecto es disk.
Los tipos válidos son:
* disk
* cdrom
Ejemplo:

## Sistema de ficheros Virtual FAT (VVFAT)

Qemu puede emular una unidad virtual con un sistema de ficheros FAT. Es una manera fácil de compartir ficheros entre el host y el guest.
Funciona anteponiendo fat: a un nombre de directorio. Por defecto es de solo lectura, si se necesita que se pueda escribir hay que añadir rw: al prefijo mencionado anteriormente.
Ejemplo:
ATENCIÓN: hay que tener en cuenta que QEMU genera la tabla FAT virtual una vez, cuando se añade el dispositivo, y después no se actualiza en respuesta a cambios en el directorio especificado hechos por el sistema anfitrión. Si se modifica el directorio mientras se está ejecutando la máquina virtual QEMU podría confundirse.

## Políticas de cache

QEMU puede usar cache para acceder a los ficheros de imágenes de disco, y proporciona varios métodos para llevarlo a cabo. Lo cual se puede especificar usando el modificador cache.
| Política | Descripción |
| unsafe | Como writeback, pero sin ejecutar un fsync. |
| writethrough | Los datos se escriben en el disco y en la cache simultáneamente. (por defecto) |
| writeback | Los datos se escriben en el disco cuando se desechan de la cache. |
| none | Deshabilitar el uso de cache. |
Example:
# QEMU/Dispositivos/Entrada
## Tabletas de dibujo

| Dispositivo | Bus | Descripción |
| usb-tablet | USB 1.x | |
| usb-wacom-tablet | | QEMU PenPartner Tablet |
# QEMU/Dispositivos/Video
## VGA/SVGA

| Dispositivo | Bus | Descripción |
| cirrus-vga | PCI | Cirrus CLGD 54xx VGA |
| isa-vga | ISA | Standard VGA |
| vmware-svga | PCI | VMware Virtual SVGA |
| isa-cirrus-vga | ISA | Cirrus VGA, ISA version |
| qxl-vga | |
# QEMU/Dispositivos/Virtio

Virtio es una plataforma para virtualización de entrada/salida, común para diferentes hipervisores (y QEMU).
El sistema operativo guest necesita drivers especificos para poder manejar estos dispositivos.

## Dispositivos soportados

| Función | Bus | Tipo | Dispositivo | Ejemplo de uso |
| Networking | PCI | 10Gb/s | virtio-net-pci | qemu -net nic,model=virtio ... |
| Storage | PCI | SCSI | virtio-scsi-pci | qemu -drive file=disk.img,if=virtio ... |
| Memory | PCI | RAM | virtio-balloon-pci |
| Serial | PCI | Serial | virtio-serial-pci |

## Sistemas Guest soportados

| S.O. | Drivers |
| Microsoft Windows | http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers |
| Basados en Linux | 2.6.x, 3.x |
# QEMU/FreeDOS

FreeDOS es una gran manera de traer de vuelta a la vida a todos esos programas antiguos, muy queridos y difíciles de sustituir del mundo DOS desde un sistema operativo moderno. Usando FreeDOS, programas gráficos que no se ejecutarían bajo Microsoft Windows, Wine o DOSBox podrían simplemente ejecutarse sin fallo bajo QEMU.
Descargar una de las imagenes de CD arrancable desde el sitio web de FreeDOS. El CD básico es suficiente para ejecutar la mayoría del software del antiguo DOS, pero el cd completo tiene un montón de extras si se quiere experimentar mas profundamente con FreeDOS.

## Crear una imagen

Para que sea posible el intercambio de ficheros con FreeDOS copiando ficheros hacia y desde la imagen, ésta no se debe crear con formato qcow. En vez de eso, hay que crear imágenes en formato raw. Esto permitirá que la imagen de FreeDOS se monte bajo Linux y otros hosts parecidos a Unix como un disco duro normal. Crear una imagen de disco de 100MB llamada freedos.img:
Ahora arrancar FreeDOS desde la imagen de disco (fdbasecd.iso) y seguir los menús para particionar, formatear e instalar en el disco duro.
Una vez que la instalación se ha completado, se puede arrancar FreeDOS desde el fichero de imagen sin el CD.
Para transferir ficheros entre FreeDOS y el anfitrión, parar QEMU y montar la imagen de FreeDOS en el sistema de ficheros.
NOTA: nunca montar la imagen mientras la está usando QEMU y ¡recuerde desmontarla antes de arrancar QEMU de nuevo!
# QEMU/Dispositivos

QEMU proporciona dispositivos de hardware virtual al sistema guest, permitiéndole interactuar con el mundo exterior, como si se estuviera ejecutando sobre hardware real.

## Añadir dispositivos

Los dispositivos se pueden añadir usando el parámetro -device al iniciar o con el comando device_add en el monitor de QEMU (si el sistema operativo y el bus soportan conectarlos en caliente).
Algunos dispositivos admiten modificadores, que pueden afectar al comportamiento del dispositivo y la interfaz.
Example:

## Dispositivos soportados por tipo

* Virtio (Alto rendimiento)
* Concentrador raíz USB
* Red
* Entrada
* Video
* Almacenamiento
# QEMU/Dispositivos/Red

Los dispositivos de red son de alguna manera especiales, ya que además de poder añadirlos de la manera habitual, hay otra manera mucho más fácil de configurarlos a través del parametro -net nic.
Además, hay que tener en cuenta que -device no suprime la configuración por defecto, por lo que podría no hacer lo que se pretende.

## Añadir una tarjeta

Simplemente especificando -net nic en la línea de comandos se añade un interfaz. Se puede seleccionar el hardware que será emulado usando el modificador model.
Ejemplo:

## Modelos de tarjeta de red

Para emulación PC
| Modelo | Bus | Velocidad | Descripción |
| e1000 | PCI | 1Gb/s | Intel Gigabit Ethernet |
| i82551 | ? | ? | ? |
| i82557b | ? | ? | ? |
| i82559er | ? | ? | ? |
| ne2k_pci | PCI | 10Mb/s | NE2000 |
| pcnet | ? | ? | ? |
| rtl8139 | ? | 10/100Mb/s | Realtek Fast Ethernet |
| virtio | PCI | 1Gb/s | Virtual High Performance Ethernet card (see Virtio) |
Otras arquitecturas emuladas
Hay que lanzar este comando para ver la lista de tarjetas de red emuladas
# QEMU/Dispositivos/USB/Raíz

Se proporcionan los siguientes dispositivos controladores de USB.

## xHCI

Los controladores xHCI puede manejar USB 1.0/2.0/3.0.
| nombre | bus | descripción |
| nec-usb-xhci | PCI |

## EHCI

Los controladores EHCI pueden manejar sólo USB 2.0 (con algunas excepciones no incluidas en QEMU), con lo que se necesita un controlador que lo acompañe para los USB 1.x.
| nombre | bus | descripción |
| usb-ehci | PCI |
| ich9-usb-ehci1 | PCI |

## UHCI

Los controladores Intel y VIA entran en esta sección, otros empresas suelen usar OHCI.
Estos controladores soportan USB 1.0, y son más intensivos en software que su competencia, por tanto, menos eficientes para virtualizar.
| nombre | bus |
| ich9-usb-uhci1 | PCI |
| ich9-usb-uhci2 | PCI |
| ich9-usb-uhci3 | PCI |
| piix3-usb-uhci | PCI |
| piix4-usb-uhci | PCI |
| vt82c686b-usb-uhci | PCI |

## OHCI

Los contraladores de esta sección soportan USB 1.1.
| nombre | bus | descripción |
| sysbus-ohci | System | OHCI USB Controller |
| pci-ohci | PCI | Apple USB Controller |
# Quenya/Sustantivos verbales

Estos son sustantivos que se construyen a base de verbos usando terminaciones.
Las principales son:
1. La terminación -më se usa para formar palabras abstractas:
       mel- "amar" → melmë "amor"
       car- "hacer, construir" → carmë "arte, construcción"
2. La terminación -ië se usa para un sustantivo que indica que la acción aún se está realizando:
       tyal- "jugar" → tyalië "un juego"
       perya- "dividir en dos" → perië "una división"
3. Los verbos en -ta pueden usarse como sustantivos sin cambiar nada:
       vanta- "caminar" → vanta "caminata"
       lanta- "caer" → lanta "caída"
4. La terminación -ë junto a una raíz con vocal alargada se usa para hacer sustantivos que describen una consecuencia del verbo:
       ser- "descansar" → sérë "paz"
       lir- "cantar" → lírë "canción"
5. Para hacer sustantivos que indiquen cosas concretas usaremos la terminación -lë en los verbos -A y -U:
       nurta- "esconder" → nurtalë "un escondite"
       perya- "dividir en dos" → peryalë "una mitad"
       nurru- "murmurar" → nurrulë "un murmullo"
a los verbos primitivos se les agrega -alë a la raíz del tiempo pasado:
       quet- "hablar" → quentalë "una historia"
Este quinto tipo es el más frecuente.
Para indicar quién realiza una acción tenemos las terminaciones: -ro/-rë e -indo/-indë.
Las terminaciones en -o son masculinas, y las terminaciones en -ë son femeninas.
Las primeras dos terminaciones se aplican a los verbos -A y -U:
       masta- "hornear"
          mastaro "horneador" (m.)
          mastarë "horneadora" (f.)
y las otras dos a los verbos primitivos:
       car- "hacer, construir"
          carindo "hacedor, constructor" (m.)
          carindë "hacedora, constructora" (f.)
A veces la terminación -ro es reemplazada por la forma corta -r, como istar "mago (sabio, conocedor)" de ista- "saber, conocer".
El plural se forma con la forma corta:
       mastari en vez de mastaror

### Uso de casos

La conexión de un sustantivo verbal a un verbo significa que es frecuentemente una oración condensada, esa es la razón de por qué algunos sustantivos pueden tener sujeto y objeto:
       Altariello nainië "el lamento de Galadriel"
Llamaremos a esto genitivo de sujeto porque Galadriel es quien lamenta.
Cuando un sustantivo verbal tiene objeto usaremos el posesivo:
       laitalë Oroméva "honor para Oromë"
Aquí expresamos que Oromë es honrado, o sea que es el objeto de "honor", esto se llama posesivo de objeto.
Por supuesto que ambos pueden presentarse con el mismo sustantivo verbal:
       Eruo melmë ataniva "el amor de Dios para los hombres"
       atanion melmë Eruva "el amor de los hombres para Dios"
>> Quenya >> Quenya/Sustantivos >> Quenya/Sustantivos verbales
# Quenya/Vocabulario

* Animales
* Buscando empleo
* Cantidades
* Colores
* De compras
* De negocios
* De turismo
* Dormitorio
* El clima
* El estudiante
* El hogar
* El tiempo
* Sobre los días y los meses
* Expresiones de uso frecuente
* En el restaurante
* En la oficina
* La comida
* La familia
* Los oficios
* Los sentidos
* Modismos
* Palabras especiales
* Partes del cuerpo
* Verbos
* Verbos irregulares
* Verbos regulares
* Verbos transitivos e intransitivos
* Glosario de consulta
Vocabulario Esta página contiene todo el texto del capítulo de «Vocabulario»
Texto completo de este capítulo Esta página contiene todo el texto del capítulo de «Vocabulario»
* Página principal
* Información -
* Gramática -
* Lecturas -
* Enlaces -
* Ejercicios
* Lecciones:
* 1 ·
* 2 ·
* 3 ·
* 4 ·
* 5 ·
* 6 ·
* 7 ·
* 8 ·
* 9 ·
* 10 ·
* 11 ·
* 12
* A ·
* B ·
* C, Ĉ ·
* D ·
* E ·
* F ·
* G, Ĝ ·
* H,Ĥ ·
* I ·
* J, Ĵ ·
* K ·
* L ·
* M ·
* N ·
* O ·
* P ·
* R ·
* S, Ŝ ·
* T ·
* U ·
* V ·
* Z
* Diccionario Universal ·
* Vocabulario ·
* Glosario de consulta
# Sánscrito

* Información
* Enlaces
* Página de edición
* Lecciones
* Gramática
* Vocabulario
# Sánscrito/Gramática/Declinación vocálica

Dentro de la Declinación vocálica nos encontramos con los siguientes tipos de declinaciones:
Palabras masculinas
| | Singular | Dual | Plural | Ej & Trad |
| Nominativo | -as | -au | -as | devau "(los) 2 dioses" |
| Vocativo | -a | -au | -as | deva "¡Dios!" |
| Acusativo | -am | -au | -ān | devam "a(l) dios" |
| Instrumental | -ena | -ābhyām | -ais | devāis "mediante los dioses" |
| Dativo | -āya | -ābhyām | -ebhyas | devebhyas "para los dioses" |
| Ablativo | -āt | -ābhyām | -ebhyas | devāt "al dios" |
| Genitivo | -asya | -ayos | -ānām | devasya "de dios" |
| Locativo | -e | -ayos | -eşu | deve "en dios" |