Skip to content

ResearchPapers

Nicholas Ng edited this page Feb 24, 2019 · 142 revisions

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

2019

  • Understanding Real-World Concurrency Bugs in Go (Tu, Liu, Song, Zhang)

  • An empirical study of messaging passing concurrency in Go projects (N. Dilley, J. Lange)

  • A comparison of three programming languages for a full-fledged next-generation sequencing tool (Costanza, Herzeel, Verachtert)

  • Exploring polyglot software frameworks in ALICE with FairMQ and fer

  • Flash: Efficient Dynamic Routing for Offchain Networks

  • RepChain: A Reputation based Secure, Fast and High Incentive Blockchain System via Sharding

  • Drynx: Decentralized, Secure, Verifiable System for Statistical Queries and Machine Learning on Distributed Datasets

2018

  • Implementation and evaluation of secure and scalable anomaly-based network intrusion detection (P. Mieden)

  • ProIO: An Event-Based I/O Stream Format for Protobuf Messages (D. Blyth, J. Alcaraz, S. Binet, S.V. Chekanov)

  • The latest gossip on BFT consensus (Buchman, Kwon, Milosevic)

  • Distributed Programming using Role-Parametric Session Types in Go (Castro, Hu, Jongmans, NG, Yoshida)

  • Observing the Evolution of QUIC Implementations, (Piraux, De Coninck, Bonaventure)

  • Cody Cutler, M. Frans Kaashoek, and Robert T. Morris, "The benefits and costs of writing a POSIX kernel in a high-level language"

  • Voit, Sebastian Peter Johann. "Writing Network Drivers in Go."

  • "MoonShine: Optimizing OS Fuzzer Seed Selection with Trace Distillation" (Shankara Pailoor, Andrew Aday, Suman Jana) USENIX Security 2018

  • "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)

  • "Two-Phase Dynamic Analysis of Message-Passing Go Programs based on Vector Clocks" (M. Sulzmann, K. Stadtmueller)

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

  • "GEEC: Scalable, Efficient, and Consistent Consensus for Blockchains" (Xusheng Chen, Shixiong Zhao, Cheng Wang, Senran Zhang, Heming Cui)

  • "Dependability in a Multi-tenant Multi-framework Deep Learning as-a-Service Platform" (Scott Boag, Parijat Dube, Kaoutar El Maghraoui, Benjamin Herta, Waldemar Hummer, K. R. Jayaram, Rania Khalaf, Vinod Muthusamy, Michael Kalantar, Archit Verma)

  • DRONE: a Distributed Subgraph-Centric Framework for Processing Large Scale Power-law Graphs

  • Reducing Metadata Leakage from Encrypted Files and Communication with PURBs

2017

  • Go-HEP: writing concurrent software with ease and Go (S. Binet)

  • 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

    • doi.org/10.1145/3075564.3075596 "... 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
    • github.com/ChristopherRabotin/smd 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)

  • "Secure and Trustable Electronic Medical Records Sharing using Blockchain" (Alevtina Dubovitskaya, Zhigang Xu, Samuel Ryu, Michael Schumacher, Fusheng Wang)

  • "Towards a More Reliable and Available Docker-based Container Cloud" (Mudit Verma, Mohan Dhawan)

2016

  • 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)

2015

2014

2013

  • 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

2012

  • 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)

2011

  • 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)

2010

  • GoHotDraw: Evaluating the Go Programming Language with Design Patterns (Schmager, Cameron, Noble)
Clone this wiki locally