-
1. Data: 2012-04-28 18:13:11
Temat: Prośba o opinie
Od: " M.M." <m...@W...gazeta.pl>
Hey
Co sądzicie o narzędziu do którego poniżej podaję link?
http://tangiblesoftwaresolutions.com/Product_Details
/Java_to_CPlusPlus_Converter_Details.html
Testował to ktoś? Wydaje się dziwne aby taki konwerter w
ogóle mógł dobrze działać, ale nie wiem, jeszcze nie
testowałem żadnego. Przykładowo w C++ można na stosie
położyć tablicę automatyczną bez allokacji. Zdaje się
że poza prostymi przypadkami konwerter nie jest w stanie
rozpoznać czy tablica nie będzie realokowana. A jeśli
będzie to w C++ konwerter by musiał wstawiać delete przed
allokacją... Czyli by musiał wiedzieć kiedy jest pierwsza
allokacja a kiedy następna i kiedy ostatnia... Podejrzana
sprawa, konwerter by musiał za dużo wiedzieć :) No chyba
że konwerter wstawia swoją implementację GC :)
Wiem na pewno że jakby jakiś taki przyzwoity tool był to
wolałbym pisać w Javie i potem konwertować do C albo C++.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
2. Data: 2012-04-28 18:38:43
Temat: Re: Prośba o opinie
Od: Jacek Czerwinski <...@...z.pl>
W dniu 2012-04-28 18:13, M.M. pisze:
> Hey
>
> Co sądzicie o narzędziu do którego poniżej podaję link?
>
> http://tangiblesoftwaresolutions.com/Product_Details
/Java_to_CPlusPlus_Converter_Details.html
>
> Testował to ktoś? Wydaje się dziwne aby taki konwerter w
> ogóle mógł dobrze działać, ale nie wiem, jeszcze nie
> testowałem żadnego. Przykładowo w C++ można na stosie
> położyć tablicę automatyczną bez allokacji. Zdaje się
> że poza prostymi przypadkami konwerter nie jest w stanie
> rozpoznać czy tablica nie będzie realokowana. A jeśli
> będzie to w C++ konwerter by musiał wstawiać delete przed
> allokacją... Czyli by musiał wiedzieć kiedy jest pierwsza
> allokacja a kiedy następna i kiedy ostatnia... Podejrzana
> sprawa, konwerter by musiał za dużo wiedzieć :) No chyba
> że konwerter wstawia swoją implementację GC :)
W kodzie rzeczywiście czasem generuje delete
java
} finally {
formatter.close();
rs = null;
}
c++
//JAVA TO C++ CONVERTER TODO TASK: There is no native C++ equivalent to
the exception 'finally' clause:
finally
{
formatter->close();
//JAVA TO C++ CONVERTER WARNING: Java to C++ Converter converted the
original 'null' assignment to a call to 'delete', but you should review
memory allocation of all pointer variables in the converted code:
delete rs;
}
}
Tu był trick javowski z przypisaniem null'a, wydaje się że gdzieć, gdzie
nie ma podobnego, pointer c++ nie jest automatycznie niszczony.
Nie mam czasu i energii, aby podawać mu trudne przypadki, gdy referencje
przychodzą i są podawane na zewnątrz bloku kodu, żaden z moich kawałków
nie ma mniej niż 200 linii.
Podobnie jak Ty, nie wierzę w automatyczny konwerter pomiędzy tymi
językami bez wspomagania ręcznego (chyba że po stronie C++ podłożymy mu
50% runtime Javy, ale to przestaje mieć sens). Nie skompilowałem
wygenerowanych źródeł.
Ciekawa jest ścieżka na Managed C++/CLI, w sumie założenia środowiska są
wtedy podobne. Nie uprawiam tego języka, wzrokiem kibica jest "w miarę ok".
PS. A propos, dręczy mnie "kawowy" problem, Groovy dla środowiska .NET
Pewnie by się dało zrobić generator kodu z AST (czy jak Grovy jest
parsowany) na tamten target.
-
3. Data: 2012-04-28 18:40:51
Temat: Re: Prośba o opinie
Od: " " <f...@N...gazeta.pl>
M.M. <m...@W...gazeta.pl> napisał(a):
> Hey
>
> Co sądzicie o narzędziu do którego poniżej podaję link?
>
> http://tangiblesoftwaresolutions.com/Product_Details
/
Java_to_CPlusPlus_Converte
> r_Details.html
>
> Testował to ktoś? Wydaje się dziwne aby taki konwerter w
> ogóle mógł dobrze działać, ale nie wiem, jeszcze nie
> testowałem żadnego. Przykładowo w C++ można na stosie
> położyć tablicę automatyczną bez allokacji. Zdaje się
> że poza prostymi przypadkami konwerter nie jest w stanie
> rozpoznać czy tablica nie będzie realokowana. A jeśli
> będzie to w C++ konwerter by musiał wstawiać delete przed
> allokacją... Czyli by musiał wiedzieć kiedy jest pierwsza
> allokacja a kiedy następna i kiedy ostatnia... Podejrzana
> sprawa, konwerter by musiał za dużo wiedzieć :) No chyba
> że konwerter wstawia swoją implementację GC :)
>
> Wiem na pewno że jakby jakiś taki przyzwoity tool był to
> wolałbym pisać w Javie i potem konwertować do C albo C++.
>
imo nie ma to zadnego sensu, jesli jave miano by konwertowac
do c to lepiej od razu kompilowac ja do asma (a o tym temacie,
czy jawe daje sie kompilowac do 'kodu natywnego', w jakim
stpniu w jakim nie i dlaczego itd i co z tego wychodzi
to osobiscie nie mam akurat pojecia - chetnie sie tez dowiem)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
4. Data: 2012-04-29 23:19:10
Temat: Re: Prośba o opinie
Od: Maciej Sobczak <s...@g...com>
On Apr 28, 6:13 pm, " M.M." <m...@W...gazeta.pl> wrote:
> Wiem na pewno że jakby jakiś taki przyzwoity tool był to
> wolałbym pisać w Javie i potem konwertować do C albo C++.
Dlaczego? Jaki problem chciałbyś w ten sposób rozwiązać?
Na świecie jest cała masa konwerterów z jednego języka na drugi, ale
poza oczywistym przypadkiem kompilacji z języka X na kod wykonywalny
nie widuję przekonywującego uzasadnienia dla takich narzędzi.
Dlatego, z czystej ciekawości, pytam - jaki konkretnie problem można
by rozwiązać w tym konkretnym (Java->C++) przypadku?
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
5. Data: 2012-04-29 23:50:37
Temat: Re: Prośba o opinie
Od: A.L. <l...@a...com>
On Sun, 29 Apr 2012 14:19:10 -0700 (PDT), Maciej Sobczak
<s...@g...com> wrote:
>On Apr 28, 6:13 pm, " M.M." <m...@W...gazeta.pl> wrote:
>
>> Wiem na pewno że jakby jakiś taki przyzwoity tool był to
>> wolałbym pisać w Javie i potem konwertować do C albo C++.
>
>Dlaczego? Jaki problem chciałbyś w ten sposób rozwiązać?
>
>Na świecie jest cała masa konwerterów z jednego języka na drugi, ale
>poza oczywistym przypadkiem kompilacji z języka X na kod wykonywalny
>nie widuję przekonywującego uzasadnienia dla takich narzędzi.
>Dlatego, z czystej ciekawości, pytam - jaki konkretnie problem można
>by rozwiązać w tym konkretnym (Java->C++) przypadku?
ja na dodatek, z zdowiadczenia, mam taka uwage ze na ogol takei
konwertery dobrze radza sobie z przetlumaczeniem 95% kodu. A te
pozostale 5% to moga byc naprawde upierdliwe.
No a ten kod z ktorym sobie radza jest nie pierwszej jakosci.
Pomijam oczywiscie takie nie budzace watpliwosci przypadki jak Ada na
C, Eiffel na C itede
A.L.
-
6. Data: 2012-04-30 07:05:23
Temat: Re: Prośba o opinie
Od: " M.M." <m...@N...gazeta.pl>
Maciej Sobczak <s...@g...com> napisał(a):
>> Wiem na pewno że jakby jakiś taki przyzwoity tool był to
>> wolałbym pisać w Javie i potem konwertować do C albo C++.
>Dlaczego? Jaki problem chciałbyś w ten sposób rozwiązać?
Problem jest trochę subiektywny, gdyż bardzo lubię programować w
Javie. Ale potem bym chciał mieć kod źródłowy także w C++.
W C++ czasami jest możliwość przeprowadzenia dodatkowych
optymalizacji. Ponadto zdekompilowanie kodu maszynowego nastręcza
dużo więcej trudności. To chyba właśnie te trzy powody: w javie
programuje mi się lepiej, a w C++ mam dodatkową sposobność
optymalizowania i zaszyfrowania kodu.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
7. Data: 2012-04-30 10:19:06
Temat: Re: Prośba o opinie
Od: Maciej Sobczak <s...@g...com>
On Apr 30, 7:05 am, " M.M." <m...@N...gazeta.pl> wrote:
> Problem jest trochę subiektywny, gdyż bardzo lubię programować w
> Javie.
OK, ale ludzie, którzy lubią programować w Javie, zwykle nie lubią
patrzeć na kod w C++.
> Ale potem bym chciał mieć kod źródłowy także w C++.
Ale to nie będzie w C++. To będzie kod w Javie, ale udeptany tak, że
skompiluje się przez np. g++.
Nawet nie spodziewam się, żeby taki konwerter potrafił wyprodukować
coś takiego:
std::sort(myVec.begin(), myVec.end());
Wynika to z faktu, że w Javie nie ma konstrukcji, której
odpowiednikiem byłoby to powyżej. A tak się składa, że to powyżej jest
idiomatycznym, kanonicznym a nawet klinicznym kodem w C++. Funktorów
zdefiniowanych przez użytkownika nawet przez uprzejmość nie wspominam.
Ten konwerter w najlepszym razie tłumaczy z Javy na Javę z
przeznaczeniem do kompilacji przez g++.
A biorąc pod uwagę, że gcj i tak już istnieje i ma się dobrze, to rola
takiego konwertera jest dla mnie zupełną zagadką.
> W C++ czasami jest możliwość przeprowadzenia dodatkowych
> optymalizacji.
Sorki, ale pisanie w Javie po to, żeby potem tą Javę udającą C++
optymalizować nie wydaje się być dobrym pomysłem. Lepiej od razu pisać
w C++ z myślą o dalszej optymalizacji. Nie trzeba nawet rezygnować z
Javy (czy czegokolwiek innego), bo przecież nie cały kod wymaga
optymalizacji. Napisz te przysłowiowe 80% w Javie, krytyczną resztę
20% w C++ pozlepiaj to przez jakieś JNI albo IPC i nie kombinuj.
> To chyba właśnie te trzy powody: w javie
> programuje mi się lepiej, a w C++ mam dodatkową sposobność
> optymalizowania i zaszyfrowania kodu.
Do optymalizowania i tak się to nie przyda a do tzw. "szyfrowania"
lepszy będzie gcj.
--
Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com
-
8. Data: 2012-04-30 13:57:30
Temat: Re: Prośba o opinie
Od: " " <f...@N...gazeta.pl>
M.M. <m...@N...gazeta.pl> napisał(a):
> Maciej Sobczak <s...@g...com> napisał(a):
> >> Wiem na pewno że jakby jakiś taki przyzwoity tool był to
> >> wolałbym pisać w Javie i potem konwertować do C albo C++.
> >Dlaczego? Jaki problem chciałbyś w ten sposób rozwiązać?
> Problem jest trochę subiektywny, gdyż bardzo lubię programować w
> Javie. Ale potem bym chciał mieć kod źródłowy także w C++.
no java jest prosta - ja nie zajmuje sie java, ale czasem
spozieram na male kody nap
http://fabiensanglard.net/Water/index.php
spora prostota w pochwalnym sensie,
draznia mnie tylko (z rzucajacych sie w oczy rzeczy) 'try i
catch' bo sklaniam sie ku uwazaniu ze takie obcinanie
galezi powino byc ew stosowane raczej wylacznie w
nielicznych krytycznych aplikacjach gdzie czesciowe
dzialania aplikacji jest czyms o co ew warto sie
starac - a nie do zasmiecania normalnych aplikacji
(ktore powinny dzialac w calosci a jak nie to nie)
> W C++ czasami jest możliwość przeprowadzenia dodatkowych
> optymalizacji. Ponadto zdekompilowanie kodu maszynowego nastręcza
> dużo więcej trudności. To chyba właśnie te trzy powody: w javie
> programuje mi się lepiej, a w C++ mam dodatkową sposobność
> optymalizowania i zaszyfrowania kodu.
> Pozdrawiam
>
>
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
9. Data: 2012-04-30 22:33:22
Temat: Re: Prośba o opinie
Od: Patryk Włos <p...@i...peel>
> Ten konwerter w najlepszym razie tłumaczy z Javy na Javę z
> przeznaczeniem do kompilacji przez g++.
> A biorąc pod uwagę, że gcj i tak już istnieje i ma się dobrze, to rola
> takiego konwertera jest dla mnie zupełną zagadką.
A dla mnie nie. Taki konwerter, zakładając że by w miarę dobrze działał
(bo go nie testowałem), mógłby się potencjalnie przydać do
przeportowania jakiejś konkretnej biblioteki z jednego języka do
drugiego, tak aby mógł jej użyć programista nie znający pierwszego
języka, tworząc program w drugim języku.
W swojej karierze miałem kiedyś 2 takie przypadki, zatem nie jest to
wcale takie hipotetyczne.
Patryk
-
10. Data: 2012-04-30 23:36:27
Temat: Re: Prośba o opinie
Od: " M.M." <m...@N...gazeta.pl>
Patryk Włos <p...@i...peel> napisał(a):
> > Ten konwerter w najlepszym razie tłumaczy z Javy na Javę z
> > przeznaczeniem do kompilacji przez g++.
> > A biorąc pod uwagę, że gcj i tak już istnieje i ma się dobrze, to rola
> > takiego konwertera jest dla mnie zupełną zagadką.
>
> A dla mnie nie. Taki konwerter, zakładając że by w miarę dobrze działał
> (bo go nie testowałem), mógłby się potencjalnie przydać do
> przeportowania jakiejś konkretnej biblioteki z jednego języka do
> drugiego, tak aby mógł jej użyć programista nie znający pierwszego
> języka, tworząc program w drugim języku.
>
> W swojej karierze miałem kiedyś 2 takie przypadki, zatem nie jest to
> wcale takie hipotetyczne.
W świetle tego że istnieje GCJ to może faktycznie takie konwertery
są bez sensu. Muszę poczytać coś o GCJ, jakie on ma możliwości?
Inna sprawa to istnieją takie języki jak język D. Niestety
język D zdaje się być mało popularny. Czy dziś można napisać
aplikację w języku D, a potem ją skompilować i uzyskać
wydajny kod chociaż na windows, linux i mac? To samo pytanie
mnie męczy odnoście C#. Można tak pisać w C# żeby potem się
kompilowało na maca, windowsa, linuxa i chociaż jeden
system mobilny?
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/