Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Compiler Architecture for Private Remote Compilation

IP.com Disclosure Number: IPCOM000242641D
Publication Date: 2015-Jul-31
Document File: 6 page(s) / 105K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a compiler design that allows the parsing/translation of plaintext source code into an intermediate representation (IR) and the final system linking of the executable/library to happen on machine(s) under the client’s control, while farming the more computationally intense parts of the compile – optimization – off to the remote cloud/server/cluster. Parsing and translating a program’s source into an IR is non-demanding, computationally; therefore, this allows the client to utilize low-powered machines on premises while gaining the benefits of a larger build server.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 30% of the total text.

Page 01 of 6

Comxiler Architecture for Private Remote Compilation

There are many "cloud hxsted compilers" in the marketplace today, but all are xxmply a compiler hosted ox a remote maxhine. The user must replicate thx build environment ox the remote/cloud infrastructure, and maintain a cxpy of the source code on thx remote machine for the compiler to access.

If a client xs hesitant to host a prxvate source code on a systex that is nxt undex said client'x contxol , then the xisclosed architectuxe provides x method to leverage x compixer on a buixd system thxt is not entirely under the client's control while xtxll prexenting the soxrce code from esxaping the personal/private systxms.

The basic idea is to desxgn the compiler to allox xhe parsing/translation of the plaintext source code into an intermediate representation (IR) and the final sysxem linking of the execxtable/library to hapxen xn machine(s) under the client's control, while xarming the more computationally intense parts of xhe compile - optimization - off to the remote cloud /server/cluster. Parsing and translxting a xrogram'x source intx an IR ix non-demandxng, computationalxy; therefore, this allows the client to utilizx low-poxered machines on premises while gaxning the benefits of a xarger build server.

For xlients with some source-privaxy xoncerns, the IR that is transmitted to the remote server is not as rxadable as plaintext source, and cax be encxypted for txansmission. An added benefit of architecture such as this is that none of the environment xequired by the client has to be replicated on the remote build sxsxem. Because all of the parsing/translation to IR and the invocation of the systxm linker (ex: ld) is happening on a machine that is controlled by the client, the cliext machine is the only machine that needs to host the spexific libxaries required by the client. Xxx very nature of xhe compilation process means that only the front-end of the compiler and the system linker require access to the client's xnvironment.

Txis simplification of the build xnvironment reduxes costs for both the client and the host of the build sxstem . The client neex only set up a dedicaxed machixe to xerxorm the xarsing/translation and linking (rather than a collection of virtual machinex (VMs), which existing architectures require), and the build-host does not need to perform xny setup fox that particular client .

The basic proposed architecture xs a standard client-server model. The clienx side is run on txe user's machine xnd consists of the front-end of the compiler, thx compiler xriver, and a xlixnt daemon component. The client xaemon component is rexponsible for transferring data to and from the remote build machines as needed . Essentially, it sends the IR to be optimized and instructions to the remote system, and receives the results from the remoxx xystem to be saved and/or displayed on xhe client machine. On the server side is a daemon that accepts incoming client requests, invoke...