Papers › Multilingual training for Software Engineering
Multilingual training for Software Engineering
Toufique Ahmed, Premkumar Devanbu
Well-trained machine-learning models, which leverage large amounts of open-source software data, have now become an interesting approach to automating many software engineering tasks. Several SE tasks have all been subject to this approach, with performance gradually improving over the past several years with better models and training methods. More, and more diverse, clean, labeled data is better for training; but constructing good-quality datasets is time-consuming and challenging. Ways of augmenting the volume and diversity of clean, labeled data generally have wide applicability. For some languages (e.g., Ruby) labeled data is less abundant; in others (e.g., JavaScript) the available data maybe more focused on some application domains, and thus less diverse. As a way around such data bottlenecks, we present evidence suggesting that human-written code in different languages (which performs the same function), is rather similar, and particularly preserving of identifier naming patterns; we further present evidence suggesting that identifiers are a very important element of training data for software engineering tasks. We leverage this rather fortuitous phenomenon to find evidence that available multilingual training data (across different languages) can be used to amplify performance. We study this for 3 different tasks: code summarization, code retrieval, and function naming. We note that this data-augmenting approach is broadly compatible with different tasks, languages, and machine-learning models.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
Code
No code repository is listed for this paper in the archive or in Syntology's graph.
Code Syntology ran Syntology
Not run by Syntology. Nothing on this page verifies that the listed code works.
Tasks
Results from the paper archive 2025-07-28
| Task | Dataset | Model | Metric | Value | Rank at snapshot | Leaderboard | Report |
|---|---|---|---|---|---|---|---|
| Type prediction | ManyTypes4TypeScript | PolyGot | Average Accuracy | 61.29 | #5 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | PolyGot | Average F1 | 58.86 | #5 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | PolyGot | Average Precision | 58.81 | #5 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | PolyGot | Average Recall | 58.91 | #5 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | GraphPolyGot | Average Accuracy | 61.00 | #6 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | GraphPolyGot | Average F1 | 58.63 | #6 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | GraphPolyGot | Average Precision | 58.36 | #6 of 9 | Archive leaderboard | report |
| Type prediction | ManyTypes4TypeScript | GraphPolyGot | Average Recall | 58.91 | #6 of 9 | Archive leaderboard | report |
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections