2008-09-05 13 views
6

비 Java 소스 코드를 Java 소스로 자동 변환하는 유용한 도구가 있습니까?비 Java 소스를 Java 소스로 변환하기위한 도구

저는 완벽한 무언가를 기대하지는 않습니다. 단지 방해받지 않고 최악의 상황을 피하는 것뿐입니다.

어려움이있는 슬라이딩 스케일이 있다고 생각합니다. C#은 비교적 쉽습니다 (모든 라이브러리를 무시할 경우). (잘 쓰여졌습니다) C++이 그렇게 나쁘지는 않습니다. C는 약간의 OO를 필요로합니다. (정적 유형) 기능 언어는 쉽게 사용할 수 있습니다. 동적 OO 언어는 비 지역 분석이 필요할 수 있습니다.

답변

6

당신이 시도 할 수있는 한가지는 당신이 말하고있는 언어 (모든 종류의 언어를위한 JVM 컴파일러가있다)를위한 Java 바이트 코드 컴파일러를 찾은 다음 Jad와 같은 decompiler를 사용하여 바이트 코드를 다시 자바로 디 컴파일하는 것이다.

이것은 위험한 상황입니다. 다시 생성 된 코드는 빨기 때문에 읽을 수 없습니다.

3

Google : ANTLR

+0

좋은 지적이지만 소스 언어에 따라 할 일이 많습니다. – user181750

-1

ADA to Java는 찾기 및 바꾸기로 수행 할 수 있습니다!

+0

반대로하면 어떨까요? 나는 ADA – WolfmanDragon

+0

ADA를 배우기를 원하는 자바 사람이다. ADA는 너무 다르지 않다. 템플리트는 모두 비슷하다. 패키지는 자바 정적 클래스와 유사하다. ADA 클래스는 자바와 비슷하다. 표준 IO는 ADA 에서 일반 사항입니다. 이상한 것은 패키지 확장이며 파일 트리와 패키지 이름은 Java에서와 같이 1 : 1로 정렬되지 않습니다. C++과 비슷합니다. –

0

일부 레거시 C/Pascal 코드 만 사용하려는 경우 JNI를 사용하여 Java에서 호출 할 수도 있습니다.

Java 애플릿 또는 유사한 제한된 환경에서 실행하고 매우 효율적일 필요는없는 경우 gcc 교차 분석과 함께 NestedVM (MIPS-Java 바이트 코드 변환기)을 사용할 수 있습니다. MIPS로 컴파일 된 컴파일러). 그러나 자바 코드를 읽기 쉽게 읽을 것을 기대하지 마십시오.

+0

NestedVM 툴체인은 다소 무겁고 약간 구식입니다. Bascially MIPS 지침을 Java Byte Code로 변환합니다 (MIPS32는 JVM에 가장 가까운 것으로 선택되었습니다) –

1

언어 변환은 매우 간단하지만 라이브러리가 다르다는 것을 알 수 있습니다. 이것은 대부분의 작업 일 가능성이 큽니다.

0

비 자바 코드가 충분히 크지 않은 경우에만 해당 도구가 도움이 될 수 있습니다.

거대한 Java 코드가 아니고 Java로 심각하게 변환하려는 경우 몇 가지 사항을 고려해야합니다. 코드 줄 수십 만 아니라 그 아래에 디자인이 있습니다. 몇 가지 결정 사항이 있습니다. 특정 문제가 해결되었을 수도 있고 그곳에서 일하는 것이 거의 없기 때문에 코드 아래에있는 사람들이 취했습니다. 좋은 번역가에게 시간을 투자하는 것은 존재하지 않을 것이므로 가치가 없을 것입니다. 한 언어에서 다른 언어로의 구문 번역이 아닙니다.

너무 큰 코드가 아니라면 Java에서 다시 작성하는 것이 더 좋으며 많은 API 패키지를 제공하므로 많은 인턴이 필요하지 않을 수도 있습니다.

5

원본 - 원본 마이그레이션은 Program Transformation의 우산 아래에 있습니다. Program-Transformation.org는 언어 인식, 분석 및 변환에 유용한 bunch of tools을 추적합니다. 여기에 소스 - 소스 마이그레이션 할 수있는 그 몇 가지 :

, 당신은 알 수 있습니다 (상업)

  • DMS® Software Reengineering Toolkit 그 그들은 소스에 포함하더라도 - 소스 마이그레이션을 기능으로 사용하는 경우 작동 예제를 찾는 것이 어렵습니다. 나는 이것이 한 가지 크기의 모든 마이그레이션과 같은 것이 없기 때문에 이것이라고 상상합니다. 각 프로젝트/팀은 언어를 고유하게 사용하며 사용되는 라이브러리, 유형 복잡성, 관용구, 스타일 등에 따라 다를 수 있습니다. 마이그레이션 당 몇 가지 변환을 정의하는 것이 좋습니다. 이는 자동 마이그레이션이 그만한 가치가 있기 전에 프로젝트가 어느 정도 임계 질량에 도달해야 함을 의미합니다.

    몇 관련 문서 :

    TXL를 사용