131 private links
A transcompiler, also known as source-to-source translator, is a system that converts source code from a high-level programming language (such as C++ or Python) to another. Transcompilers are primarily used for interoperability, and to port codebases written in an obsolete or deprecated language (e.g. COBOL, Python 2) to a modern one. They typically rely on handcrafted rewrite rules, applied to the source code abstract syntax tree. Unfortunately, the resulting translations often lack readability, fail to respect the target language conventions, and require manual modifications in order to work properly. The overall translation process is timeconsuming and requires expertise in both the source and target languages, making code-translation projects expensive.
Although neural models significantly outperform their rule-based counterparts in the context of natural language translation, their applications to transcompilation have been limited due to the scarcity of parallel data in this domain. In this paper, we propose to leverage recent approaches in unsupervised machine translation to train a fully unsupervised neural transcompiler. We train our model on source code from open source GitHub projects, and show that it can translate functions between C++, Java, and Python with high accuracy.
Our method relies exclusively on monolingual source code, requires no expertise in the source or target languages, and can easily be generalized to other
programming languages. We also build and release a test set composed of 852 parallel functions, along with unit tests to check the correctness of translations. We show that our model outperforms rule-based commercial baselines by a significant margin.
Here’s why Rust gets so much love, straight from the Rustaceans themselves.
written by Walter Bright
My career has been all about designing programming languages and writing compilers for them. This has been a great joy and source of satisfaction to me, and perhaps I can help others with some observations about what you’re in for if you decide to design and implement a professional programming language. Of course, this is a book length topic, so I’ll just hit on a few highlights here, and avoid topics well covered elsewhere.
Rob Pike, the co-author of the Go programming language, speaks about a career spanning four decades, and the evolution of Go over the last ten years.
Editly is a tool and framework for declarative NLE (non-linear video editing) using Node.js and ffmpeg. Editly allows you to easily and programmatically create a video from set of clips, images and titles, with smooth transitions between and music overlaid.
The most intuitive way of building and implementing Finite State Machines is by using Python Coroutines and in this article, we find how and why.
About 15 years ago, I mused about the idea of having a "desert island machine". This is where I'd put someone in a room with a box that has a couple of hard drives and a working network connection. HD #1 is blank. HD #2 has a few scraps of a (Linux) OS on it: bootloader, kernel, C library and compiler, that sort of thing. There's a network connection of some sort, and that's about it.
Now you see things like people managing to do the original Super Mario Bros game from the 80s in under five minutes, and I do mean people. There are actual humans frobbing plastic controllers doing this! Just dig around on your favorite giant video-streaming site if you need evidence of this happening.
So here's the pitch: Linux speedruns. By that, I don't mean "speedrunning a game on a Linux box" (like emulation, or something). Nope.
You can initialize Git repository, check its current status, add and commit changes and push all of that to remote? Great. Now time for these commands!
There are countless lists on the internet claiming to be the list of must-read programming books and it seemed that all those lists always recommended that same books minus two or three odd choices.
Finding good resources for learning programming is always tricky. Every-one has its own opinion about what book is the best to learn, and as we say in french, “Color and tastes should not be argued about”.
However I though it would be interesting to trust the wisdom of the crown and to find the books that appeared the most in those “Best Programming Book” lists.
If you want to jump right on the results go take a look below at the full results. If you want to learn about the methodology, bear with me.
An online roster and genealogy of 8945 programming languages from the 18th century to the present, featuring 7,800 influence links and over 11,000 citations.
The other day I read 20 most significant programming languages in history, a “preposterous table I just made up.” He certainly got preposterous right: he lists Go as “most significant” but not ALGOL, Smalltalk, or ML. He also leaves off Pascal because it’s “mostly dead”. Preposterous! That defeats the whole point of what “significant in history” means.
So let’s talk about some “mostly dead” languages and why they matter so much.
If you’re looking to get into ethical hacking, getting acquainted with Python is a great start. They discuss Python and ethical hacking and reveal the best online courses you can take to start training in the field.
The firmware of microcontrollers usually contains valuable data such as intellectual property and, in some cases, even cryptographic material.
I developed these programming exercises while working at 1010data. Each summer we’d put a batch of half a dozen or so interns through a week-long intensive K training program, including this set of puzzles, and then set them loose on the real codebase.
These problems vary in difficulty from trivial to moderately difficult (in non-escalating order), and are suitable for beginners or anyone wishing to brush a little rust off. A solution is provided for each problem in k3- click and hold on the gray area beneath each IO sample to reveal it. Most problems have at least one elegant solution, but many have multiple valid approaches- see how many ways you can satisfy the requirements!