프로그래밍에서 '포팅'이라는 단어의 사용에 관한 질문


11

현재 UNIX 시스템 용으로 작성된 C ++ 코드를 수정하여 Visual Studio에서 컴파일하여 작동하도록 수정 중입니다. 내장 함수의 이름을 변경해야했고 동적 배열이 정의되는 방식을 변경해야했습니다.

내 질문은,이 코드를 UNIX에서 Windows / Visual Studio로 '포팅'하거나 하나의 프로그래밍 언어에서 다른 프로그래밍 언어로 변경할 때만 (포팅) 사용된다고 말할 수 있습니까 (C ++에서 Java로 포팅)?


1
몇 년 전에 32 비트 OS / 2에서 실행되도록 16 비트 OS / 2 소프트웨어를 변환해야했습니다. 프로젝트 중에 모든 사람이이 활동을 "32 비트로 포팅"이라고했습니다. 따라서 다른 OS 나 다른 하드웨어, 다른 환경으로 옮기는 것을 의미 할 필요도 없습니다.
로봇 고트

답변:


15

Wikipedia 와 내 개인적인 경험 에 따르면 "포팅"이라는 용어는 원래 의도하지 않은 플랫폼에서 소프트웨어를 작동시키는 것을 말합니다. 이 과정은 때때로 언어의 변화를 요구하지만 항상 그런 것은 아닙니다.

이 용어는 일반적으로 동일한 CPU 및 운영 체제에서 적은 메모리로 실행되도록 소프트웨어를 조정하는 프로세스에는 적용되지 않으며 다른 언어 (예 : 언어 변환 또는 번역)로 소스 코드를 다시 작성하는데도 적용되지 않습니다.

사람들이 Java 프로그램이 더 "이동 가능"하다고 말하면 다양한 다른 시스템 및 운영 체제와 호환되도록하기 위해 추가 작업이 덜 필요하다는 것을 의미합니다.


7
내가 본 것에서 사람들이 Java 프로그램을 이식성이 더 좋다고 말하면 Java 프로그램 이식 경험이 부족하고 단순히 Sun / Oracle의 영업 기회에 의존한다는 것을 의미합니다. 필자의 경험에 따르면 Java 포팅은 실제로 평균보다 약간 어렵습니다 (대부분 사람들은 이식성이 자동 / 보장되고 따라서주의를 기울이거나 일할 가치가 없다고 믿도록 권장 되었기 때문에).
Jerry Coffin

2
@ JerryCoffin : 나는 그 전선에 대한 많은 경험이 없었습니다. 내가 함께 일한 Java 프로그램은 Linux, Windows 및 Mac 상자에서 모두 잘 작동하는 모든 웹 응용 프로그램이었습니다. 그러나 개발자의 항의에도 불구하고 이식성이 그렇게되지 않을 것이라는 경영진이 Java 전환을 추진 한 회사의 이야기를 들었습니다.
StriplingWarrior

4
@ 제리-당신의 경험이 어디에 있는지 확실하지 않지만 내가 포팅 한 모든 Java 프로그램은 포트에 사소한 것입니다 (이에는 Mac 및 Win / Linux / Solaris의 GUI 및 서버 측 응용 프로그램이 모두 포함됩니다). Sun과 Oracle은 Java 앱이 다른 어떤 것보다 이식하기 쉬운 정도까지 정확합니다. 대부분의 경우 다시 컴파일 할 필요조차 없습니다 (휴대 성에서 2 위를 차지하는 잘 작성된 이식 가능한 C / C ++에도 필요함). 내가 볼 수있는 가장 일반적인 문제는 개발자가 디렉토리 구분자로 "/"와 같은 플랫폼 별 항목을 하드 코딩했을 때 발생하지만 문제를 해결하기가 매우 쉽습니다 ....
mikera

@Jerry J2ME 게임을 5 년간 프로그래밍했습니다. 내가 끝났을 때, 우리는 80 버전의 게임을하고있었습니다. 플랫폼마다 성능, 버그 등이 다릅니다. 솔루션? 플랫폼에 대한 표준을 만들지 않고 J2ME 응용 프로그램에 대한 표준화 된 테스트를 만들었습니다. 다시는
Sulthan

2

운영 체제간에 소프트웨어를 이식 할 수 있습니다. 프로세서 아키텍처간에 소프트웨어를 이식 할 수 있습니다. 주요 플랫폼 변경 (Apple의 PPC-> x86 스위치 또는 Windows XP-> Windows Vista / 7 / 8)을 처리 할 때 일반적으로 "포팅"과 관련된 일부 활동을 수행해야 할 수도 있습니다. 프로그래밍 언어를 "포팅"으로 전환하는 것을 고려하지 않습니다. 완전히 다시 쓰는 것과 같습니다.

Linux에서 Windows로 또는 그 반대로 소프트웨어를 이식했습니다. SPARC에서 x86으로 소프트웨어를 포팅했으며 (엔디안 문제를 다루는 것을 좋아합니다) 32 비트에서 64 비트로. 요즘 Java로 프로그래밍하고 있습니다 ... "porting"이라는 단어가 Javaland에서, 아마도 주요 JVM 버전 사이에서 많은 의미가 있는지 확실하지 않습니다 ....


0

퍼블리셔가 가능한 많은 플랫폼 (PC, Xbox, Playstation 등)을 다루기를 원함에 따라 포팅은 게임 개발에서 점점 더 대중화되고 있습니다. 언급 한 바와 같이 이식은 원래 프로그램을 완전히 다른 시스템에서 작동하도록 변환하는 것을 의미합니다. 일반적으로 게임 제작자는 콘솔 게임을 PC로 변환합니다.


점점 더 많은 개발자들이 Unity와 같은 크로스 플랫폼 개발 도구를 사용하여 이식 할 필요가 없습니다. 처음에 많은 플랫폼에서 실행되는 하나의 코드베이스를 개발하는 것은 "포팅"과 동일하지 않습니다. 즉, 한 플랫폼에서 무언가가 설계되고 실행 된 후 다른 플랫폼에서 실행되도록 수정되었습니다.
로봇 고트

재미 있겠다! 성능과 확장성에 어떤 영향을 줍니까? 콘솔이 여전히 대부분의 고급 PC보다 훨씬 느리다는 사실에 대한 한 가지 우려는 아마도 Unity가 더 빠른 시스템에서 최대 품질을 손상시키지 않으면 서 어떻게 접근합니까?
Juha Untinen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.