Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesDeveloping Hardware-Independent Software


January 1995 / Letters / Developing Hardware-Independent Software

I have been following the discussions in BYTE on new microprocessors and systems, and I keep reading that "the code has to be recompiled to take advantage of the CPU." When I read about VLIW's (very large instruction word's) need for smart compilers, I wondered why I hadn't seen any mention of reassemblers. By reassemblers I mean programs that take a binary and generate a new binary optimized for another CPU. Here you have the K5 reconstructing CISC into RISC on the fly; you have processors spending huge numbers of transistors trying to execute code out of order to take advantage of superscalar pipelining; and you have PowerPC emulating binaries. These all seem to lead to an obvious approach of spending the time once in software to determine what one binary is doing and then to generate a new binary t hat takes advantage of another CPU's strengths.

Alan P. W. Hewett
Mt. Vernon, OH
apwh@cbpine.att.com

The actual term for your reassembler is binary translation, and the short answer is that it does exist. Echo Logic (Holmdel, NJ) has a technology called FlashPort that can translate among several different binary formats, including 680x0 to PowerPC and x86. DEC also has a translator that moves VAX binaries to Alpha. But binary translation is not an answer to the questions of RISC vs. CISC, optimized compilation, or VLIW. Also, there are some unanswered legal questions if you translate a binary without authorization from the original software developer.

I think there are other approaches yet to be explored that address these problems. For example, what if software was delivered in some form of pseudocode that could be compiled and optimized for a specific computer as part of the installation process? You could buy an application in a semicompil ed format, and the installer would automatically compile and optimize the code. If you later upgrade to a completely different platform, the software would get recompiled again on installation, using a plug-in installation compiler. This arrangement would insulate the software from details of the hardware and still achieve optimum performance and compatibility without emulation.--Tom Halfhill


Up to the Letters section contentsGo to previous article: Inheritance in PowerBuilderGo to next article: Microsoft HardwareSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network