-
Notifications
You must be signed in to change notification settings - Fork 2
/
main.bib
363 lines (323 loc) · 13 KB
/
main.bib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
%%% core %%%
% XXX: what is really appropriate ?
@misc{ruby-progress-report,
author = {遠藤 侑介 and 松本 宗太郎 and 上野 雄大 and 住井 英二郎 and 松本 行弘},
title = {{Progress report: Ruby 3における静的型解析の実現に向けて}},
howpublished = {\url{https://github.com/mame/ruby-type-profiler/blob/master/doc/ppl2019.pdf}},
year = {2019}
}
@misc{ruby-type-profiler,
title = {ruby-type-profiler - An experimental type-level Ruby interpreter for testing and understanding Ruby code},
howpublished = {\url{https://github.com/mame/ruby-type-profiler}},
note = {(Accessed on 2020-01-21)}
}
@inproceedings{type-inference-for-javascript,
author = {Anderson, Christopher and Drossopoulou, Sophia and Giannini, Paola},
year = {2005},
month = {07},
pages = {},
title = {Towards Type Inference for JavaScript},
volume = {3586},
journal = {Lecture Notes in Computer Science},
doi = {10.1007/11531142_19}
}
@PhDThesis{jeff-phd,
author = {Bezanson, Jeff},
title = {Abstraction in Technical Computing},
school = {Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science},
year={2015},
url={https://dspace.mit.edu/handle/1721.1/99811}
}
@article{julia-2012,
added-at = {2018-08-13T00:00:00.000+0200},
author = {Bezanson, Jeff and Karpinski, Stefan and Shah, Viral B. and Edelman, Alan},
biburl = {https://www.bibsonomy.org/bibtex/29ae29da4119dcbb50e9d129f56c22275/dblp},
ee = {http://arxiv.org/abs/1209.5145},
interhash = {af6bd6d700e06507d033ecf741910672},
intrahash = {9ae29da4119dcbb50e9d129f56c22275},
journal = {CoRR},
keywords = {dblp},
timestamp = {2018-08-14T12:24:08.000+0200},
title = {Julia: A Fast Dynamic Language for Technical Computing},
url = {http://dblp.uni-trier.de/db/journals/corr/corr1209.html#abs-1209-5145},
volume = {abs/1209.5145},
year = {2012}
}
@MastersThesis{jeff-master,
author = {Bezanson, Jeff},
title = {Julia: An Efficient Dynamic Language for Technical Computing},
school = {Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science},
year = {2012},
url={https://dspace.mit.edu/handle/1721.1/74897}
}
@misc{jameson,
author = {Nash, Jameson},
title = {{Inference Convergence Algorithm in Julia – Julia Computing}},
howpublished = {\url{https://juliacomputing.com/blog/2016/04/04/inference-convergence.html}},
year = {2016},
note = {(Accessed on 2020-01-22)}
}
@misc{jameson-revisited,
author = {Nash, Jameson},
title = {{Inference Convergence Algorithm in Julia - Revisited – Julia Computing}},
howpublished = {\url{https://juliacomputing.com/blog/2017/05/15/inference-converage2.html}},
note = {(Accessed on 2020-01-30)}
}
@inproceedings{abstract-interpretation,
author = {Cousot, Patrick and Cousot, Radhia},
year = {1977},
month = {01},
pages = {238-252},
title = {Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints},
doi = {10.1145/512950.512973}
}
@article{scheme-for-automatic-inference,
author = {Kaplan, Marc A. and Ullman, Jeffrey D.},
title = {A Scheme for the Automatic Inference of Variable Types},
year = {1980},
issue_date = {January 1980},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {27},
number = {1},
issn = {0004-5411},
url = {https://doi.org/10.1145/322169.322181},
doi = {10.1145/322169.322181},
journal = {J. ACM},
month = jan,
pages = {128--145},
numpages = {18}
}
@inproceedings{graph-free-data-flow-analysis,
author = {Mohnen, Markus},
title = {A Graph-Free Approach to Data-Flow Analysis},
year = {2002},
isbn = {3540433694},
publisher = {Springer-Verlag},
address = {Berlin, Heidelberg},
booktitle = {Proceedings of the 11th International Conference on Compiler Construction},
pages = {46--61},
numpages = {16},
series = {CC ’02}
}
%%% adapted from https://github.com/JuliaLang/julia/blob/master/CITATION.bib %%%
% This article is the definitive citation for Julia.
@article{Julia-2017,
title={Julia: A fresh approach to numerical computing},
author={Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B},
journal={SIAM {R}eview},
volume={59},
number={1},
pages={65--98},
year={2017},
publisher={SIAM},
doi={10.1137/141000671}
}
% The following citations are about specific aspects of Julia.
@article{Julia-2019-a,
author = {Bezanson, Jeff and Chen, Jiahao and Chung, Benjamin and Karpinski, Stefan and Shah, Viral B. and Vitek, Jan and Zoubritzky, Lionel},
title = {Julia: Dynamism and Performance Reconciled by Design},
journal = {Proc. ACM Program. Lang.},
issue_date = {November 2018},
volume = {2},
number = {OOPSLA},
month = oct,
year = {2018},
issn = {2475-1421},
pages = {120:1--120:23},
articleno = {120},
numpages = {23},
url = {http://doi.acm.org/10.1145/3276490},
doi = {10.1145/3276490},
acmid = {3276490},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {dynamic languages, just-in-time compilation, multiple dispatch},
}
@article{Julia-2019-b,
author = {Zappa Nardelli, Francesco and Belyakova, Julia and Pelenitsyn, Artem and Chung, Benjamin and Bezanson, Jeff and Vitek, Jan},
title = {Julia Subtyping: A Rational Reconstruction},
journal = {Proc. ACM Program. Lang.},
issue_date = {November 2018},
volume = {2},
number = {OOPSLA},
month = oct,
year = {2018},
issn = {2475-1421},
pages = {113:1--113:27},
articleno = {113},
numpages = {27},
url = {http://doi.acm.org/10.1145/3276483},
doi = {10.1145/3276483},
acmid = {3276483},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Multiple Dispatch, Subtyping},
}
@inproceedings{Julia-2014,
author = {Bezanson, Jeff and Chen, Jiahao and Karpinski, Stefan and Shah, Viral and Edelman, Alan},
title = {Array Operators Using Multiple Dispatch: A Design Methodology for Array Implementations in Dynamic Languages},
booktitle = {Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming},
series = {ARRAY'14},
year = {2014},
isbn = {978-1-4503-2937-8},
location = {Edinburgh, United Kingdom},
pages = {56:56--56:61},
articleno = {56},
numpages = {6},
url = {http://doi.acm.org/10.1145/2627373.2627383},
doi = {10.1145/2627373.2627383},
acmid = {2627383},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Julia, array indexing, dynamic dispatch, multiple dispatch, static analysis, type inference},
}
%%% one-time reference %%%
@misc{julia,
title = {{The Julia Language}},
howpublished = {\url{https://julialang.org/}},
note = {(Accessed on 2020-01-22)}
}
@misc{julia-repo,
title = {{JuliaLang/julia: The Julia Language: A fresh approach to technical computing.}},
howpublished = {\url{https://github.com/JuliaLang/julia}},
note = {(Accessed on 2020-01-27)}
}
@misc{julia-growth,
author = {{Julia Computing}},
title = {{Newsletter January 2020 – Julia Computing}},
howpublished = {\url{https://juliacomputing.com/blog/2020/01/06/january-newsletter.html}},
note = {(Accessed on 2020-01-22)}
}
@article{numpy,
author = {St{\'e}fan van der Walt and
S. Chris Colbert and
Ga{\"e}l Varoquaux},
title = {The {NumPy} array: a structure for efficient numerical computation},
journal = {CoRR},
volume = {abs/1102.1523},
year = {2011},
ee = {http://arxiv.org/abs/1102.1523},
bibsource = {DBLP, http://dblp.uni-trier.de}
}
@InProceedings{LLVM,
author = {Chris Lattner and Vikram Adve},
title = {{LLVM}: A Compilation Framework for Lifelong Program Analysis \& Transformation},
booktitle = "{Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04)}",
address = {Palo Alto, California},
month = {Mar},
year = 2004
}
@manual{type-annotation,
title = {{Julia Documentation - Performance Tips - Annotate values taken from untyped locations}},
url = {https://docs.julialang.org/en/v1/manual/performance-tips/#Annotate-values-taken-from-untyped-locations-1},
urldate = {2020-01-19}
}
@article{DunningHuchetteLubin2017,
author = {Iain Dunning and Joey Huchette and Miles Lubin},
title = {JuMP: A Modeling Language for Mathematical Optimization},
journal = {SIAM Review},
volume = {59},
number = {2},
pages = {295-320},
year = {2017},
doi = {10.1137/15M1020575},
}
@manual{eval-of-julia-code,
title = {{Julia Documentation - Developer Documentation - Eval of Julia code}},
howpublished = {\url{https://docs.julialang.org/en/latest/devdocs/eval/#Eval-of-Julia-code-1}},
note = {(Accessed on 2020-01-27)}
}
@manual{julia-asts,
title = {{Julia Documentation - Developer Documentation - Julia ASTs}},
howpublished = {\url{https://docs.julialang.org/en/latest/devdocs/ast/}},
note = {(Accessed on 2020-01-27)}
}
@misc{julia-ssa,
title = {{Julia Documentation - Developer Documentation - Julia SSA-form IR}},
howpublished = {\url{https://docs.julialang.org/en/latest/devdocs/ssair/}},
note = {(Accessed on 2020-02-03)}
}
@misc{staticlint,
author = {julia-vscode},
title = {{StaticLint.jl - Static Code Analysis for Julia}},
howpublished = {\url{https://github.com/julia-vscode/StaticLint.jl}},
note = {(Accessed on 2020-01-24)}
}
@misc{mypy,
title = {{mypy - Optional Static Typing for Python}},
howpublished = {\url{http://www.mypy-lang.org/}},
note = {(Accessed on 2020-01-19)}
}
@misc{dropbox,
title = {{Our journey to type checking 4 million lines of Python | Dropbox Tech Blog}},
howpublished = {\url{https://blogs.dropbox.com/tech/2019/09/our-journey-to-type-checking-4-million-lines-of-python/}},
note = {(Accessed on 2020-01-20)}
}
@misc{flow,
author = {{FaceBook}},
title = {{Flow - Adds static typing to JavaScript to improve developer productivity and code quality.}},
howpublished = {\url{https://github.com/facebook/flow}},
note = {(Accessed on 2020-01-19)}
}
@misc{steep,
author = {Matsumoto, Soutaro},
title = {{Steep - Gradual Typing for Ruby}},
howpublished = {\url{https://github.com/soutaro/steep}},
note = {(Accessed on 2020-01-19)}
}
@misc{typescript,
author = {Microsoft},
title = {{TypeScript - JavaScript that scales.}},
howpublished = {\url{https://www.typescriptlang.org/}},
note = {(Accessed on 2020-01-19)}
}
@inproceedings{type-analysis-for-javascript,
author = "Jensen, Simon Holm and M{\o}ller, Anders and Thiemann, Peter",
editor = "Palsberg, Jens and Su, Zhendong",
title = "Type Analysis for JavaScript",
booktitle = "Static Analysis",
year = "2009",
publisher = "Springer Berlin Heidelberg",
address = "Berlin, Heidelberg",
pages = "238--255",
abstract = "JavaScript is the main scripting language for Web browsers, and it is essential to modern Web applications. Programmers have started using it for writing complex applications, but there is still little tool support available during development.",
isbn = "978-3-642-03237-0"
}
@article{milner,
title = "A theory of type polymorphism in programming",
journal = "Journal of Computer and System Sciences",
volume = "17",
number = "3",
pages = "348 - 375",
year = "1978",
issn = "0022-0000",
doi = "https://doi.org/10.1016/0022-0000(78)90014-4",
url = "http://www.sciencedirect.com/science/article/pii/0022000078900144",
author = "Robin Milner",
abstract = "The aim of this work is largely a practical one. A widely employed style of programming, particularly in structure-processing languages which impose no discipline of types, entails defining procedures which work well on objects of a wide variety. We present a formal type discipline for such polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm W which enforces the discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot “go wrong” and a Syntactic Soundness Theorem states that if W accepts a program then it is well typed. We also discuss extending these results to richer languages; a type-checking algorithm based on W is in fact already implemented and working, for the metalanguage ML in the Edinburgh LCF system."
}
@article{wadler1998expression,
title={The expression problem},
author={Wadler, Philip},
journal={Java-genericity mailing list},
year={1998}
}
@inproceedings{gradual-typing,
author = {Siek, Jeremy and Taha, Walid},
year = {2006},
month = {01},
pages = {},
title = {Gradual typing for functional languages},
journal = {Scheme and Functional Programming}
}
@misc{what-is-gradual-typing,
title = {{What is Gradual Typing | Jeremy Siek}},
howpublished = {\url{https://wphomes.soic.indiana.edu/jsiek/what-is-gradual-typing/}},
note = {(Accessed on 2020-02-03)}
}
@manual{type-stability,
title = {{Julia Documentation - Performance Tips - Write "type-stable" functions}},
howpublished = {\url{https://docs.julialang.org/en/v1/manual/performance-tips/#Write-%22type-stable%22-functions-1}},
note = {(Accessed on 2020-02-05)}
}