Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Error De Ejecución Y Errror De Compilación
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Error De Ejecución Y Errror De Compilación 
 
Buenas!.

Con vuestras palabras explicar cuando creéis que se produce un error u otro.
Y aplicarlo a gambas o al lenguaje que os guste.

1 - De compilación. A la hora de crear un ejecutable, el compilador no entiende lo que se ha escrito.
2 - De ejecución. Creo que es por un código mal diseñado.

Cuando escribimos en el editor, este puede autocompletar lo que escribimos.
Si escribimos Pri...nos ayuda y nos dice, que puede ser Print, Private.

La equivocación es poco probable. No es probable un error de sintaxis.

Un error de sintaxis pertenece a  compilación. Pero nosotros en gambas no estamos
compilando cuando escribimos, le tenemos que decir que compile.  (Sabemos que
el basic es interpretado ).

¿ Quién nos esta diciendo como completar el código ?. Un chivato!.  
¿ Quién es el chivato ?.

Si declaro una variable donde no debo y el modificador que uso no es el correcto.
tendré que compilar el código para ver si funciona. Ya que aunque la sentencia
es correcta
..Gambas dice...eeeh, pero que esto ?. Un Private inesperado!.

Es como cuando te pilla el acomodador en el cine cuando no te corresponde el asiento
donde estas.

Si me voy a la ayuda de gambas...pues seguramente "private unexpected"..
O al menos la palabra "unexpected" no la veo por ningún lado.

Aunque existe un indice en la ayuda. En inglés no viene esa palabra.
Quizás algún tipo de buscador añadido a la ayuda podría encontrar referencias
en la ayuda de gambas. Entrar una palabra y mostrarnos todas las coincidencias.  

¿ Qué pasa si uso algo como esto ?.

Public Sub Main()

Print "hola"
Dim valor As Integer

End
 


gambas no dice, oyee, pero tu crees que eso es forma de declarar una variable ?.
El código se ejecuta perfectamente.

Pero si hago..

Public Sub Main()

Print valor

Dim valor As Integer

valor = 3

End
 


Nos dará error.

Visto los errores de antes, la mayoría son fallos después de la compilación.

En cuanto a código mal diseñado fuera de bucles sin fin.  Como no sea una forma
de que se debe hacer algo...

Por ejemplo que puede que en gambas ocurra igual.
En un procedimiento que es static, este solo puede acceder a variables estáticas.

¿ Qué tipo de error es ese si ocurre ?. ¿ De compilación o de ejecución ? .

Pues volvemos a lo mismo.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error De Ejecución Y Errror De Compilación 
 
Otro ejemplo.

Vamos a producir error de división por cero.

Supongamos un ejemplo tal como este:

Public Sub Main()

 Dim a As Integer
 
 a = 10
 
 a = a / 0

End
 


Si compilo el ejemplo desde el editor, no da problema. "La sintaxis parece correcta".
Pero a la hora de ejecutarlo, da error.

¿ Alguien sabe por qué en el tiempo de compilación no da error  y lo hace en el momento de ejecución ?.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error De Ejecución Y Errror De Compilación 
 
Hola Shell:
a = a / 0


Citar:
¿ Alguien sabe por qué en el tiempo de compilación no da error  y lo hace en el momento de ejecución ?.  


Cuando compilas lo que hace es traducir tu programa a algo que entienda mejor la máquina (código máquina o a pseudocodigo). No hay una interpretación ni ejecución del código, "solo" traduce. Si hay errores de sintaxis, en la compilación SI te los va a indicar.  En tu ejemplo ultimo, lo que   haría en la compilación seria algo  así como: " coger el valor de la variable a y dividirlo por el valor del numero 0 y lo que salga asignarlo a la variable a"

Cuando ejecutas el programa, si va a ir realizando los pasos que indicas en el programa uno a uno,con los valores, y  se producen errores como el que comentas (porque ya si a hacer la operación de dividir entre cero).


Saludos

Julio

Nota:
Un ejemplo no tan extremo como el tuyo, es el tipico programa que pide valores al usuario, y cuando el usuario pone un determinado valor, el programa falla.  Para evitar eso, lo que hay que hacer es poner comprobaciones de valores y/o usar las ordenes TRY y Error.

ejemplo:
try a=a/b
If error then message.info("error en la división)

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error De Ejecución Y Errror De Compilación 
 
Hola Julio!!!.  

Citar:

Cuando compilas lo que hace es traducir tu programa a algo que entienda mejor la máquina (código máquina o a pseudocodigo). No hay una interpretación ni ejecución del código, "solo" traduce.


Esa es la idea. El gbc3 traduce el código basic a una archivo binario compilado ( en el caso de gambas creo que era byte code..es tan parecido el nombre al de Java..    )..
que es comprendido y ejecutado por el interprete . Eso si, que se llamen igual no quiere decir que gambas vaya a entender el bytecode de Java..  

El interprete ejecuta el byte code compilado y es donde da el error al traducir.

Dentro del interprete tenemos la unidad de ejecución que es el corazón del interprete.
"Despacha"..(vaya palabra)..mmm..gestiona y ejecuta cada instrucción byte-code generada por el compilador.


Te explico. En el curso de Java que ando liado, hubo una serie de ejercicios que se provocaban errores de ejecución o de compilación a "drede"
al igual que hice en el código de arriba. De ahí mi interés por este tema.  El efecto y la forma de producirlo parece el mismo.

Aquí podemos encontrar la arquitectura de gambas. Recuerdo haber visto esto con imágenes en algún pdf de gambas, pero no sé donde.

Arqutiectura de Gambas

Y aquí una explicación de lo que es bytecode.

ByteCode

Lo que realmente me interesaba es verlo como fallaba no solucionarlo. Quería ver como pasaba la compilación y se fastidiaba al interpretar el código compilado.  

Y ahora pregunto.  ¿ Qué pasaría en un lenguaje como "C" ?.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Miercoles, 11 Marzo 2020, 23:02; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error De Ejecución Y Errror De Compilación 
 
Shell
Lo he hecho en c:
#include <stdio>

int main (int argc,char **argv)
{
   float resultado=123/0;      
   printf("Hola mundo\n");
   printf("%f",resultado);  
   return 0;
}
 


Y al compilar... dar un aviso (warning):
$ gcc divide.c -o divide
divide.c: In function ‘main’:
divide.c:5:23: warning: division by zero [-Wdiv-by-zero]
    float resultado=123/0;
                       ^
 


¡¡es muy listo este compilardor de c!!

Y cuando ejecuto el "ejecutable creado", sale lo siguiente:

 $ ./divide
Excepción de coma flotante (`core' generado)
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error De Ejecución Y Errror De Compilación 
 
Julio:

Citar:

¡¡es muy listo este compilardor de c!!


Pues si. Es que si le cuela un error al compilador de "C", apañados estarían los programadores de este lenguaje.  

Y ademas marca el sitio del error.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
10.00 10 10 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Error # 11 Se Me Detiene La Ejecución De ... aristicol General 13 Domingo, 13 Diciembre 2009, 14:38 Ver último mensaje
fabianfv
No hay nuevos mensajes [SOLUCIONADO]Conflicto Con Wine En Open Su... marcopc Instalación 3 Lunes, 20 Febrero 2012, 10:46 Ver último mensaje
marcopc
No hay nuevos mensajes Error En Ejecución Agamenon General 3 Martes, 27 Marzo 2012, 01:39 Ver último mensaje
razaAztk
No hay nuevos mensajes ¿Que Significa? Compilación Completa: Fu... gambafeliz General 2 Sabado, 31 Agosto 2019, 15:28 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario