Autor Tema: Algunas cuestiones sobre los lenguaje de programación  (Leído 4653 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Algunas cuestiones sobre los lenguaje de programación
« en: 24 de Septiembre de 2007, 19:40:19 »
He estado leyendo el libro The Complete Reference Borland C++ Builder de Herb Schildt sobre algunas cuestiones a la que hacen referencia como:

1.- lenguaje estructurado
2.- compilador vs intérprete

con respecto al primer ítem se habla de que un lenguaje es estructurado si cumple:

  - si permite llamadas de funciones dentro de otras funciones (bloque estructurado).
  - el uso de variables locales para aislar una tarea del resto dentro de un programa de ejecución (en el libro alegan que el uso de variables globales puede ser una fuente de Bug´s)
 
 y hacen una tabla donde mencionan que C(++) es estruturado y BASIC es no-estruturado

la cuestión (o duda) es que C permite una instrucción llamada goto que como todo sabemos es la causa de polemicas entre programadores por la no-estructuración en la programación.

respecto al segundo ítem, hablan que lenguajes como BASIC y JAVA entran en la rama de lenguajes interpretados, en el caso de BASIC que conozco algo, es cierto, porque éste depende del llamado runtime que es un conjunto de librerias cuyo archivo principal es MSVBVM60.DLL (para vb6.0). Se puede decir que las instrucciones generadas por una aplicación en vb no son ejecutadas directamente por el procesador y por ello necesita de un ínterprete (el runtime) que llega ser total si se usa la opción P-Code

en el caso del c++ builder dicen que es un compilador como tal, que puede llegar a traducir las lineas ejecutables directamente por el computador (por lo tanto siendo mas veloz en su ejecución), Sin embargo noto que se llega a solicitar el archivo vcl60.bpl y otros que no me vienen a la mente ahora.

La cuestión: ¿existe una forma de configurar al c++ builder para que pueda ejecutarse una aplicación (ella solita) tranquilamente en cualquier pc?

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Algunas cuestiones sobre los lenguaje de programación
« Respuesta #1 en: 25 de Septiembre de 2007, 06:09:00 »
El C++ Builder como cualquiera de estos compiladores "modernos" se componen de cientos de capas y/o componentes unos encima o al lado de otros. Trozos de código, librerías, VCL's .... todo un compendio de cosas que el entorno nos pone a nuestra disposición para que las incluyamos en nuestro programa.

Así podemos crear una ventana (un Form) de Güindous de dos formas: O llamando a la función de mas bajo nivel del sistema :

The CreateWindow function creates an overlapped, pop-up, or child window. It specifies the window class, window title, window style, and (optionally) the initial position and size of the window. The function also specifies the window's parent or owner, if any, and the window's menu.

Código: C++
  1. HWND CreateWindow(
  2.  
  3.     LPCTSTR lpClassName,        // pointer to registered class name
  4.     LPCTSTR lpWindowName,       // pointer to window name
  5.     DWORD dwStyle,      // window style
  6.     int x,      // horizontal position of window
  7.     int y,      // vertical position of window
  8.     int nWidth, // window width
  9.     int nHeight,        // window height
  10.     HWND hWndParent,    // handle to parent or owner window
  11.     HMENU hMenu,        // handle to menu or child-window identifier
  12.     HANDLE hInstance,   // handle to application instance
  13.     LPVOID lpParam      // pointer to window-creation data
  14.    );

con lo que te lo tendrías que hacer TODO a mano ... O dándole un teclazo al botón NewForm del entorno RAD y llamando a toda una librería VCL que lo hace TODO, pero que necesita del vcl60.bpl para saber como hacerlo. No es exactamente un runtime, sino mas bien un include.

En algún sitio he visto por ahí una forma de decirle que meta en el EXE resultante todo lo que le haga falta, aunque salga un EXE monstruoso. Voy a ver si la encuentro y te lo posteo.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Algunas cuestiones sobre los lenguaje de programación
« Respuesta #2 en: 25 de Septiembre de 2007, 14:42:14 »
creo que conseguí una forma, viene de este link:

http://www.clubdelphi.com/foros/showthread.php?t=6977

desmarcar un par de opciones en options, para meter esos archivos dentro del ejecutable, lo he probado en otra máquina y ha funcionado ok

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Algunas cuestiones sobre los lenguaje de programación
« Respuesta #3 en: 25 de Septiembre de 2007, 17:25:07 »
Exacto, pedro, he comprobado mis proyectos en C++ Builder y Delphi y también tengo desmarcada esa casilla en todos ellos.

La diferencia con tenerlo marcardo es que al distribuir tu exe debes añadir los .bpl que hayas utilizado, que puede ser uno, el vcl60.bpl es el contenedor de los componentes VCL estándar, o varios dependiendo de los VCL que incluyas en tu aplicación.

Eso según qué aplicaciones es interesante sobre todo por que para enviar el exe es mas pequeño y tras haber mandado los bpl no es necesario enviarlos de nuevo y asi distribuir versiones de la aplicación es mas fácil. "pesa menos" la segunda vez que la envíes.  :mrgreen:


Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Algunas cuestiones sobre los lenguaje de programación
« Respuesta #4 en: 04 de Octubre de 2007, 14:43:09 »
Hola a todos
con lo que te lo tendrías que hacer TODO a mano ... O dándole un teclazo al botón NewForm del entorno RAD y llamando a toda una librería VCL que lo hace TODO, pero que necesita del vcl60.bpl para saber como hacerlo. No es exactamente un runtime, sino mas bien un include.

Basicamente los BPL ( Borland Packages Library ) son DLL especificas de Borland que incluyen codigo de los componentes ( VCL ), pero no dejan de ser DLL es decir runtimes no includes. La idea de crearlos es ejemplo una PC corriendo varias aplicaciones hechas en Delphi y/o Builder, no tomen tanto recursos de memoria, ya que si comparten las mismas BPL estan solo se cargan en memoria solo una vez, y por ende los ejecutables son mas livianos.
Saludos

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Algunas cuestiones sobre los lenguaje de programación
« Respuesta #5 en: 04 de Octubre de 2007, 14:55:05 »
de momento me he creado un truquito para disminuir el archivo y es comprimiendo el ejecutable con un empacador: por ej: el UPX, así tengo todo lo necesario en un solo .exe y a la vez ocupa poco espacio en el disco.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek