blob: 9cb42642123fec0921ba7504fa4abd358db4b1ca [file] [log] [blame] [view]
Damian Gryski069f87f2016-06-03 21:11:04 +02001This page lists academic and industry research papers about Go or using Go as the implementation language.
2
Matt Horsnellf6197c62016-06-06 11:42:17 +01003## 2016
ImreSamuc0aa3cf2016-07-09 16:16:35 +02004- Parametric Polymorphism in the Go Programming Language (Matthew Allen) University of Texas,
5Turing Scholars honors thesis
6 - [pdf] (http://apps.cs.utexas.edu/tech_reports/reports/tr/TR-2231.pdf)
7 - [code] (https://github.com/Matt343/llgo) ( LLGO based )
ImreSamu55b76a32016-07-02 12:53:03 +02008- Static Trace-Based Deadlock Analysis for Synchronous Mini-Go ( Kai Stadtmüller, Martin Sulzmann, and Peter Thiemann )
9 - [pdf] (http://www.home.hs-karlsruhe.de/~suma0002/publications/TraceBasedDeadlockAnalysisMiniGo.pdf)
10 - [code] (https://github.com/KaiSta/gopherlyzer) - first beta implementation : gopherlyzer
ImreSamueb69acc2016-06-25 17:36:17 +020011- Continuous Query-Based Syndication: Distributed, Expressive Messaging for the IoT( Gabriel Fierro, Erik Krogen )
12 - [pdf](https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-S16/projects/reports/project1_report.pdf), [motivation](https://github.com/gtfierro/cs262-project/blob/master/Motivation.md)
13 - [code](https://github.com/gtfierro/cs262-project) ( Go and Python implementation )
Matt Horsnellf6197c62016-06-06 11:42:17 +010014- Privacy, Discovery, and Authentication for the Internet of Things (Wu, Taly, Shankar, Boneh)
15 - [arxiv](https://arxiv.org/abs/1604.06959)
16 - [code](https://vanadium.github.io/)
17- Static Deadlock Detection for Concurrent Go by Global Session Graph Synthesis (Ng, Yoshida)
18 - [pdf](http://www.doc.ic.ac.uk/~cn06/pub/2016/dingo/main.pdf)
19 - [code](https://github.com/nickng/dingo-hunter)
20- A Small-Step Semantics of a Concurrent Calculus with Goroutines and Deferred Functions ( Martin Steffen )
21 - [springer link] (http://link.springer.com/chapter/10.1007%2F978-3-319-30734-3_26)
22 - [pdf] (https://heim.ifi.uio.no/msteffen/download/15/semantics-goroutinesdefer.pdf)
23- Butterfield, Ellis H., "Fog Computing with Go: A Comparative Study" (2016). CMC Senior Theses. Paper 1348.
24 - http://scholarship.claremont.edu/cmc_theses/1348
25- An Implementation and Analysis of a Kernel Network Stack in Go with the CSP Style (Harshal Sheth, Aashish Welling)
26 - [arXiv:1603.05636 cs.OS] ( http://arxiv.org/abs/1603.05636 )
27- PAS-MC: Privacy-preserving Analytics Stream for the Mobile Cloud (Joy, Gerla)
Damian Gryskia9039ed2016-06-07 13:38:15 +020028 - [arXiv:1604.04892 cs.CR](https://arxiv.org/abs/1604.04892)
29- Developing an Ethereum Blockchain Application (Triantafyllidis)
30 - [pdf](https://homepages.staff.os3.nl/~delaat/rp/2015-2016/p53/report.pdf)
Philipp Winter7695ecd2016-06-10 22:36:36 +000031- Identifying and characterizing Sybils in the Tor network (Winter, Ensafi, Loesing, and Feamster)
32 - [pdf] (https://nymity.ch/sybilhunting/pdf/sybilhunting.pdf)
33 - [code] (https://github.com/NullHypothesis/sybilhunter)
Damian Gryskif31c7da2016-06-22 14:41:01 +020034- A Distributed Implementation of the Graph Database System: DGraph
35 - [pdf](https://www.dropbox.com/s/7h4ytak39r2pdun/Ashwin_Thesis.pdf?dl=0)
Damian Gryski77b0f1e2016-06-05 11:25:53 +020036
Damian Gryski069f87f2016-06-03 21:11:04 +020037## 2015
Damian Gryski069f87f2016-06-03 21:11:04 +020038- Blade: A Data Center Garbage Collector (Terei, Levy)
Damian Gryski77b0f1e2016-06-05 11:25:53 +020039 - [arxiv:1504.02578 cs.DC](https://arxiv.org/abs/1504.02578)
Damian Gryski069f87f2016-06-03 21:11:04 +020040- Flywheel: Google's Data Compression Proxy for the Mobile Web (Agababov, Buettner, Chudnovsky, Cogan, Greenstein, McDaniel, Piatek, Scott, Welsh, Yin)
41 - [pdf](http://research.google.com/pubs/pub43447.html)
42 - [Rewriting a large production system in Go](http://matt-welsh.blogspot.com/2013/08/rewriting-large-production-system-in-go.html)
Brendan Traceyd99ac342016-06-04 07:49:45 -060043- A Machine Learning Strategy to Assist Turbulence Model Development (Brendan Tracey, Karthik Duraisamy, Juan J. Alonso)
Brendan Tracey2da3ab72016-06-04 07:49:12 -060044 - http://arc.aiaa.org/doi/abs/10.2514/6.2015-1287
ImreSamuf78c7782016-06-04 16:53:26 +020045- Implementing an intelligent version of the classical sliding-puzzle game for unix terminals using Golang's concurrency primitives ( Pravendra Singh )
Damian Gryski77b0f1e2016-06-05 11:25:53 +020046 - [arxiv:1503.08345 cs.AI] ( http://arxiv.org/abs/1503.08345 )
47- Keeping Authorities "Honest or Bust" with Decentralized Witness Cosigning (Syta, Tamas, Visher, Wolinsky, Jovanovic, Gasser, Gailly, Khoffi, Ford)
48 - [arxiv:1503.08768 cs.CR](https://arxiv.org/abs/1503.08768)
49 - [code](https://github.com/dedis/cothority), [code](https://github.com/dedis/cosi)
ImreSamuacdeec52016-06-05 12:49:47 +020050- Message Passing for Programming Languages and Operating Systems (Martynas Pumputis ) Masters Thesis
51 - [pdf](http://e-collection.library.ethz.ch/eserv/eth:48404/eth-48404-01.pdf)
ImreSamu790a1e92016-06-05 12:56:12 +020052- Type inference for Go (Emin Gigovic, Philip Malmros )
53 - [pdf](http://fileadmin.cs.lth.se/cs/Education/EDAN70/CompilerProjects/2015/Reports/GigovicMalmros.pdf)
Damian Gryskia9039ed2016-06-07 13:38:15 +020054- Open-Source, Platform-Independent Library and Online Scripting Environment for Accessing Thermo Scientific RAW Files. (Kelchtermans, Silva, Argentini, Staes, Vandenbussche, Laukens, Valkenborg, Martens)
55 - https://www.ncbi.nlm.nih.gov/pubmed/26477298
ImreSamu160aeaf2016-06-21 13:26:42 +020056- Evaluation of performance and productivity metrics of potential programming languages in the HPC environment ( Bachelor Thesis ; Florian Wilkens ) - ( Go, Rust, C, OpenStreetMap )
57 - [github-code](https://github.com/MrFloya/thesis-ba) , [pdf](https://github.com/MrFloya/thesis-ba/raw/master/tex/thesis.pdf)
ImreSamuacdeec52016-06-05 12:49:47 +020058
Matt Horsnellf6197c62016-06-06 11:42:17 +010059## 2014
Nicholas Ng5b5bffd2016-06-17 18:27:41 +010060- PARAGON: an approach for parallelization of power system contingency analysis using Go programming language
61 - http://onlinelibrary.wiley.com/doi/10.1002/etep.1999/full
Matt Horsnellf6197c62016-06-06 11:42:17 +010062- A Study of Successive Over-relaxation Method Parallelization Over Modern HPC Languages (Mittal)
63 - [arxiv:1401.0763 cs.DC](https://arxiv.org/abs/1401.0763)
64 - [code](https://github.com/sparsh0mittal/sor_serial_parallel_codes)
65- There Is More Consensus in Egalitarian Parliaments (Moraru, Andersen, Kaminsky)
66 - [pdf](https://www.cs.cmu.edu/~dga/papers/epaxos-sosp2013.pdf)
67 - [code](https://github.com/efficient/epaxos)
68 - [Experience with ePaxos: Systems Research using Go](https://da-data.blogspot.com/2013/10/experience-with-epaxos-systems-research.html)
69- Research Problems of Implementing Go
70 - https://talks.golang.org/2014/research.slide (rsc)
71 - https://talks.golang.org/2014/research2.slide (dvyukov)
72- bíogo: a simple high-performance bioinformatics toolkit for the Go language (D. Kortschak, D. Adelson)
73 - [pdf](http://biorxiv.org/content/early/2014/05/12/005033)
Damian Gryskia9039ed2016-06-07 13:38:15 +020074- P2S: A Fault-Tolerant Publish/Subscribe Infrastructure (Chang, Duan, Meling, Peisert, Zhang)
75 - [pdf](http://cs.unc.edu/~haibin/p2s.pdf)
76- Generating a Google Go framework from an Uppaal model (Dekker)
77 - [pdf](https://www.cs.ru.nl/bachelorscripties/2014/Jip_Dekker___4122100___Generating_Google_Go_framework_from_Uppaal_models.pdf)
78- Using the Go Programming Language in Practice (Westrup, Pettersson)
79 - [pdf](http://users.student.lth.se/dt09ew6/files/thesis.pdf)
Damian Gryski727d59b2016-07-03 11:18:59 +020080- A Language Support for Exhaustive Fault-Injection in Message-Passing System Models (Suzuki, Watanabe)
81 - [arXiv:1411.3793 cs.SE](https://arxiv.org/abs/1411.3793)
Matt Horsnellf6197c62016-06-06 11:42:17 +010082
83## 2013
84- GoPar: Automatic Loop Parallelization of Go Programs (Wetherbee)
85 - [pdf](https://docs.google.com/file/d/0B6tFaBl5qV_gNmpRTnJkcEo4a2M/edit)
86 - [code](https://github.com/wetherbeei/gopar)
87- SCTP in Go ( Olivier Van Acker )
88 - Keywords: Stream Control Transmission Protocol (SCTP); Transmission Control Protocol (TCP); Go; Networking;
89 - [pdf](https://2013.asiabsdcon.org/papers/abc2013-P7A-paper.pdf)
90- Benchmarking Usability and Performance of Multicore Languages ( Sebastian Nanz, Scott West, Kaue Soares da Silveira, Bertrand Meyer)
91 - [arXiv:1302.2837 cs.DC](https://arxiv.org/abs/1302.2837)
92- Examining the Expert Gap in Parallel Programming (Sebastian Nanz, Scott West, Kaue Soares da Silveira)
93 - [pdf](http://se.inf.ethz.ch/people/west/expert-gap-europar-2013.pdf)
Damian Gryskia9039ed2016-06-07 13:38:15 +020094- Acropolis: aggregated client request ordering by Paxos (Jothen)
95 - https://brage.bibsys.no/xmlui//handle/11250/181825
96- Implementation and experimental evaluation of live replacement and reconfiguration (Lea)
97 - https://brage.bibsys.no/xmlui//handle/11250/181813
Damian Gryskie6a59682016-06-29 16:43:04 +020098- Exploiting Parallelism in Coalgebraic Logic Programming (Komendantskaya, Schmidt, Heras)
99 - https://arxiv.org/abs/1312.4454
Matt Horsnellf6197c62016-06-06 11:42:17 +0100100
101## 2012
102- Time Warp on the Go (D'Angelo, Ferretti, Marzolla)
103 - [arxiv:1206.2772 cs.DC](https://arxiv.org/abs/1206.2772)
104- Can Go address the multicore issues of today and the manycore problems of tomorrow? (S. Binet)
105 - [pdf](http://iopscience.iop.org/article/10.1088/1742-6596/368/1/012017)
106- GoCxx: a tool to easily leverage C++ legacy code for multicore-friendly Go libraries and frameworks (S. Binet)
107 - [pdf](http://iopscience.iop.org/article/10.1088/1742-6596/396/5/052012)
108- The Buffered π-Calculus: A Model for Concurrent Languages (Deng, Zhang, Deng, Zhong)
109 - [arxiv:1212.6183 cs.LO](https://arxiv.org/abs/1212.6183)
110- Analysis of the Go runtime scheduler (Neil Deshpande,Erica Sponsler,Nathaniel Weiss)
111 - [pdf](http://www1.cs.columbia.edu/~aho/cs6998/reports/12-12-11_DeshpandeSponslerWeiss_GO.pdf)
112- A Comparative Study of Programming Models for Concurrency ( Kaue Soares da Silveira) – Porto Alegre: COMGRAD CIC UFRGS, 2012. Final Report (Bachelor)
113 - [pdf](ftp://ftp.inf.ufrgs.br/pub/geyer/Alunos/KaueSilveira/TG-ComparacaoLinguagensConcorrencia-kaue_soares_da_silveira.pdf)
Damian Gryskia9039ed2016-06-07 13:38:15 +0200114- Debian Code Search (Stapelberg)
115 - [pdf](https://codesearch.debian.net/research/bsc-thesis.pdf)
116- Go’s Concurrency Constructs on the SCC (Prell, Rauber)
117 - [pdf](https://hal.inria.fr/file/index/docid/718924/filename/MARC6_Gos-Concurrency-Constructs-on-the-SCC.pdf)
118
Matt Horsnellf6197c62016-06-06 11:42:17 +0100119
120## 2011
121- ng: What next-generation languages can teach us about HENP frameworks in the manycore era (S. Binet)
122 - [pdf](http://iopscience.iop.org/article/10.1088/1742-6596/331/4/042002)
123- Serving Web Content with Dynamic Process Networks in Go (James Whitehead II)
124 - [DOI: 10.3233/978-1-60750-774-1-209](http://dx.doi.org/10.3233/978-1-60750-774-1-209)
Damian Gryski9fb55c92016-06-06 15:48:16 +0200125 - [pdf] (http://www.cs.ox.ac.uk/people/jim.whitehead/cpa2011-draft.pdf)
126
127## 2010
128- GoHotDraw: Evaluating the Go Programming Language with Design Patterns (Schmager, Cameron, Noble)
129 - [pdf](http://www.doc.ic.ac.uk/~ncameron/papers/schmager_plateau10.pdf)
130