<> <http://www.w3.org/2000/01/rdf-schema#comment> "The repository administrator has not yet configured an RDF license."^^<http://www.w3.org/2001/XMLSchema#string> .
<> <http://xmlns.com/foaf/0.1/primaryTopic> <https://discovery.ucl.ac.uk/id/eprint/10062734> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ontology/bibo/AcademicArticle> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ontology/bibo/Article> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/title> "Mining Semantic Loop Idioms"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/abstract> "To write code, developers stitch together patterns, like API protocols or data structure traversals. Discovering these patterns can identify inconsistencies in code or opportunities to replace these patterns with an API or a language construct. We present coiling, a technique for automatically mining code for semantic idioms: surprisingly probable, semantic patterns. We specialize coiling for loop idioms, semantic idioms of loops. First, we show that automatically identifiable patterns exist, in great numbers, with a largescale empirical study of loops over 25MLOC. We find that most loops in this corpus are simple and predictable: 90 percent have fewer than 15LOC and 90 percent have no nesting and very simple control. Encouraged by this result, we then mine loop idioms over a second, buildable corpus. Over this corpus, we show that only 50 loop idioms cover 50 percent of the concrete loops. Our framework opens the door to data-driven tool and language design, discovering opportunities to introduce new API calls and language constructs. Loop idioms show that LINQ would benefit from an Enumerate operator. This can be confirmed by the exitence of a StackOverflow question with 542k views that requests precisely this feature."^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/date> "2018-07" .
<https://discovery.ucl.ac.uk/id/document/791771> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ontology/bibo/Document> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/volume> "44" .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/issue> "7" .
<https://discovery.ucl.ac.uk/id/org/ext-d1b94e0bd9b7f2a328f07018c1688f24> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Organization> .
<https://discovery.ucl.ac.uk/id/org/ext-d1b94e0bd9b7f2a328f07018c1688f24> <http://xmlns.com/foaf/0.1/name> "IEEE COMPUTER SOC"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/publisher> <https://discovery.ucl.ac.uk/id/org/ext-d1b94e0bd9b7f2a328f07018c1688f24> .
<https://discovery.ucl.ac.uk/id/publication/ext-19393520> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/ontology/bibo/Collection> .
<https://discovery.ucl.ac.uk/id/publication/ext-19393520> <http://xmlns.com/foaf/0.1/name> "IEEE Transactions on Software Engineering"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/isPartOf> <https://discovery.ucl.ac.uk/id/publication/ext-19393520> .
<https://discovery.ucl.ac.uk/id/publication/ext-19393520> <http://www.w3.org/2002/07/owl#sameAs> <urn:issn:19393520> .
<https://discovery.ucl.ac.uk/id/publication/ext-19393520> <http://purl.org/ontology/bibo/issn> "19393520" .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/status> <http://purl.org/ontology/bibo/status/published> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/creator> <https://discovery.ucl.ac.uk/id/person/ext-845dfb936fdb18de40d6e17047bf9cb0> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/authorList> <https://discovery.ucl.ac.uk/id/eprint/10062734#authors> .
<https://discovery.ucl.ac.uk/id/eprint/10062734#authors> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <https://discovery.ucl.ac.uk/id/person/ext-845dfb936fdb18de40d6e17047bf9cb0> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/creator> <https://discovery.ucl.ac.uk/id/person/ext-d9b4214097645ce021ffeab41d2eb60a> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/authorList> <https://discovery.ucl.ac.uk/id/eprint/10062734#authors> .
<https://discovery.ucl.ac.uk/id/eprint/10062734#authors> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <https://discovery.ucl.ac.uk/id/person/ext-d9b4214097645ce021ffeab41d2eb60a> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/creator> <https://discovery.ucl.ac.uk/id/person/ext-1035f5f38f7036444a7beaa7ebd5a3c2> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/authorList> <https://discovery.ucl.ac.uk/id/eprint/10062734#authors> .
<https://discovery.ucl.ac.uk/id/eprint/10062734#authors> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3> <https://discovery.ucl.ac.uk/id/person/ext-1035f5f38f7036444a7beaa7ebd5a3c2> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/creator> <https://discovery.ucl.ac.uk/id/person/ext-378a7f7963b480ed3761d44602eeddbb> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/authorList> <https://discovery.ucl.ac.uk/id/eprint/10062734#authors> .
<https://discovery.ucl.ac.uk/id/eprint/10062734#authors> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4> <https://discovery.ucl.ac.uk/id/person/ext-378a7f7963b480ed3761d44602eeddbb> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/creator> <https://discovery.ucl.ac.uk/id/person/ext-f411cbcf4015eb82b463e866980f2e1d> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/authorList> <https://discovery.ucl.ac.uk/id/eprint/10062734#authors> .
<https://discovery.ucl.ac.uk/id/eprint/10062734#authors> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_5> <https://discovery.ucl.ac.uk/id/person/ext-f411cbcf4015eb82b463e866980f2e1d> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/creator> <https://discovery.ucl.ac.uk/id/person/ext-711bc290afe1ac2db381efd3d7e84d9d> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/ontology/bibo/authorList> <https://discovery.ucl.ac.uk/id/eprint/10062734#authors> .
<https://discovery.ucl.ac.uk/id/eprint/10062734#authors> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_6> <https://discovery.ucl.ac.uk/id/person/ext-711bc290afe1ac2db381efd3d7e84d9d> .
<https://discovery.ucl.ac.uk/id/person/ext-1035f5f38f7036444a7beaa7ebd5a3c2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<https://discovery.ucl.ac.uk/id/person/ext-1035f5f38f7036444a7beaa7ebd5a3c2> <http://xmlns.com/foaf/0.1/givenName> "C"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-1035f5f38f7036444a7beaa7ebd5a3c2> <http://xmlns.com/foaf/0.1/familyName> "Bird"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-1035f5f38f7036444a7beaa7ebd5a3c2> <http://xmlns.com/foaf/0.1/name> "C Bird"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-711bc290afe1ac2db381efd3d7e84d9d> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<https://discovery.ucl.ac.uk/id/person/ext-711bc290afe1ac2db381efd3d7e84d9d> <http://xmlns.com/foaf/0.1/givenName> "C"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-711bc290afe1ac2db381efd3d7e84d9d> <http://xmlns.com/foaf/0.1/familyName> "Sutton"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-711bc290afe1ac2db381efd3d7e84d9d> <http://xmlns.com/foaf/0.1/name> "C Sutton"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-845dfb936fdb18de40d6e17047bf9cb0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<https://discovery.ucl.ac.uk/id/person/ext-845dfb936fdb18de40d6e17047bf9cb0> <http://xmlns.com/foaf/0.1/givenName> "M"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-845dfb936fdb18de40d6e17047bf9cb0> <http://xmlns.com/foaf/0.1/familyName> "Allamanis"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-845dfb936fdb18de40d6e17047bf9cb0> <http://xmlns.com/foaf/0.1/name> "M Allamanis"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-f411cbcf4015eb82b463e866980f2e1d> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<https://discovery.ucl.ac.uk/id/person/ext-f411cbcf4015eb82b463e866980f2e1d> <http://xmlns.com/foaf/0.1/givenName> "M"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-f411cbcf4015eb82b463e866980f2e1d> <http://xmlns.com/foaf/0.1/familyName> "Marron"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-f411cbcf4015eb82b463e866980f2e1d> <http://xmlns.com/foaf/0.1/name> "M Marron"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-d9b4214097645ce021ffeab41d2eb60a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<https://discovery.ucl.ac.uk/id/person/ext-d9b4214097645ce021ffeab41d2eb60a> <http://xmlns.com/foaf/0.1/givenName> "ET"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-d9b4214097645ce021ffeab41d2eb60a> <http://xmlns.com/foaf/0.1/familyName> "Barr"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-d9b4214097645ce021ffeab41d2eb60a> <http://xmlns.com/foaf/0.1/name> "ET Barr"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-378a7f7963b480ed3761d44602eeddbb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<https://discovery.ucl.ac.uk/id/person/ext-378a7f7963b480ed3761d44602eeddbb> <http://xmlns.com/foaf/0.1/givenName> "P"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-378a7f7963b480ed3761d44602eeddbb> <http://xmlns.com/foaf/0.1/familyName> "Devanbu"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/person/ext-378a7f7963b480ed3761d44602eeddbb> <http://xmlns.com/foaf/0.1/name> "P Devanbu"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/EPrint> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/ArticleEPrint> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/terms/isPartOf> <https://discovery.ucl.ac.uk/id/repository> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasDocument> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791771> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/Document> .
<https://discovery.ucl.ac.uk/id/document/791771> <http://www.w3.org/2000/01/rdf-schema#label> "Mining Semantic Loop Idioms (Text)"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://purl.org/dc/elements/1.1/hasVersion> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasAccepted> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791771> <http://eprints.org/ontology/hasFile> <https://discovery.ucl.ac.uk/id/eprint/10062734/1/Barr_coils.pdf> .
<https://discovery.ucl.ac.uk/id/document/791771> <http://purl.org/dc/terms/hasPart> <https://discovery.ucl.ac.uk/id/eprint/10062734/1/Barr_coils.pdf> .
<https://discovery.ucl.ac.uk/id/eprint/10062734/1/Barr_coils.pdf> <http://www.w3.org/2000/01/rdf-schema#label> "Barr_coils.pdf"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasDocument> <https://discovery.ucl.ac.uk/id/document/791772> .
<https://discovery.ucl.ac.uk/id/document/791772> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/Document> .
<https://discovery.ucl.ac.uk/id/document/791772> <http://www.w3.org/2000/01/rdf-schema#label> "Mining Semantic Loop Idioms (Other)"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/document/791772> <http://eprints.org/relation/isVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791772> <http://eprints.org/relation/isVolatileVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791772> <http://eprints.org/relation/islightboxThumbnailVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasDocument> <https://discovery.ucl.ac.uk/id/document/791773> .
<https://discovery.ucl.ac.uk/id/document/791773> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/Document> .
<https://discovery.ucl.ac.uk/id/document/791773> <http://www.w3.org/2000/01/rdf-schema#label> "Mining Semantic Loop Idioms (Other)"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/document/791773> <http://eprints.org/relation/isVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791773> <http://eprints.org/relation/isVolatileVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791773> <http://eprints.org/relation/ispreviewThumbnailVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasDocument> <https://discovery.ucl.ac.uk/id/document/791774> .
<https://discovery.ucl.ac.uk/id/document/791774> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/Document> .
<https://discovery.ucl.ac.uk/id/document/791774> <http://www.w3.org/2000/01/rdf-schema#label> "Mining Semantic Loop Idioms (Other)"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/document/791774> <http://eprints.org/relation/isVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791774> <http://eprints.org/relation/isVolatileVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791774> <http://eprints.org/relation/ismediumThumbnailVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasDocument> <https://discovery.ucl.ac.uk/id/document/791775> .
<https://discovery.ucl.ac.uk/id/document/791775> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/Document> .
<https://discovery.ucl.ac.uk/id/document/791775> <http://www.w3.org/2000/01/rdf-schema#label> "Mining Semantic Loop Idioms (Other)"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/document/791775> <http://eprints.org/relation/isVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791775> <http://eprints.org/relation/isVolatileVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791775> <http://eprints.org/relation/issmallThumbnailVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://eprints.org/ontology/hasDocument> <https://discovery.ucl.ac.uk/id/document/791776> .
<https://discovery.ucl.ac.uk/id/document/791776> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eprints.org/ontology/Document> .
<https://discovery.ucl.ac.uk/id/document/791776> <http://www.w3.org/2000/01/rdf-schema#label> "Mining Semantic Loop Idioms (Other)"^^<http://www.w3.org/2001/XMLSchema#string> .
<https://discovery.ucl.ac.uk/id/document/791776> <http://eprints.org/relation/isVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791776> <http://eprints.org/relation/isVolatileVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/document/791776> <http://eprints.org/relation/isIndexCodesVersionOf> <https://discovery.ucl.ac.uk/id/document/791771> .
<https://discovery.ucl.ac.uk/id/eprint/10062734> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <https://discovery.ucl.ac.uk/id/eprint/10062734/> .
<https://discovery.ucl.ac.uk/id/eprint/10062734/> <http://purl.org/dc/elements/1.1/title> "HTML Summary of #10062734 \n\nMining Semantic Loop Idioms\n\n" .
<https://discovery.ucl.ac.uk/id/eprint/10062734/> <http://purl.org/dc/elements/1.1/format> "text/html" .
<https://discovery.ucl.ac.uk/id/eprint/10062734/> <http://xmlns.com/foaf/0.1/primaryTopic> <https://discovery.ucl.ac.uk/id/eprint/10062734> .