[3]
Jon Bentley. 1985. Programming Pearls: A Spelling Checker. Commun.
ACM 28, 5 (May 1985), 456–462. hps://doi.org/10.1145/3532.315102
[4]
Jon Bentley, Don Knuth, and Doug McIlroy. 1986. Programming Pearls:
A Literate Program. Commun. ACM 29, 6 (June 1986), 471–483. hps:
//doi.org/10.1145/5948.315654
[5]
Pawan Bhandari. 2020. Solutions to unixgame.io. hps://git.io/Jf2dn
Accessed: 2020-04-14.
[6]
Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fata-
halian, Mike Houston, and Pat Hanrahan. 2004. Brook for GPUs:
Stream Computing on Graphics Hardware. ACM Trans. Graph. 23, 3
(2004), 777–786. hps://doi.org/10.1145/1015706.1015800
[7]
Michael Burke and Ron Cytron. 1986. Interprocedural Dependence
Analysis and Parallelization. In Proceedings of the 1986 SIGPLAN Sym-
posium on Compiler Construction (SIGPLAN ’86). ACM, New York, NY,
USA, 162–175. hps://doi.org/10.1145/12276.13328
[8]
Paris Carbone, Asterios Katsifodimos, Stephan Ewen, Volker Markl,
Seif Haridi, and Kostas Tzoumas. 2015. Apache Flink: Stream and
Batch Processing in a Single Engine. IEEE Data Eng. Bull. 38 (2015),
28–38.
[9]
Jerey Dean and Sanjay Ghemawat. 2008. MapReduce: Simplied
Data Processing on Large Clusters. Commun. ACM 51, 1 (Jan. 2008),
107–113. hps://doi.org/10.1145/1327452.1327492
[10]
Tom Du. 1990. Rc-A shell for Plan 9 and Unix systems. AUUGN 12,
1 (1990), 75.
[11]
Je Epstein, Andrew P. Black, and Simon Peyton-Jones. 2011. Towards
Haskell in the Cloud. In Proceedings of the 4th ACM Symposium on
Haskell (Haskell ’11). ACM, New York, NY, USA, 118–129. hps:
//doi.org/10.1145/2034675.2034690
[12]
Yuan Yu Michael Isard Dennis Fetterly, Mihai Budiu, Úlfar Erlingsson,
and Pradeep Kumar Gunda Jon Currey. 2009. DryadLINQ: A system for
general-purpose distributed data-parallel computing using a high-level
language. Proc. LSDS-IR 8 (2009).
[13]
Matteo Frigo, Charles E Leiserson, and Keith H Randall. 1998. The
implementation of the Cilk-5 multithreaded language. ACM Sigplan
Notices 33, 5 (1998), 212–223.
[14]
Wolfgang Gentzsch. 2001. Sun grid engine: Towards creating a com-
pute power grid. In Proceedings First IEEE/ACM International Sympo-
sium on Cluster Computing and the Grid. IEEE, 35–36.
[15]
Michael I Gordon, William Thies, Michal Karczmarek, Jasper Lin, Ali S
Meli, Andrew A Lamb, Chris Leger, Jeremy Wong, Henry Homann,
David Maze, et al
.
2002. A stream compiler for communication-exposed
architectures. In ACM SIGOPS Operating Systems Review, Vol. 36. ACM,
291–303.
[16]
Michael I. Gordon, William Thies, Michal Karczmarek, Jasper Lin,
Ali S. Meli, Andrew A. Lamb, Chris Leger, Jeremy Wong, Henry Ho-
mann, David Maze, and Saman Amarasinghe. 2002. A Stream Com-
piler for Communication-Exposed Architectures. In Proceedings of
the 10th International Conference on Architectural Support for Pro-
gramming Languages and Operating Systems (ASPLOS X). Associ-
ation for Computing Machinery, New York, NY, USA, 291âĂŞ303.
hps://doi.org/10.1145/605397.605428
[17]
Michael Greenberg. 2018. The POSIX shell is an interactive DSL for
concurrency. hps://cs.pomona.edu/~michael/papers/dsldi2018.pdf.
[18]
The Open Group. 2018. POSIX. hps://pubs.opengroup.org/
onlinepubs/9699919799/. [Online; accessed November 22, 2019].
[19]
Mary W Hall, Jennifer M Anderson, Saman P. Amarasinghe, Brian R
Murphy, Shih-Wei Liao, Edouard Bugnion, and Monica S Lam. 1996.
Maximizing multiprocessor performance with the SUIF compiler. Com-
puter 29, 12 (1996), 84–89.
[20]
Shivam Handa, Konstantinos Kallas, Nikos Vasilakis, and Martin Ri-
nard. 2020. An Order-aware Dataow Model for Extracting Shell Script
Parallelism. arXiv preprint arXiv:2012.15422 (2020).
[21]
Martin Hirzel, Robert Soulé, Scott Schneider, Buğra Gedik, and Robert
Grimm. 2014. A Catalog of Stream Processing Optimizations. ACM
Computing Surveys (CSUR) 46, 4, Article 46 (March 2014), 34 pages.
hps://doi.org/10.1145/2528412
[22]
Lluis Batlle i Rossell. 2016. tsp(1) Linux User’s Manual.
https://vicerveza.homeunix.net/ viric/soft/ts/.
[23]
Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis
Fetterly. 2007. Dryad: distributed data-parallel programs from sequen-
tial building blocks. In Proceedings of the 2nd ACM SIGOPS/EuroSys
European Conference on Computer Systems 2007. 59–72.
[24]
Makoto Ishihara, Hiroki Honda, and Mitsuhisa Sato. 2006. Develop-
ment and implementation of an interactive parallelization assistance
tool for OpenMP: iPat/OMP. IEICE transactions on information and
systems 89, 2 (2006), 399–407.
[25]
Konstantinos Kallas, Filip Niksic, Caleb Stanford, and Rajeev Alur.
2020. DiStream: Dierential Output Testing for Stream Processing
Programs. Proceedings of the ACM on Programming Languages 4,
OOPSLA (2020), 1–29.
[26]
Ken Kennedy, Kathryn S McKinley, and C-W Tseng. 1991. Interactive
parallel programming using the ParaScope Editor. IEEE Transactions
on Parallel and Distributed Systems 2, 3 (1991), 329–341.
[27] Charles Edwin Killian, James W. Anderson, Ryan Braud, Ranjit Jhala,
and Amin M. Vahdat. 2007. Mace: Language Support for Building Dis-
tributed Systems. In Proceedings of the 28th ACM SIGPLAN Conference
on Programming Language Design and Implementation (PLDI ’07). ACM,
New York, NY, USA, 179–188. hps://doi.org/10.1145/1250734.1250755
[28]
Milind Kulkarni, Keshav Pingali, Bruce Walter, Ganesh Rama-
narayanan, Kavita Bala, and L Paul Chew. 2007. Optimistic parallelism
requires abstractions. ACM SIGPLAN Notices 42, 6 (2007), 211–222.
[29]
Nokia Bell Labs. 2019. The Unix Game—Solve puzzles using Unix pipes.
hps://unixgame.io/unix50 Accessed: 2020-03-05.
[30]
Amy W. Lim and Monica S. Lam. 1997. Maximizing Parallelism and
Minimizing Synchronization with Ane Transforms. In Proceedings
of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Pro-
gramming Languages (POPL ’97). ACM, New York, NY, USA, 201–214.
hps://doi.org/10.1145/263699.263719
[31]
Konstantinos Mamouras, Caleb Stanford, Rajeev Alur, Zachary G. Ives,
and Val Tannen. 2019. Data-Trace Types for Distributed Stream Pro-
cessing Systems. In Proceedings of the 40th ACM SIGPLAN Conference on
Programming Language Design and Implementation (PLDI 2019). ACM,
New York, NY, USA, 670–685. hps://doi.org/10.1145/3314221.3314580
[32]
Chris McDonald and Trevor I Dix. 1988. Support for graphs of pro-
cesses in a command interpreter. Software: Practice and Experience 18,
10 (1988), 1011–1016.
[33]
Malcolm D McIlroy, Elliot N Pinson, and Berkley A Tague. 1978. UNIX
Time-Sharing System: Foreword. Bell System Technical Journal 57, 6
(1978), 1899–1904.
[34]
Peter M McIlroy, Keith Bostic, and M Douglas McIlroy. 1993. Engi-
neering radix sort. Computing systems 6, 1 (1993), 5–27.
[35]
Frank McSherry, Michael Isard, and Derek G Murray. 2015. Scalability!
But at what COST?. In 15th Workshop on Hot Topics in Operating
Systems (HotOS XV).
[36]
Sape J Mullender, Guido Van Rossum, AS Tanenbaum, Robbert Van Re-
nesse, and Hans Van Staveren. 1990. Amoeba: A distributed oper-
ating system for the 1990s. Computer 23, 5 (1990), 44–53. hps:
//www.cs.cornell.edu/home/rvr/papers/Amoeba1990s.pdf
[37]
Derek G. Murray, Frank McSherry, Rebecca Isaacs, Michael Isard, Paul
Barham, and Martín Abadi. 2013. Naiad: A Timely Dataow System.
In Proceedings of the Twenty-Fourth ACM Symposium on Operating
Systems Principles (SOSP ’13). ACM, New York, NY, USA, 439–455.
hps://doi.org/10.1145/2517349.2522738
[38]
National Oceanic and Atmospheric Administration. 2017. National
Climatic Data Center. hps://www.ncdc.noaa.gov/.
[39]
John K Ousterhout, Andrew R. Cherenson, Fred Douglis, Michael N.
Nelson, and Brent B. Welch. 1988. The Sprite network operating
system. Computer 21, 2 (1988), 23–36. hp://www.research.ibm.com/
15
63