PDA

Ver la Versión Completa : Y otra vez, C++ Builder Starter sin costo


AgustinOrtu
31-07-2016, 20:22:49
Pues eso, han vuelto a sacar la oferta de C++ Builder Started Edition gratis

Este es el link (https://www.embarcadero.com/app-development-tools-store/cbuilder)

Special Terms and Conditions for the C++ Starter with 100% OFF Discount
- Offer valid from July 25th 2016 to August 5th 2016
- Only one license per order
- Only one license per email address / account
- This offer does not include any upgrade subscription
- We reserve the right to change this offer at any time

Terminos y condiciones para C++ Starter con 100% de descuento
- Oferta valida desde 25 Julio 2016 hasta el 5 de Agosto de 2016
- Solo una licencia por orden
- Solo una licencia por direccion email / cuenta
- En esta oferta no se incluye ningun upgrade subscription
- Nos reservamos el derecho de cambiar esta oferta en cualquier momento

Casimiro Notevi
31-07-2016, 20:35:06
^\||/^\||/^\||/

JXJ
23-08-2016, 04:48:46
¿¿si es gratis alguien lo puede compatir en un torrent??

Ñuño Martínez
23-08-2016, 11:10:59
No estoy seguro de si la licencia lo permite. Una cosa es que sea gratuita y otra que sea de libre distribución.

roman
23-08-2016, 15:13:20
¡Vaya! Se ve que esa cosa no se vende ;)

LineComment Saludos

mamcx
23-08-2016, 16:03:18
¿¿si es gratis alguien lo puede compatir en un torrent??


Torrent es un medio de distribucion, no tiene que ver con el licenciamiento.

mamcx
23-08-2016, 16:04:35
¡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.

roman
23-08-2016, 16:15:05
Ja, ja. Sí. Aunque mi despectivo comentario lo hice antes de ver la otra nota, de que también el Delphi Starter esta gratis :D

pd: ¿De qué va eso de LLVM?

LineComment Saludos

mamcx
23-08-2016, 16:40:35
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.

jhonny
23-08-2016, 17:58:57
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.

mamcx
23-08-2016, 18:18:45
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:

def foo(a b) a*a + 2*a*b + b*b;


Esto es el LLVM IR (o lenguaje de bajo nivel de LLVM en formato texto "legible"):


define double @foo(double %a, double %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.

jhonny
23-08-2016, 18:37:44
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.