Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-08-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Vaya! Se ve que esa cosa no se vende

LineComment Saludos
Responder Con Cita
  #2  
Antiguo 23-08-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
¡Vaya! Se ve que esa cosa no se vende

LineComment Saludos
Mientras Delphi es practicamente unico (no hay otro delphi -osea, FreePascal no es un clon muy exacto-) en C++ Builder no solo es uno entre varios, es el que esta por detras. El fuerte ahora es CLANG.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 23-08-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ja, ja. Sí. Aunque mi despectivo comentario lo hice antes de ver la otra nota, de que también el Delphi Starter esta gratis

pd: ¿De qué va eso de LLVM?

LineComment Saludos
Responder Con Cita
  #4  
Antiguo 23-08-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Bruta la cartera, Delphi Gratis!!!!


------

LLVM/CLANG es parecido en parte parecido a GCC, solo que es mas moderno y permite crear multiples front-ends (lease: lenguajes) que compilan contra LLVM y este se encarga de hacer optimizaciones a nativo. NO ES una maquina virtual como Java, pero comparte algunas de sus ventajas.

CLANG es el compilador de C/C++/Obj-C que esta sobre LLVM (lease LLVM: Assembler especial para compiladores)

De hecho, el compilador de Delphi para iOS esta sobre LLVM.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 23-08-2016
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por mamcx Ver Mensaje
Bruta la cartera, Delphi Gratis!!!!


------

LLVM/CLANG es parecido en parte parecido a GCC, solo que es mas moderno y permite crear multiples front-ends (lease: lenguajes) que compilan contra LLVM y este se encarga de hacer optimizaciones a nativo. NO ES una maquina virtual como Java, pero comparte algunas de sus ventajas.

CLANG es el compilador de C/C++/Obj-C que esta sobre LLVM (lease LLVM: Assembler especial para compiladores)

De hecho, el compilador de Delphi para iOS esta sobre LLVM.

Comprendo por lo que comentas que LLVM optimiza a nativo los lenguajes que están sobre él. Sin embargo me gustaría comprender una cosa, ¿Significa esto que un lenguaje sobre LLVM sería multiplataforma por defecto? y pregunto porque he visto que por ejemplo el compilador de Swift (Usando XCode) esta sobre LLVM pero no hay despliegue a otras plataformas distintas a las de Apple... por lo que me confundo y quisiera saber ¿Cuál es la razón de esto? y/o si ¿alguna vez podría suceder eso?.

He visto que los de RemObjects tienen su compilador .NET (creo) usando la sintaxis de Swift (Silver le han llamado), sin embargo mi pregunta es más orientada es a XCode/Swift como tal.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 23-08-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
LLVM es mas bajo nivel que el bitcode de Java o >NET (osea, no existe una maquina virtual que lo interprete).

Este es un ejemplo de LLVM:

http://llvm.org/docs/tutorial/

Si tenemos esta funcion en el front-end:
Código PHP:
def foo(a ba*2*a*b*b
Esto es el LLVM IR (o lenguaje de bajo nivel de LLVM en formato texto "legible"):

Código PHP:
define double @foo(double %adouble %b) {
entry:
  %
multmp fmul double %a, %a
  
%multmp1 fmul double 2.000000e+00, %a
  
%multmp2 fmul double %multmp1, %b
  
%addtmp fadd double %multmp, %multmp2
  
%multmp3 fmul double %b, %b
  
%addtmp4 fadd double %addtmp, %multmp3
  ret double 
%addtmp4

Y de alli LLVM genera un binario nativo. No es full multiplataforma porque LLVM es "compilador como infraestructura" lo que significa que tiene multiples front-ends (lenguajes) y back-ends (compiladores nativos). Por lo tanto, tiene back-end para x86, arm, CUDA (NVidia GPUs), etc.

En otras palabras, LLVM tiene un lenguaje (el "IR") que esta optimizado para que se puedan hacer analisis y optimizaciones antes de generar el assembler.

Esto es porque en compiladores, si quieres que el ejecutable sea mas rapido "Agregale otro pase al compilador"!.

PASCAL original era un compilador en 1 solo paso (por eso volaba). Todo lo hace en un solo "tiron".

La mayoria de los compiladores/interpretes tienen 3/4 pasos:

- Lexing
- Parsing
- Generar ASSEMBLER o BITCODE o Interpretar

Pero para poder hacer optimizaciones, se tiene que agregar otros pasos entre parsing y Generar/Interpretar

- Parsing
- Optimizar: PeepHole
- Optimizar: Constant folding
- Optimizar: ....
- Generar dataflow
- Eliminar variables
- ....
- Generar ASSEMBLER o BITCODE o Interpretar

LLVM esta hecho para poder agregar pasos en toda la cadena del compilador, y se puede decidir si se deja parte del trabajo a LLVM o se toma control casi total del cuento.

----

Ahora, porque LLVM es todo un ecosistema, se pueden integrar herramientas y tecnicas. Por ejemplo, se puede generar un nativo desde un front-end en python, cargar el codigo en memoria, cargar una DLL nativa y hacer el puente. Como un JIT.
---
Si a dia de hoy hay que hacer un compilador nativo, LLVM es 100% la respuesta.
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 23-08-2016
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Ahhh ya comprendo el panorama, entonces para poder programar en un lenguaje como Swift bajo su IDE XCode y que su compilado sea nativo multiplataforma, habría que desarrollar un BackEnd para cada plataforma.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Viernes 17 Junio 2016 ¡C++ Builder starter GRATIS¡ WHILENOTEOF Noticias 20 18-06-2016 17:12:03
Automatización en Excel Starter 2010 CFPA86 Varios 4 09-08-2015 21:36:40
Costo de Licencia C++ Builder 5 rogeliogamberro C++ Builder 1 19-10-2012 16:01:40
Builder y Delphi Starter Edition Neftali [Germán.Estévez] Noticias 68 17-02-2011 19:47:40
Usar builder en otra pc... pagoti C++ Builder 4 05-02-2005 20:29:11


La franja horaria es GMT +2. Ahora son las 02:58:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi