text:
.2462161},
 acmid = {2462161},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {functional reactive programming, graphical user interfaces},
}

@inproceedings{Rudolph:1991:SLB:113379.113401,
 author = {Rudolph, Larry and Slivkin-Allalouf, Miriam and Upfal, Eli},
 title = {A Simple Load Balancing Scheme for Task Allocation in Parallel Machines},
 booktitle = {Proceedings of the 3\xrd Annual ACM Symposium on Parallel Algorithms and Architectures},
 series = {SPAA'91},
 year = {1991},
 isbn = {0-89791-438-4},
 OPTlocation = {Hilton Head, South Carolina, USA},
 pages = {237--245},
 numpages = {9},
 OPTurl = {http://doi.acm.org/10.1145/113379.113401},
 doi = {10.1145/113379.113401},
 acmid = {113401},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
}
@inproceedings{Dinan:2009:SWS:1654059.1654113,
 author = {Dinan, James and Larkins, D. Brian and Sadayappan, P. and Krishnamoorthy, Sriram and Nieplocha, Jarek},
 title = {Scalable Work Stealing},
 booktitle = {Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis},
 series = {SC'09},
 year = {2009},
 isbn = {978-1-60558-744-8},
 OPTlocation = {Portland, Oregon},
 pages = {53:1--53:11},
 articleno = {53},
 numpages = {11},
 OPTurl = {http://doi.acm.org/10.1145/1654059.1654113},
 doi = {10.1145/1654059.1654113},
 acmid = {1654113},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
 keywords = {ARMCI, PGAS, dynamic load balancing, global arrays, task pools, work stealing},
}
@article{BUONO20102095,
title = "Map, reduce and mapreduce, the skeleton way",
journal = "Procedia Computer Science",
volume = "1",
number = "1",
pages = "2095--2103",
year = "2010",
note = "ICCS 2010",
issn = "1877-0509",
doi = "https://doi.org/10.1016/j.procs.2010.04.234",
OPTurl = "http://www.sciencedirect.com/science/article/pii/S1877050910002358",
author = "D. Buono and M. Danelutto and S. Lametti",
keywords = "Algorithmic skeletons, Map, Reduce, List theory, Homomorphisms"
}
@inproceedings{Dastgeer:2011:ASM:1984693.1984697,
 author = {Dastgeer, Usman and Enmyren, Johan and Kessler, Christoph W.},
 title = {Auto-tuning {SkePU}: A Multi-backend Skeleton Programming Framework for multi-{GPU} Systems},
 booktitle = {Proceedings of the 4\xth International Workshop on Multicore Software Engineering},
 series = {IWMSE'11},
 year = {2011},
 isbn = {978-1-4503-0577-8},
 OPTlocation = {Waikiki, Honolulu, HI, USA},
 pages = {25--32},
 numpages = {8},
 OPTurl = {http://doi.acm.org/10.1145/1984693.1984697},
 doi = {10.1145/1984693.1984697},
 acmid = {1984697},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
 keywords = {auto-tuning, cuda, data parallelism, gpu, opencl, skeleton programming},
}
@INPROCEEDINGS{5361825,
author={Y. Karasawa and H. Iwasaki},
booktitle={International Conference on Parallel Processing 2009},
title={A Parallel Skeleton Library for Multi-core Clusters},
year={2009},
OPTvolume={},
OPTnumber={},
pages={84--91},
keywords={C++ language;libraries;parallel processing;scheduling;C++ language;SkeTo;distributed environments;generic patterns;multi-core CPU;multi-core clusters;parallel skeleton library;recurring patterns;template techniques;two-stage dynamic task scheduling strategy;Concurrent computing;Costs;Distributed computing;Dynamic scheduling;Libraries;Multicore processing;Parallel processing;Parallel programming;Processor scheduling;Skeleton;dynamic load balancing;matrix skeletons;multi-core;parallel skeleton library},
doi={10.1109/ICPP.2009.18},
ISSN={0190-3918},
OPTmonth={Sept},}

@inproceedings{Kuchen2002,
author="Kuchen, Herbert",
editor="Monien, Burkhard
and Feldmann, Rainer",
title="A Skeleton Library",
LongBookTitle="Euro-Par 2002 Parallel Processing: 8th International Euro-Par Conference Paderborn, Germany, August 27--30, 2002 Proceedings",
booktitle="Parallel Processing",
series="Euro-Par'02",
year="2002",
longpublisher="Springer Berlin Heidelberg",
publisher="Springer",
OPTaddress="Berlin, Heidelberg",
pages="620--629",
abstract="Today, parallel programming is dominated by message passing libraries such as MPI. Algorithmic skeletons intend to simplify parallel programming by increasing the expressive power. The idea is to offer typical parallel programming patterns as polymorphic higher-order functions which are efficiently implemented in parallel. The approach presented here integrates the main features of existing skeleton systems. Moreover, it does not come along with a new programming language or language extension, which parallel programmers may hesitate to learn, but it is offered in form of a library, which can easily be used by e.g. C and C++ programmers. A major technical difficulty is to simulate the main requirements for a skeleton implementation, namely higher-order functions, partial applications, and polymorphism as efficiently as possible in an imperative programming language. Experimental results based on a draft implementation of the suggested skeleton library show that this can be achieved without a significant performance penalty.",
isbn="978-3-540-45706-0",
doi="10.1007/3-540-45706-2_86",
OPTurl="https://doi.org/10.1007/3-540-45706-2_86"
}

@Inbook{Bischof2002,
author="Bischof, Holger
and Gorlatch, Sergei",
editor="Monien, Burkhard
and Feldmann, Rainer",
title="Double-Scan: Introducing and Implementing a New Data-Parallel Skeleton",
LongBookTitle="Euro-Par 2002 Parallel Processing: 8th International Euro-Par Conference Paderborn, Germany, August 27--30, 2002 Proceedings",
booktitle="Parallel Processing",
series="Euro-Par'02",
year="2002",
longpublisher="Springer Berlin Heidelberg",
publisher="Springer",
OPTaddress="Berlin, Heidelberg",
pages="640--647",
abstract="We introduce a new reusable component for parallel programming, the double- scan skeleton. For this skeleton, we formulate and formally prove sufficient conditions under which the double-scan can be parallelized, and develop its efficient MPI implementation. The solution of a tridiagonal system of equations is considered as our case study. We describe how this application can be developed using the double-scan and report experimental results for both absolute performance and performance predictability of the skeleton-based solution.",
isbn="978-3-540-45706-0",
doi="10.1007/3-540-45706-2_88",
OPTurl="https://doi.org/10.1007/3-540-45706-2_88"
}

@article{harris2007parallel,
  title={Parallel prefix sum (scan) with {CUDA}},
  author={Harris, Mark and Sengupta, Shubhabrata and Owens, John D},
  journal={{GPU} gems},
  volume={3},
  number={39},
  pages={851--876},
  year={2007}
}
@article{LAMMEL20081,
title = "Google’s MapReduce programming model — Revisited",
journal = "Science of Computer Programming",
volume = "70",
number = "1",
pages = "1--30",
year = "2008",
issn = "0167-6423",
doi = "10.1016/j.scico.2007.07.001",
OPTurl = "http://www.sciencedirect.com/science/article/pii/S0167642307001281",
author = "Ralf Lämmel",
keywords = "Data processing, Parallel programming, Distributed programming, Software design, Executable specification, Typed functional programming, MapReduce, Sawzall, Map, Reduce, List homomorphism, Haskell"
}
@inproceedings{Acar:2000:DLW:341800.341801,
 author = {Acar, Umut A. and Blelloch, Guy E. and Blumofe, Robert D.},
 title = {The Data Locality of Work Stealing},
 booktitle = {Proceedings of the 12\xth Annual ACM Symposium on Parallel Algorithms and Architectures},
 series = {SPAA'00},
 year = {2000},
 isbn = {1-58113-185-2},
 OPTlocation = {Bar Harbor, Maine, USA},
 pages = {1--12},
 numpages = {12},
 OPTurl = {http://doi.acm.org/10.1145/341800.341801},
 doi = {10.1145/341800.341801},
 acmid = {341801},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
}
@article{Blumofe:1999:SMC:324133.324234,
 author = {Blumofe, Robert D. and Leiserson, Charles E.},
 title = {Scheduling Multithreaded Computations by Work Stealing},
 journal = {J. ACM},
 issue_date = {Sept. 1999},
 volume = {46},
 number = {5},
 month = sep,
 year = {1999},
 issn = {0004-5411},
 pages = {720--748},
 numpages = {29},
 OPTurl = {http://doi.acm.org/10.1145/324133.324234},
 doi = {10.1145/324133.324234},
 acmid = {324234},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
 keywords = {critical-path length, multiprocessor, multithreading, randomized algorithm, thread scheduling, work stealing},
}
@inproceedings{Chase:2005:DCW:1073970.1073974,
 author = {Chase, David and Lev, Yossi},
 title = {Dynamic Circular Work-stealing Deque},
 booktitle = {Proceedings of the 17\xth Annual ACM Symposium on Parallelism in Algorithms and Architectures},
 series = {SPAA'05},
 year = {2005},
 isbn = {1-58113-986-1},
 OPTlocation = {Las Vegas, Nevada, USA},
 pages = {21--28},
 numpages = {8},
 OPTurl = {http://doi.acm.org/10.1145/1073970.1073974},
 doi = {10.1145/1073970.1073974},
 acmid = {1073974},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
 keywords = {deque, load balancing, lock-free, work stealing},
}
@article{Michael:2009:IWS:1594835.1504186,
 author = {Michael, Maged M. and Vechev, Martin T. and Saraswat, Vijay A.},
 title = {Idempotent Work Stealing},
 journal = {{SIGPLAN} Not.},
 issue_date = {April 2009},
 volume = {44},
 number = {4},
 OPTmonth = feb,
 year = {2009},
 issn = {0362-1340},
 pages = {45--54},
 numpages = {10},
 OPTurl = {http://doi.acm.org/10.1145/1594835.1504186},
 doi = {10.1145/1594835.1504186},
 acmid = {1504186},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
 keywords = {atomic, memory barrier, memory fence, work stealing},
}
@article{vanNieuwpoort:2001:ELB:568014.379563,
 author = {van Nieuwpoort, Rob V. and Kielmann, Thilo and Bal, Henri E.},
 title = {Efficient Load Balancing for Wide-area Divide-and-conquer Applications},
 journal = {{SIGPLAN} Not.},
 issue_date = {July 2001},
 volume = {36},
 number = {7},
 month = jun,
 year = {2001},
 issn = {0362-1340},
 pages = {34--43},
 numpages = {10},
 url = {http://doi.acm.org/10.1145/568014.379563},
 doi = {10.1145/568014.379563},
 acmid = {379563},
 publisher = {ACM},
 OPTaddress = {New York, NY, USA},
 keywords = {Java, clustered wide-area systems, distributed supercomputing},
}
@INPROCEEDINGS{4625841,
author={S. Olivier and J. Prins},
booktitle={37\xth International Conference on Parallel Processing},
title={Scalable Dynamic Load Balancing Using {UPC}},
year={2008},
OPTvolume={},
OPTnumber={},
pages={123--131},
keywords={parallel programming;resource allocation;tree data structures;tree searching;UPC;Unified Parallel C;asynchronous work-stealing implementation;available work dissemination;distributed memory;scalable dynamic load balancing;shared memory;synthetic tree-structured search space;termination detection cost;unbalanced tree search;Aerodynamics;Computer science;Cost function;Delay;Hardware;Load management;Parallel processing;Protocols;Read-write memory;State-space methods;Unbalanced Tree Search benchmark;Unified Parallel C;distributed memory systems;load balancing;performance analysis;unbalanced parallel computations;work stealing},
doi={10.1109/ICPP.2008.19},
ISSN={0190-3918},
OPTmonth={Sept},}
@article{DANELUTTO1992205,
title = "A methodology for the development and the support of massively parallel programs",
journal = "Future Generation Computer Systems",
volume = "8",
number = "1",
pages = "205--220",
year = "1992",
issn = "0167-739X",
doi = "10.1016/0167-739X(92)90040-I",
OPTurl = "http://www.sciencedirect.com/science/article/pii/0167739X9290040I",
author = "Marco Danelutto and Roberto Di Meglio and Salvatore Orlando and Susanna Pelagatti and Marco Vanneschi",
keywords = "Massive parallelism, optimization tools, MIMD architectures, high level languages",
comment = "p3l",
}
@inproceedings{ghemawat2004mapreduce,
 author = {Dean, Jeffrey and Ghemawat, Sanjay},
 title = {{MapReduce}: simplified data processing on large clusters},
 booktitle = {{OSDI} 2004 --- 6\xth Symposium on Operating Systems Design And Implementation},
 year = {2004},
 location = {San Francisco, CA},
 pages = {10},
 numpages = {1},
 url = {http://portal.acm.org/citation.cfm?id=1251254.1251264},
 acmid = {1251264},
 volume = {6},
 publisher = {USENIX Association},
 address = {Berkeley, CA, USA},
}
@inproceedings{dean2006experiences,
  title={Experiences with {MapReduce}, an abstraction for large-scale computation},
  author={Dean, J.},
  booktitle={Proceedings of the 15\xth International Conference on Parallel Architectures And Compilation Techniques},
  year={2006},
  organization={ACM}
}
@article{Dean:2008:MSD:1327452.1327492,
 author = {Dean, Jeffrey and Ghemawat, Sanjay},
 title = {{MapReduce}: simplified data processing on large clusters},
 journal = {Communications of the ACM},
 issue_date = {January 2008},
 volume = {51},
 issue = {1},
 OPTmonth = {January},
 year = {2008},
 issn = {0001-0782},
 pages = {107--113},
 numpages = {7},
 DOUBLEurl = {http://doi.acm.org/10.1145/1327452.1327492},
 doi = {http://doi.acm.org/10.1145/1327452.1327492},
 acmid = {1327492},
 publisher = theacm,
 OPTaddress = {New York, NY, USA},
}
@article{Dean:2010:MFD:1629175.1629198,
 author = {Dean, Jeffrey and Ghemawat, Sanjay},
 title = {{MapReduce}: a flexible data processing tool},
 journal = {Communications of the ACM},
 issue_date = {January 2010},
 volume = {53},
 issue = {1},
 OPTmonth = {January},
 year = {2010},
 issn = {0001-0782},
 pages = {72--77},
 numpages = {6},
 DOUBLEurl = {http://doi.acm.org/10.1145/1629175.1629198},
 doi = {http://doi.acm.org/10.1145/1629175.1629198},
 acmid = {1629198},
 publisher = theacm,
 OPTaddress = {New York, NY, USA},
}

@inproceedings{He:2008:MMF:1454115.1454152,
 author = {He, Bingsheng and Fang, Wenbin and Luo, Qiong and Govindaraju, Naga K. and Wang, Tuyong},
 title = {Mars: a {MapReduce} framework on graphics processors},
 booktitle = {Proceedings of the 17\xth international conference on Parallel architectures and compilation techniques},
 series = {PACT'08},
 year = {2008},
 isbn = {978-1-60558-282-5},
 OPTlocation = {Toronto, Ontario, Canada},
 pages = {260--269},
 numpages = {10},
 DOUBLEurl = {http://doi.acm.org/10.1145/1454115.1454152},
 doi = {http://doi.acm.org/10.1145/1454115.1454152},
 acmid = {1454152},
 publisher = theacm,
 OPTaddress = {New York, NY, USA},
 keywords = {GPGPU, MapReduce, data parallelism, graphics processor, multi-core processors, web analysis},
}

@article{de2009mapreduce,
  title={{MapReduce} for the {Cell} {Broadband} {Engine} architecture},
  author={de Kruijf, M. and Sankaralingam, K.},
  journal={IBM Journal of Research and Development},
  volume={53},
  number={5},
  pages={10--1},
  year={2009},
  publisher={IBM}
}
@Misc{hadoop,
  key =		 {Hadoop, 2011},
  OPTauthor =	 {},
  title =	 {Apache Hadoop},
  howpublished = {Website},
  OPTmonth =	 {},
  year =	 {2011},
  note =	 {Retrieved 9.7.2011},
  url =		 {http://hadoop.apache.org/},
  OPTannote =	 {}
}

@inproceedings{Zaharia:2008:IMP:1855741.1855744,
 author = {Zaharia, Matei and Konwinski, Andy and Joseph, Anthony D. and Katz, Randy and Stoica, Ion},
 title = {Improving {MapReduce} performance in heterogeneous environments},
 booktitle = {Proceedings of the 8\xth {USENIX} Conference on Operating Systems Design and Implementation},
 series = {OSDI'08},
 year = {2008},
 OPTlocation = {San Diego, California},
 pages = {29--42},
 numpages = {14},
 url = {http://portal.acm.org/citation.cfm?id=1855741.1855744},
 acmid = {1855744},
 publisher = {USENIX Association},
 OPTaddress = {Berkeley, CA, USA},
 mynote = {hadoop}
}

@article{boisseau_what_2018,
	title = {What You Needa Know About {Yoneda}: Profunctor Optics and the {Yoneda} Lemma (Functional Pearl)},
	volume = {2},
	issn = {2475-1421},
	Xurl = {http://doi.acm.org/10.1145/3236779},
	doi = {10.1145/3236779},
	shorttitle = {What You Needa Know About Yoneda},
	abstract = {Profunctor optics are a neat and composable representation of bidirectional data accessors, including lenses, and their dual, prisms. The profunctor representation exploits higher-order functions and higher-kinded type constructor classes, but the relationship between this and the familiar representation in terms of "getter" and "setter" functions is not at all obvious. We derive the profunctor representation from the concrete representation, making the relationship clear. It turns out to be a fairly direct application of the Yoneda Lemma, arguably the most important result in category theory. We hope this derivation aids understanding of the profunctor representation. Conversely, it might also serve to provide some insight into the Yoneda Lemma.},
	pages = {84:1--84:27},
	issue = {{ICFP}},
	journal = {Proc.\ {ACM} Program.\ Lang.},
	author = {Boisseau, Guillaume and Gibbons, Jeremy},
	Xurldate = {2019-12-27},
	date = {2018-07},
	year = {2018},
	month = jul,
	keywords = {composable references, Lens, optic, prism, profunctors, Yoneda Lemma},
	file = {ACM Full Text PDF:/Users/oleg/Zotero/storage/SFD35V44/Boisseau and Gibbons - 2018 - What You Needa Know About Yoneda Profunctor Optic.pdf:application/pdf}
}

@article{eppendahl_coalgebra--algebra_1999,
	title = {Coalgebra-to-Algebra Morphisms},
	volume = {29},
	issn = {1571-0661},
	url = {http://www.sciencedirect.com/science/article/pii/S1571066105803056},
	doi = {10.1016/S1571-0661(05)80305-6},
	series = {{CTCS}'99, Conference on Category Theory and Computer Science},
	abstract = {Given a coalgebra p for {HG}, an algebra s for {GH} and the obvious notion of morphism from coalgebra to algebra, we observe that morphisms from Gp to s correspond to morphisms from p to Hs in the manner of an adjunction even when there is no adjunction between G and H. This appears to be one of the basic phenomena underlying the transport of special algebras. A proof of Freyd's Iterated Square Theorem illustrates the interaction with Lambek's Lemma.},
	pages = {42--49},
	journaltitle = {Electronic Notes in Theoretical Computer Science},
	author = {Eppendahl, A.},
	urldate = {2019-12-27},
	date = {1999-01-01},
	langid = {english},
	file = {Full Text:/Users/oleg/Zotero/storage/K6QVVH7U/Coalgebra-to-Algebra Morphisms  Elsevier Enhanced.pdf:application/pdf;ScienceDirect Full Text PDF:/Users/oleg/Zotero/storage/XRN7RV3R/Eppendahl - 1999 - Coalgebra-to-Algebra Morphisms.pdf:application/pdf;ScienceDirect Snapshot:/Users/oleg/Zotero/storage/NDLJLUG2/S1571066105803056.html:text/html;Snapshot:/Users/oleg/Zotero/storage/3CRUL6RX/S1571066105803056.html:text/html}
}

@article{pickering_profunctor_2017,
	title = {Profunctor Optics: Modular Data Accessors},
	volume = {1},
	issn = {2473-7321},
	url = {http://programming-journal.org/2017/1/7},
	doi = {10.22152/programming-journal.org/2017/1/7},
	shorttitle = {Profunctor Optics},
	abstract = {Data accessors allow one to read and write components of a data structure, such as the ﬁelds of a record, the variants of a union, or the elements of a container. These data accessors are collectively known as optics; they are fundamental to programs that manipulate complex data. Individual data accessors for simple data structures are easy to write, for example as pairs of ‘getter’ and ‘setter’ methods. However, it is not obvious how to combine data accessors, in such a way that data accessors for a compound data structure are composed out of smaller data accessors for the parts of that structure. Generally, one has to write a sequence of statements or declarations that navigate step by step through the data structure, accessing one level at a time—which is to say, data accessors are traditionally not ﬁrst-class citizens, combinable in their own right.},
	pages = {7},
	number = {2},
	journaltitle = {Programming},
	author = {Pickering, Matthew and Gibbons, Jeremy and Wu, Nicolas},
	urldate = {2019-12-27},
	date = {2017-04-01},
	langid = {english},
	file = {Pickering et al. - 2017 - Profunctor Optics Modular Data Accessors.pdf:/Users/oleg/Zotero/storage/PRFUYVTM/Pickering et al. - 2017 - Profunctor Optics Modular Data Accessors.pdf:application/pdf}
}

@article{winter_context-free_2015,
	title = {Context-free coalgebras},
	volume = {81},
	issn = {0022-0000},
	url = {http://www.sciencedirect.com/science/article/pii/S0022000014001664},
	doi = {10.1016/j.jcss.2014.12.004},
	series = {11th International Workshop on Coalgebraic Methods in Computer Science, {CMCS} 2012 (Selected Papers)},
	abstract = {In this article, we provide a coalgebraic account of parts of the mathematical theory underlying context-free languages. We characterize context-free languages, and power series and streams generalizing or corresponding to the context-free languages, by means of systems of behavioural differential equations; and prove a number of results, some of which are new, and some of which are new proofs of existing theorems, using the techniques of bisimulation and bisimulation up to linear combinations. Furthermore, we establish a link between automatic sequences and these systems of equations, allowing us to, given an automaton generating an automatic sequence, easily construct a system of behavioural differential equations yielding this sequence as a context-free stream.},
	pages = {911--939},
	number = {5},
	journaltitle = {Journal of Computer and System Sciences},
	author = {Winter, Joost and Bonsangue, Marcello M. and Rutten, Jan J. M. M.},
	urldate = {2019-12-27},
	date = {2015-08-01},
	langid = {english},
	keywords = {Automata theory, Automatic sequence, Bisimulation, Context-free languages, Formal grammars, Universal coalgebra},
	file = {Full Text:/Users/oleg/Zotero/storage/YV9GSZYV/Context-free coalgebras  Elsevier Enhanced Reader.pdf:application/pdf;ScienceDirect Full Text PDF:/Users/oleg/Zotero/storage/CH9XJBGQ/Winter et al. - 2015 - Context-free coalgebras.pdf:application/pdf;ScienceDirect Snapshot:/Users/oleg/Zotero/storage/SY2JMJ2B/S0022000014001664.html:text/html;Snapshot:/Users/oleg/Zotero/storage/9DK9DKE2/S0022000014001664.html:text/html}
}

@mastersthesis{zhang_session_2019,
	title = {Session Arrows: A Session-Type Based Framework For Parallel Code Generation},
	url = {https://www.imperial.ac.uk/media/imperial-college/faculty-of-engineering/computing/public/1819-ug-projects/ZhangS-Functional-Programming-with-Multiparty-Session-Types.pdf},
	institution = {{Imperial College London}},
	type = {{MEng} INDIVIDUAL PROJECT},
	author = {Zhang, Shuhao},
	urldate = {2019-12-27},
	date = {2019-06-19},
	year = {2019},
	month = jun,
	langid = {english},
	file = {Zhang et al. - Session Arrows A Session-Type Based Framework For.pdf:/Users/oleg/Zotero/storage/YCFLEYBX/Zhang et al. - Session Arrows A Session-Type Based Framework For.pdf:application/pdf}
}

@incollection{alvim_polymorphic_2019,
	location = {Cham},
	title = {Polymorphic Session Processes as Morphisms},
	volume = {11760},
	isbn = {978-3-030-31174-2 978-3-030-31175-9},
	url = {http://link.springer.com/10.1007/978-3-030-31175-9_7},
	abstract = {The study of expressiveness of concurrent processes via session types opens a connection between linear logic and mobile processes, grounded in the rigorous logical background of propositions-as-types. One such study includes a notion of parametric session polymorphism, which connects session typed processes with rich higher-order functional computations. This work proposes a novel and non-trivial application of session parametricity – an encoding of inductive and coinductive session types, justiﬁed via the theory of initial algebras and ﬁnal co-algebras using a processes-as-morphisms viewpoint. The correctness of the encoding (i.e. universality) relies crucially on parametricity and the associated relational lifting of sessions.},
	pages = {101--117},
	booktitle = {The Art of Modelling Computational Systems: A Journey from Logic and Concurrency to Security and Privacy},
	publisher = {Springer International Publishing},
	author = {Toninho, Bernardo and Yoshida, Nobuko},
	editor = {Alvim, Mário S. and Chatzikokolakis, Kostas and Olarte, Carlos and Valencia, Frank},
	urldate = {2019-12-27},
	date = {2019},
	langid = {english},
	doi = {10.1007/978-3-030-31175-9_7},
	file = {Toninho and Yoshida - 2019 - Polymorphic Session Processes as Morphisms.pdf:/Users/oleg/Zotero/storage/FPGZTM5X/Toninho and Yoshida - 2019 - Polymorphic Session Processes as Morphisms.pdf:application/pdf}
}

@inproceedings{turon_reagents:_2012,
	address = {New York, {NY}, {USA}},
	title = {Reagents: Expressing and Composing Fine-grained Concurrency},
	isbn = {978-1-4503-1205-9},
	Xurl = {http://doi.acm.org/10.1145/2254064.2254084},
	doi = {10.1145/2254064.2254084},
	series = {{PLDI}'12},
	shorttitle = {Reagents},
	abstract = {Efficient communication and synchronization is crucial for fine grained parallelism. Libraries providing such features, while indispensable, are difficult to write, and often cannot be tailored or composed to meet the needs of specific users. We introduce reagents, a set of combinators for concisely expressing concurrency algorithms. Reagents scale as well as their hand-coded counterparts, while providing the composability existing libraries lack.},
	pages = {157--168},
	booktitle = {Proceedings of the 33\xrd {ACM} {SIGPLAN} Conference on Programming Language Design and Implementation},
	publisher = {{ACM}},
	author = {Turon, Aaron},
	Xurldate = {2019-12-27},
	year = {2012},
	location = {Beijing, China},
	keywords = {arrows, compositional concurrency, fine-grained concurrency, monads, nonblocking algorithms},
	annotation = {https://github.com/aturon/ChemistrySet},
	file = {pldi-2012-reagents.key:/Users/oleg/Zotero/storage/HUGEZ4KZ/pldi-2012-reagents.key:application/octet-stream;Turon - Reagents Expressing and Composing Fine-grained Co.pdf:/Users/oleg/Zotero/storage/8VPEFVV7/Turon - Reagents Expressing and Composing Fine-grained Co.pdf:application/pdf}
}

license: MIT

repository: Parrows/Parrows

license_type: permissive

repo_name: Parrows/Parrows

branch_name: refs/heads/master

extension: bib


text:
///main package has examples shown
// in Go Data Structures and algorithms book
package main

// importing fmt, encoding/json, io/ioutil and os packages
import (
	"fmt"
  "encoding/json"
	"io/ioutil"
)
//Persons class
type Persons []Person
//Person class
type Person struct {
	Name   string
	Type   string
	Age    int
}
// main method
func main() {

	var bytes []byte
	var err error
	bytes, err = ioutil.ReadFile("test.json")

	var persons Persons
	err = json.Unmarshal(bytes, &persons)
	if err != nil {
		panic(err)
	}

	fmt.Println(persons)

}

extension: go


text:
@article{li2019pgcn,
 author = {Li, Yu and Kuwahara, Hiroyuki and Yang, Peng and Song, Le and Gao, Xin},
 journal = {bioRxiv},
 pages = {532226},
 publisher = {Cold Spring Harbor Laboratory},
 title = {PGCN: Disease gene prioritization by disease and gene embedding through graph convolutional neural networks},
 year = {2019}
}


text:
# Copyright (c) 2020 LG Electronics, Inc.

SUMMARY = "JS Service Sample"
AUTHOR = "Author's name <Author's e-mail>"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"

WEBOS_VERSION = "0.0.1"
PR = "r0"

inherit webos_component
inherit webos_submissions
inherit webos_cmake
inherit webos_system_bus

FILES_${PN} += "${webos_servicesdir}/${PN}/*"

repository: seokhwanchoi/samples

repo_name: seokhwanchoi/samples

extension: bb


text:
PD = "a small yet feature-complete init"
PV = "${PV_REV}"

HOMEPAGE = "https://github.com/typedivision/neoinit"
LICENSE = "GPL"

SRC_URI = " \
  git://github.com/typedivision/neoinit;protocol=https \
"

SRCREV = "v1.0.0"

DEPENDS = "crosstool-ng"

step_build() {
  cd "${SRCDIR}"/git

  export CROSS=${TARGET_SYS}-
  make
}

step_install() {
  install -d "${FILES_PKG}"/{sbin,bin,etc/neoinit}

  cd "${SRCDIR}"/git
  install neoinit hard-reboot "${FILES_PKG}"/sbin
  install neorc "${FILES_PKG}"/bin
  mkfifo -m 600 "${FILES_PKG}"/etc/neoinit/{in,out}
  ln -s /sbin/neoinit "${FILES_PKG}"/sbin/init

  install_license "${SRCDIR}"/git/COPYING "${FILES_PKG}"
}

repository: typedivision/pacstage

repo_name: typedivision/pacstage


text:
package api

import (
	"bytes"
	"io"
	"reflect"
	"testing"

	"github.com/demosdemon/super-potato/gen/internal/gen"
)

func TestNewCollection(t *testing.T) {
	type args struct {
		r io.Reader
	}
	tests := []struct {
		name    string
		args    args
		want    gen.Renderer
		wantErr bool
	}{
		{
			name: "empty",
			args: args{
				r: new(bytes.Buffer),
			},
			want:    make(Collection, 0),
			wantErr: true,
		},
		{
			name: "one",
			args: args{
				r: bytes.NewReader([]byte("- name: one\n")),
			},
			want: Collection{
				{
					Name: "one",
				},
			},
			wantErr: false,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			got, err := NewCollection(tt.args.r)
			if (err != nil) != tt.wantErr {
				t.Errorf("NewCollection() error = %v, wantErr %v", err, tt.wantErr)
				return
			}
			if !reflect.DeepEqual(got, tt.want) {
				t.Errorf("NewCollection() = %v, want %v", got, tt.want)
			}
		})
	}
}

func TestCollection_Render(t *testing.T) {
	tests := []struct {
		name    string
		l       Collection
		wantW   string
		wantErr bool
	}{
		{
			name: "empty",
			l:    nil,
			wantW: `// This file is generated - do not edit!

package server

import gin "github.com/gin-gonic/gin"

func (s *Server) registerGeneratedRoutes(r gin.IRoutes) {}
`,
			wantErr: false,
		},
		{
			name: "one",
			l: Collection{
				{
					Name: "one",
				},
			},
			wantW: `// This file is generated - do not edit!

package server

import (
	platformsh "github.com/demosdemon/super-potato/pkg/platformsh"
	gin "github.com/gin-gonic/gin"
	logrus "github.com/sirupsen/logrus"
	"net/http"
)

func (s *Server) registerGeneratedRoutes(r gin.IRoutes) {
	r.GET("one", s.getone)
}

func (s *Server) getone(c *gin.Context) {
	logrus.Trace("getone")
	obj, err := s.Environment.one()
	_, ok := err.(platformsh.MissingEnvironment)
	switch {
	case err == nil:
		s.negotiate(c, http.StatusOK, obj)
	case ok:
		s.negotiate(c, http.StatusNotFound, err)
	default:
		s.negotiate(c, http.StatusInternalServerError, err)
	}
}
`,
			wantErr: false,
		},
		{
			name: "one alias",
			l: Collection{
				{
					Name:    "One",
					Aliases: []string{"Two", "Three"},
				},
			},
			wantW: `// This file is generated - do not edit!

package server

import (
	platformsh "github.com/demosdemon/super-potato/pkg/platformsh"
	gin "github.com/gin-gonic/gin"
	logrus "github.com/sirupsen/logrus"
	"net/http"
)

func (s *Server) registerGeneratedRoutes(r gin.IRoutes) {
	r.GET("one", s.getOne)
	r.GET("two", s.getOne)
	r.GET("three", s.getOne)
}

func (s *Server) getOne(c *gin.Context) {
	logrus.Trace("getOne")
	obj, err := s.Environment.One()
	_, ok := err.(platformsh.MissingEnvironment)
	switch {
	case err == nil:
		s.negotiate(c, http.StatusOK, obj)
	case ok:
		s.negotiate(c, http.StatusNotFound, err)
	default:
		s.negotiate(c, http.StatusInternalServerError, err)
	}
}
`,
			wantErr: false,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			w := &bytes.Buffer{}
			if err := tt.l.Render(w); (err != nil) != tt.wantErr {
				t.Errorf("Collection.Render() error = %v, wantErr %v", err, tt.wantErr)
				return
			}
			if gotW := w.String(); gotW != tt.wantW {
				t.Errorf("Collection.Render() = %v, want %v", gotW, tt.wantW)
			}
		})
	}
}

repository: demosdemon/super-potato

repo_name: demosdemon/super-potato

gha_license_id: MIT

gha_language: Go


text:
@book{clements2002documenting,
  title={Documenting software architectures: views and beyond},
  author={Clements, Paul and Garlan, David and Bass, Len and Stafford, Judith and Nord, Robert and Ivers, James and Little, Reed},
  year={2002},
  publisher={Pearson Education}
}

@techreport{stafford2004creating,
  title={Creating and Using Software Architecture Documentation Using Web-Based Tool Support},
  author={Stafford, Judith A},
  year={2004},
  institution={DTIC Document}
}

@article{sundsted,
  Abstract={Features the Rational Unified Process (RUP), a brainware and software developed by Rational Software. Key features; RUP software development process; Benefits of RUP to proper process implementation.},
  Author={Sundsted, Todd E.},
  ISSN={01996649},
  Journal={InfoWorld},
  Keywords={COMPUTER software, COMPUTER software development, RATIONAL Software Corp.},
  Number={25},
  Pages={66},
  Title={Robust process gives developers boost.},
  Volume={23},
  URL={http://search-ebscohost-com.ez54.periodicos.capes.gov.br/login.aspx?direct=true&db=afh&AN=5644679&lang=pt-br&site=ehost-live},
  Year={2001},
}

@misc{shaw,
  author={D. Garlan and Mary Shaw},
  title={An introduction to software architecture},
  year={1994},
}

@misc{rational,
  author={{Rational Software Corporation}},
  title={Rational Unified Process},
  year={2001},
  edition={2001.03.00},
}

@phdthesis{ananias,
  title={Estudo comparativo entre ferramentas de Ger{\^e}ncia de Requisitos},
  author={Ananias, Rafael Richa Teixeira},
  year={2009},
  school={Universidade Federal de Pernambuco}
}

@book{davis,
  title={Software requirements: objects, functions, and states},
  author={Davis, Alan M},
  year={1993},
  publisher={Prentice-Hall, Inc.}
}

@inproceedings{gotel,
  title={An analysis of the requirements traceability problem},
  author={Gotel, Orlena CZ and Finkelstein, Anthony CW},
  booktitle={Requirements Engineering, 1994., Proceedings of the First International Conference on},
  pages={94--101},
  year={1994},
}

@book{pmbok,
  title={A Guide To The Project Management Body Of Knowledge},
  year={2004},
  organization={Project Management Institute},
  org-short={PMI},
  isbn={193069945X, 9781933890517},
  publisher={Project Management Institute}
}

@phdthesis{manzoni,
  title={Uso de Sistema de Ger{\^e}ncia de Workflow para Apoiar o Desenvolvimento de Software Baseado no Processo Unificado da Rational Estendido para Alcan{\c{c}}ar N{\'\i}veis 2 e 3 do Modelo de Maturidade},
  author={Manzoni, Lisandra Vielmo},
  year={2001},
  school={UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL},
  url={http://hdl.handle.net/10183/11733},
  urldate={06/10/2015}
}

@article{swathine,
  Author={Swathine, K and Komalalakshmi, J},
  Title={Requirement Elicitation for Requirement in Software Engineering},
  Journal={International Journal of Engineering Sciences \& Research Technology},
  Keywords={Requirement Elicitation, Requirement Engineering, Problem, Techniques},
  ISSN={22779655},
  Volume={3},
  Number={12},
  Pages={354-357},
  URL={http://www.ijesrt.com/issues%20pdf%20file/Archives-2014/December-2014/56_Requirement%20Elicitation%20for%20Requirement%20in%20Software%20Engineering.pdf},
  Year={2014}
}

@article{tsumaki,
  Abstract={One of the most difficult jobs for requirements engineers is to select an appropriate RE method for the project at hand. Good engineers make good choices and have skills in applying selected techniques appropriately. Poor engineers usually have a narrow choice range limited by their training and biased by their experience. Once a RE technique that does not fit the current project is selected, the project is doomed to fail. In this article, we propose a framework to characterize typical RE techniques and use it as a base for selecting appropriate techniques at the time a project is started, as well as at the time a change in the nature of the project is recognized, or an obstacle is encountered in defining a suitable set of requirements. Copyright © 2006 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]},
  Author={Tsumaki, Toshihiko and Tamai, Tetsuo},
  ISSN={10774866},
  Journal={Software Process: Improvement \& Practice},
  Keywords={SYSTEMS engineering, PROJECT management, CHARACTERS & characteristics, BRAINSTORMING, STRUCTURAL analysis (Engineering), CASE studies, brainstorming, domain decomposition, goal oriented, project characteristics, requirements engineering techniques, scenario based, situation change},
  Number={5},
  Pages={505 - 519},
  Title={Framework for matching requirements elicitation techniques to project characteristics.},
  Volume={11},
  URL={http://search-ebscohost-com.ez54.periodicos.capes.gov.br/login.aspx?direct=true&db=iih&AN=22671819&lang=pt-br&site=ehost-live},
  Year={2006}
}

@article{bruckhaus1996impact,
  title={The impact of tools on software productivity},
  author={Bruckhaus, Tilmann and Madhavji, Nazim H and Janssen, Ingrid and Henshaw, John},
  journal={IEEE Software},
  number={5},
  pages={29--38},
  year={1996},
  publisher={IEEE}
}

@phdthesis{ananias2009estudo,
  title={Estudo comparativo entre ferramentas de Ger{\^e}ncia de Requisitos},
  author={Ananias, Rafael Richa Teixeira},
  year={2009},
  school={Universidade Federal de Pernambuco}
}

@article{agilemodeling,
  title={Active Stakeholder Participation: An Agile Best Practice},
  author={Scott W. Ambler},
  year={2002}
}

@article{rupXageis,
  title={RUP x Metodologias Ágeis: uma análise crítica},
  author={SERGIO CRESPO C. S. PINTO},
  year={2011},
  URL={http://unisinos-eslp.blogspot.com.br/2011/04/rup-x-metodologias-ageis-uma-analise.html}
}

@article{pequenasEmpresas,
  title={METODOLOGIAS ÁGEIS ,  auxiliando o processo de desenvolvimento de software de pequenas e médias empresas},
  author={ANDERSON LUIZ BARBOSA},
  year={2015},
  URL={http://www.fatec.edu.br/revista/wp-content/uploads/2013/06/Metodologias-%C3%A1geis.pdf}
}

@misc{ageisBrasil,
  title={Métodos ágeis no Brasil: estado da prática em times e organizações},
  author={Claudia de O. Melo; Viviane A.  Santos;  Hugo Corbucci;  Eduardo  Katayama;  Alfredo Goldman;  Fabio  Kon},
  year={2012},
}

@article{adrienne,
  title={Selecting a Software Development Methodology based on Organizational Characteristics},
  author={ADRIENNE FARRELL},
  year={2007},
  school={ATHABASCA UNIVERSITY}
}

@article{addison,
  title={The Unified Modeling Language User Guide},
  author={AddisonWesley},
  year={1999},
}

@article{paula,
  title={Métodos Ágeis},
  author={Paula L.O. Libardi, Vladimir Barbosa},
  year={2010},
}

@article{rodrigo,
  title={O processo unificado integrado ao desenvolvimento Web},
  author={Rodrigo S. Prudente De Aquino},
  year={2014},
}

@article{mendes,
  title={Especificação de Caso de Uso},
  author={Antonio Mendes Da Silva Filho},
  year={2014},
}

@misc{mps2012,
  title={MPS.BR -- Guia de Implementação},
  author={Softex},
  year={2012}
}

@book{wohlin2005engineering,
  title={Engineering and managing software requirements},
  author={Wohlin, Claes and others},
  year={2005},
  publisher={Springer Science \& Business Media}
}

@book{ambler2012disciplined,
  title={Disciplined agile delivery: A practitioner's guide to agile software delivery in the enterprise},
  author={Ambler, Scott W and Lines, Mark},
  year={2012},
  publisher={IBM Press}
}

@misc{stevens2002get,
  title={Get it right the first time: writing better requirements},
  author={Stevens, R},
  year={2002},
  publisher={Telelogic DOORS UK, Oxford}
}

@misc{lml2013,
  author = {LML},
  title = {{LIFECYCLE MODELING LANGUAGE (LML) SPECIFICATION}},
  howpublished = "\url{http://www.lifecyclemodeling.org/spec/LML_Specification_1_0.pdf}",
  year = {2013},
  note = "[Online; accessed 12-October-2015]"
}

@article{Lopes,
  author = {Leandro Teixeira Lopes},
  title = {Um Modelo de Processo de Engenharia de Requisitos para Ambientes de Desenvolvimento Distribuído de Software},
  year = {2004}
}

@phdthesis{Simone,
  author = {SIMONE FRANCETO},
  title = {ESPECIFICAÇÃO E IMPLEMENTAÇÃO DE UMA FERRAMENTA PARA ELICITAÇÃO DE REQUISITOS DE SOFTWARE BASEADA NA TEORIA DA ATIVIDADE},
  year = {2005}
}

@article{borges2003modelo,
  title={Um modelo de medi{\c{c}}{\~a}o para processos de desenvolvimento de software},
  author={Borges, Eduardo Pereira},
  journal={Departamento de Ci{\^e}ncia da Computa{\c{c}}{\~a}o do Instituto de Ci{\^e}ncias Exatas da Universidade Federal de Minas Gerais. Belo Horizonte},
  year={2003}
}

@article{rocha2012mediccao,
  title={Medi{\c{c}}{\~a}o de software e controle estat{\'\i}stico de processos},
  author={Rocha, ARC da and Souza, G dos S and Barcellos, MP},
  journal={Minist{\'e}rio da Ci{\^e}ncia, Tecnologia e Inova{\c{c}}{\~a}o; Secretaria de Pol{\'\i}tica de Inform{\'a}tica},
  pages={21},
  year={2012}
}

@phdthesis{albuquerque2008avaliaccao,
  title={Avalia{\c{c}}{\~a}o e Melhoria de Ativos de Processos Organizacionais em Ambientes de Desenvolvimento de Software},
  author={ALBUQUERQUE, Adriano B},
  year={2008},
  school={Tese de Doutorado, Universidade Federal do Rio de Janeiro}
}

repository: knelasevero/verivarlrels

repo_name: knelasevero/verivarlrels