The IRS’s Effort to Convert Its Assembly Codebase to Java
81–90 of 224 posts
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#82Earlier quoted context omitted.
Small contracts are an entirely different matter. Try bagging something >> $1M or defense related. I've worked for the government on small jobs here in the EU a couple of times, as long as you stay below a certain amount you can bypass a ton of requirements. But once you go above that threshold the number of players drops very rapidly and there is no escaping the formal process. If you are capable of selling large co…
The intestinal fortitude needed to prepare a proposal for these mega projects is enormous. I always end up with a gut churning feeling that no one is even going to read my work (which is interrupting any work on real projects), or that some back hander will result in a not level playing field.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#83> in theory, there’s no way to translate assembler code. They way it runs is not how it reads Wat?
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#84Earlier quoted context omitted.
Rather than transcode assembly to a higher-level language. It's better to nail down all the functionality the assembly program provide and re-implement them in the higher-level language. Write language independent tests against the old code and re-run the tests against the new code to make sure things are working feature for feature and bug for bug.
> nail down all the functionality the assembly program This often proves to be much harder than expected which is /why/ people almost never touch systems like this where the creators are long gone
I assume this assembly program does the tax calculation, so the IRS tax code can be consulted to verify the functionality. Functional tests can be written against the old code as the functionality is documented. The functional tests will guide the new implementation development, and serve as the acceptance tests of the new code.
You can even structure the process such that there's a team doing just the functional specification and functional test writing, and another team takes the result fed to them and does the implementation in parallel.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#85Wow, what a cool project to work on: working out the logic flows in assembler and breaking them out so that they can be translated into a higher-level language. I've always thought that this type of government work should be open to bids from anyone . If the government is worried about trojans, malware, etc., then they can easily hire an auditor to audit the code and vouch for its authenticity. The fact that only ver…
Rather than transcode assembly to a higher-level language. It's better to nail down all the functionality the assembly program provide and re-implement them in the higher-level language. Write language independent tests against the old code and re-run the tests against the new code to make sure things are working feature for feature and bug for bug.
Simply extracting the control structure of the assembly via automation is a huge win. This type of assembly is incredibly dense - it was written for machines with at most, 100's of K of memory. It relies on highly non-local side effects which are very dependent on the data.
Things like a reference to a status register bit that was possibly set as a side effect of an instruction 30 or 40 instructions back, but then could have been modified by three or more other instructions, none of which are control flow instructions. All depending on knowing that certain patterns do/do not ever appear in the data.
After the control flow is extracted and made visible, then you can get to things like numerical emulation of the exact oddities of S360 code.
Once you have all those things done, which you will not ever, ever, be able to do by hand, then you can take the resulting generated Java and begin re-implementing.
The work being described has to happen before the suggestion above can even be approached.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#86> Assembler is like Shakespearean English. It’s dated. A shrinking number of people can deal with it. But it’s also elegant and highly functional. What is considered elegant and functional about assembly?
> Assembler is like Shakespearean English. Author has no idea what assembler is.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#87Earlier quoted context omitted.
The actual federal pay schedules are here: https://www.opm.gov/policy-data-oversight/pay-leave/salaries... The GS-15 range for the DC area is $135k-164k. For federal government employees, salary only represents about half of their total compensation, which includes a lifetime inflation adjusted pension and medical benefits.
...and any sizable employer offers healthcare and a 401(k). So at best you could say they're betting on an inflation-adjusted pension? That's not going to sell many candidates.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#88If you machine translate assembler to Java won't you still end up with confusing code?
In addition, some of the automated translators I have seen also apply automated refactoring: They tend to merge similar sections of code and minimize the delta (similar to diff) that is factored out. This can create a maintenance problem especially in the context of a system like the IRS's, where presumably the code that performs calculations for different years or other periods (legislations etc.) is similar but not identical, but must be retained as fully as possible to reliably perform calculations that are subject to earlier regulations.
Such portions of code should be kept distinct, but an automated conversion may conflate them, and it may require additional and error-prone fiddling to enforce the separation.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#89Earlier quoted context omitted.
Grails, POCs, Ratpat (ok danveloper.. we get it, that exists), Spock tests Why do you regularly get frustrated with groovy?
It's probably a function of it being the language that exists, and my unfamiliarity with it. I regularly just want to do the Java versions of the operation but find myself "translating" to the Groovy code where I'm unfamiliar with the design methodologies of the language and where they differ from the Java methodologies. There's interop, I'm aware, but in things like Jenkins plugins, that's kind of heavy.
Re: The IRS’s Effort to Convert Its Assembly Codebase to Java
#90> Wang was working under streamlined critical pay authority the agency has had since its landmark 1998 restructuring. It gave the IRS 40 slots under which it could pay temporary, full-time employees higher than GS rates. Former Commissioner John Koskinen pointed out Congress did not re-up this authority in 2013, despite his entreaties to former Congressman Jason Chaffetz’s Committee on Oversight and Government Reform…
You'll get some of the best candidates from India and China lining up.
I work at Amazon in Seattle right now, but I'd take the pay cut to jump the India green card line. Probably go back to Amazon right after I got the green card tho.