Nicholas Ng edited this page Aug 15, 2018 · 105 revisions

This page lists academic and industry research papers about Go or using Go as the implementation language.


  • "Process-Local Static Analysis of Synchronous Processes" (Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson) SAS 2018

  • "Inferring and Asserting Distributed System Invariants" (Stewart Grant, Hendrik Cech, Ivan Beschastnikh) ICSE 2018 Technical Papers

  • "Revisiting the Vector Space Model: Sparse Weighted Nearest-Neighbor Method for Extreme Multi-Label Classification." (Tatsuhiro Aoshima, Kei Kobayashi, Mihoko Minami) arXiv:1802.03938 stat.ML,

  • A Static Verification Framework for Message Passing in Go using Behavioural Types (J. Lange, N. Ng, B. Toninho, N. Yoshida)

  • Finding The Greedy, Prodigal, and Suicidal Contracts at Scale (Ivica Nikolic, Aashish Kolluri, Ilya Sergey, Prateek Saxena, Aquinas Hobor)

    • pdf "To implement the validating framework, we added a new functionality to the official go-ethereum package [20] which allows us to fork the Ethereum main chain at a block height of our choice."
  • State of Mutation Testing at Google (Goran Petrovic and Marko Ivankovic)

  • Index Data Structure, Functionality and Microservices in Thematic Virtual Museums (Sajarwo Anggai) (Ph.D. thesis)


  • RDFIO: extending Semantic MediaWiki for interoperable biomedical data management (Samuel Lampa, Egon Willighagen, Pekka Kohonen, Ali King, Denny Vrandečić, Roland Grafström, Ola Spjuth) Journal of Biomedical Semantics ( Volume: 8, Issue: 35 )

  • Construction and first tests of an in-beam PET demonstrator dedicated to the ballistic control of hadrontherapy treatments with 65 MeV protons (E Busato et al.) IEEE Transactions on Radiation and Plasma Medical Sciences ( Volume: PP, Issue: 99 )

    • DOI: 10.1109/TRPMS.2017.2780447
    • Monitoring system + parts of the DAQ in Go
    • Keywords: Detectors, Particle beams, Protons, Ions, Plasmas, Structural beams, Monitoring
  • Let's Go: a Data-Driven Multi-Threading Support (Alberto Scionti,Somnath Mazumdar) CF'17 Proceedings of the Computing Frontiers Conference

    • "... This paper proposes a first attempt to map goroutines on a data-driven based PXM. ..."
    • Keywords: Data-driven, Programming language, Multi-threading
  • Estimating Mixture Entropy with Pairwise Distances (Artemy Kolchinsky, Brendan D. Tracey)

  • Towards Omnia: a Monitoring Factory for Quality-Aware DevOps (Marco Miglierina, Damian A. Tamburri)

  • Copy-on-Reference File Mechanism Extends Scope of Dynamic Reconfiguration (Jeremy Krach) thesis

  • An event model for phylogenetic biogeography using explicitly geographical ranges (J. Salvador Arias)

  • Feasibility of reusable continuous thrust spacecraft for cargo resupply missions to Mars (C. B. Rabotin) thesis

    • pdf
    • Space Mission Design - A SPICE-enhanced continuous thrust interplanetary mission propagator and vizualizer
    • Keywords: space-mission interplanetary-missions celestial-bodies astrodynamics orbit propagation spice
  • Performance testing of open-source HTTP web frameworks in an API (Michael A.P. Domingues) DSIE’17

  • Method of auto-configuration for corporate proxies (Andrés Abelardo Villarroel Acosta, Carlos Enrique Montenegro Marín, Paulo Alonso Gaona García, Yuri Vanessa Nieto Acevedo) Ingeniería solidaria, 2017

  • NucAmino: a nucleotide to amino acid alignment optimized for virus gene sequences ( Philip L. Tzou, Xiaoqiu Huang, Robert W. Shafer ) BMC Bioinformatics (2017) 18: 138.

  • Idiomatic and Reproducible Software Builds using Containers for Reliable Computing (Jonas Weber) Master’s Thesis

  • Structured I/O streams in Clive: a toolbox approach for wide area network computing ( Francisco J. Ballesteros )

  • Towards Practical Default-On Multi-Core Record/Replay ( Ali José Mashtizadeh, Tal Garfinkel, David Terei, David Mazières, Mendel Rosenblum) draft , ASPLOS 2017

  • Comparing MapReduce and Pipeline Implementations for Counting Triangles ( Edelmira Pasarella, Maria-Esther Vidal, Cristina Zoltan)

  • Fencing off Go: Liveness and Safety for Channel-based Programming (J. Lange, N. Ng, B. Toninho, N. Yoshida), POPL 2017

  • Design and Implementation of Concurrent C0 (Willsey, Prabhu, Pfenning)

  • Automated Identification of Security Issues from Commit Messages and Bug Reports (Yagin Zhou, Asankhaya Sharma), FSE 2017

  • Reconstructing Program Semantics from Go Binaries (Engelke)

  • An Attempt at Reducing Costs of Disk I/O in Go (Wilson, Mutschlechner)

  • Go-RealTime: A Lightweight Framework for Multiprocessor Real-Time System in User Space (Fang, Luo, Anwar, Zhuang, Gupta)


  • Atom: Horizontally Scaling Strong Anonymity (Albert Kwon, Henry Corrigan-Gibbs, Srinivas Devadas, Bryan Ford)
    • arXiv:1612.07841 cs.CR "...We implemented an Atom prototype in Go in approximately 3,500 lines of code, ..."
  • The Case for Reconfiguration without Consensus: Comparing Algorithms for Atomic Storage (Leander Jehl, Hein Meling)
  • Flower : Workflow management and heat-aware scheduling for modern cloud infrastructures (Robert Carosi, Boris Mattijssen) bachelor thesis,
    • abstract, pdf, Keywords: container, workflow, virtualization, scheduling, flower, kubernetes
  • Implementing a web-based bookingsystem using Go ( Vu, Phi-Long ) Independent thesis Basic level
    • abstract, pdf ; Keywords: Booking System, Go, Golang, REST, XSS, XSRF
  • Parallelization of the corpus manager’s time-consuming operations (Bc. Radoslav Rábara ) Master's Thesis, Masaryk University
    • pdf ; Keywords: Manatee, text corpora, Go, text compression, compression of integers, time-consuming operations, parallelization, MapReduce, Glow, distributed computing, data format, cluster, scalability
  • Cyber Security Exercise Modeling & Tracking (Joonas Greis) Bachelor’s thesis
    • pdf "... RESTful API was written with Golang using Go-Json-Rest package ..."
  • Scalable Byzantine Consensus via Hardware-assisted Secret Sharing (Jian Liu, Wenting Li, Ghassan O. Karame, N. Asokan)
  • Fast and Reliable Byzantine Fault Tolerance (Eric Scott Freeman) Master's thesis in Computer science
  • Formal verification of concurrency in go (Anuchit Prasertsang, Denduang Pradubsuwun)
  • Therapeutic target discovery using Boolean network attractors: updates from kali ( Arnaud Poret ) ( Quantitative Biology > Molecular Networks)
  • Information Flow Analysis for Go ( Eric Bodden, Ka I. Pun, Martin Steffen, Volker Stolz, Anna-Katharina Wickert)
  • A Productivity Checker for Logic Programming (E. Komendantskaya, P. Johann, M. Schmidt )
  • A novel algorithm for detecting multiple covariance and clustering of biological sequences ( Wei Shen & Yan Li) ( Coevolution, Computational models )
  • Architecture of the Hyperledger Blockchain Fabric (Christian Cachin)
  • Reimagining the Programming Experience ( Mehrdad Afshari , dissertation) GoClr
  • MapReduce vs. Pipelining Counting Triangles (Edelmira Pasarella, Maria-Esther Vidal,and Cristina Zoltan)
  • Software Engineering with PSF and Go (Erik van der Schaaf) Thesis, University of Amsterdam
  • Parametric Polymorphism in the Go Programming Language (Matthew Allen) University of Texas, Turing Scholars honors thesis
  • Static Trace-Based Deadlock Analysis for Synchronous Mini-Go ( Kai Stadtmüller, Martin Sulzmann, and Peter Thiemann )
    • pdf
    • code - first beta implementation : gopherlyzer
  • Continuous Query-Based Syndication: Distributed, Expressive Messaging for the IoT( Gabriel Fierro, Erik Krogen )
  • Privacy, Discovery, and Authentication for the Internet of Things (Wu, Taly, Shankar, Boneh)
  • Static Deadlock Detection for Concurrent Go by Global Session Graph Synthesis (Ng, Yoshida)
  • A Small-Step Semantics of a Concurrent Calculus with Goroutines and Deferred Functions ( Martin Steffen )
  • Butterfield, Ellis H., "Fog Computing with Go: A Comparative Study" (2016). CMC Senior Theses. Paper 1348.
  • An Implementation and Analysis of a Kernel Network Stack in Go with the CSP Style (Harshal Sheth, Aashish Welling)
  • PAS-MC: Privacy-preserving Analytics Stream for the Mobile Cloud (Joy, Gerla)
  • Developing an Ethereum Blockchain Application (Triantafyllidis)
  • Identifying and characterizing Sybils in the Tor network (Winter, Ensafi, Loesing, and Feamster)
  • A Distributed Implementation of the Graph Database System: DGraph
  • Browsix: Bridging the Gap Between Unix and the Browser (Powers, Vilk, Berger)
  • Verification of Goroutines using Why3 (Schoolderman)
  • Detection of Bugs and Code Smells through Static Analysis of Go Source Code (Bergersen)
  • BTrDB: Optimizing Storage System Design for Timeseries Processing (Andersen, Culler)




  • GoPar: Automatic Loop Parallelization of Go Programs (Wetherbee)
  • SCTP in Go ( Olivier Van Acker )
    • Keywords: Stream Control Transmission Protocol (SCTP); Transmission Control Protocol (TCP); Go; Networking;
    • pdf
  • Benchmarking Usability and Performance of Multicore Languages ( Sebastian Nanz, Scott West, Kaue Soares da Silveira, Bertrand Meyer)
  • Examining the Expert Gap in Parallel Programming (Sebastian Nanz, Scott West, Kaue Soares da Silveira)
  • Acropolis: aggregated client request ordering by Paxos (Jothen)
  • Implementation and experimental evaluation of live replacement and reconfiguration (Lea)
  • Exploiting Parallelism in Coalgebraic Logic Programming (Komendantskaya, Schmidt, Heras)
  • Parallel Pattern Discovery (Egon Elbre), Master's Thesis, University of Tartu


  • Time Warp on the Go (D'Angelo, Ferretti, Marzolla)
  • Can Go address the multicore issues of today and the manycore problems of tomorrow? (S. Binet)
  • GoCxx: a tool to easily leverage C++ legacy code for multicore-friendly Go libraries and frameworks (S. Binet)
  • The Buffered π-Calculus: A Model for Concurrent Languages (Deng, Zhang, Deng, Zhong)
  • Analysis of the Go runtime scheduler (Neil Deshpande,Erica Sponsler,Nathaniel Weiss)
  • A Comparative Study of Programming Models for Concurrency ( Kaue Soares da Silveira) – Porto Alegre: COMGRAD CIC UFRGS, 2012. Final Report (Bachelor)
  • Debian Code Search (Stapelberg)
  • Go’s Concurrency Constructs on the SCC (Prell, Rauber)
  • Comparing Parallel Performance of Go and C++ TBB on a Direct Acyclic Task Graph Using a Dynamic Programming Problem (Serfass, Tang)


  • ng: What next-generation languages can teach us about HENP frameworks in the manycore era (S. Binet)
  • Serving Web Content with Dynamic Process Networks in Go (James Whitehead II)


  • GoHotDraw: Evaluating the Go Programming Language with Design Patterns (Schmager, Cameron, Noble)
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.