{"expr":"Composite(AA.AuN=='tim felgentreff')","entities":[{"logprob":-18.921,"Id":2045398665,"Ty":"0","Ti":"checks and balances constraint solving without surprises in object constraint programming languages","Pt":"3","L":"en","Y":2015,"D":"2015-10-23","CC":24,"ECC":24,"RId":[1480909796,2060440626,2123396057,2017035494,2432221968,2339376177,2053637323,2115261880,2168617729,2295061292,2339290067,2403131032,99012786,2019153550,2158148130,2120656140,2107596222,2103729840,2555448203,2143590189,2139272205,2247063045,1878147133],"W":["balances","checks","constraint","languages","object","programming","solving","surprises","without"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":1},{"DAuN":"Todd D. Millstein","AuN":"todd d millstein","AuId":294596595,"DAfN":"University of California, Los Angeles","AfN":"university of california los angeles","AfId":161318765,"S":2},{"DAuN":"Alan Borning","AuN":"alan borning","AuId":2020136591,"DAfN":"University of Washington","AfN":"university of washington","AfId":201448701,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":4}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Solver","FN":"solver","FId":2778770139},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Imperative programming","FN":"imperative programming","FId":90871949},{"DFN":"Fifth-generation programming language","FN":"fifth generation programming language","FId":199305712},{"DFN":"Constraint satisfaction problem","FN":"constraint satisfaction problem","FId":199622910},{"DFN":"Constraint satisfaction","FN":"constraint satisfaction","FId":44616089},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Constraint logic programming","FN":"constraint logic programming","FId":176783269},{"DFN":"Constraint (mathematics)","FN":"constraint","FId":30416901},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"C":{"CN":"oopsla","CId":1138732554},"CI":{"CIN":"oopsla 2015","CIId":652141171},"E":"{\"DN\":\"Checks and balances: constraint solving without surprises in object-constraint programming languages\",\"IA\":{\"IndexLength\":235,\"InvertedIndex\":{\"Object-constraint\":[0],\"programming\":[1],\"systems\":[2,22,60],\"integrate\":[3],\"declarative\":[4],\"constraint\":[5,32,97,127],\"solving\":[6],\"with\":[7,20,205],\"imperative,\":[8],\"object-oriented\":[9,90],\"languages,\":[10],\"seamlessly\":[11],\"providing\":[12,179],\"the\":[13,31,36,57,64,67,84,88,93,96,123,126,142,146,160,171,174,185,200,222],\"power\":[14,29,65,124],\"of\":[15,66,86,92,110,125,145,162,173,184,196,202,228],\"both\":[16,180],\"paradigms.\":[17],\"However,\":[18],\"experience\":[19],\"object-constraint\":[21,130,176],\"has\":[23],\"shown\":[24],\"that\":[25,40,61,121,209,219],\"giving\":[26],\"too\":[27],\"much\":[28],\"to\":[30,104,132,212,217],\"solver\":[33,128],\"opens\":[34],\"up\":[35],\"potential\":[37],\"for\":[38,48,69,192],\"solutions\":[39,139],\"are\":[41],\"surprising\":[42,138],\"and\":[43,53,99,137,157,188,216,233],\"unintended\":[44],\"as\":[45,47,225],\"well\":[46],\"complex\":[49],\"interactions\":[50],\"between\":[51],\"constraints\":[52,73,149,153,158],\"imperative\":[54],\"code.\":[55],\"On\":[56],\"other\":[58],\"hand,\":[59],\"overly\":[62],\"limit\":[63],\"solver,\":[68],\"example\":[70],\"by\":[71],\"disallowing\":[72],\"involving\":[74,154],\"mutable\":[75,151],\"objects,\":[76,152],\"object\":[77,155],\"identity,\":[78,156],\"or\":[79],\"polymorphic\":[80],\"message\":[81,163],\"sends,\":[82],\"run\":[83,213],\"risk\":[85],\"excluding\":[87],\"core\":[89,194],\"features\":[91,144],\"language\":[94,177,187],\"from\":[95],\"part,\":[98],\"consequently\":[100],\"not\":[101],\"being\":[102],\"able\":[103],\"express\":[105],\"declaratively\":[106],\"a\":[107,189,193],\"large\":[108],\"set\":[109],\"interesting\":[111],\"problem\":[112],\"solutions.\":[113],\"In\":[114],\"this\":[115,203],\"paper\":[116],\"we\":[117],\"present\":[118,166],\"design\":[119],\"principles\":[120],\"tame\":[122],\"in\":[129,170,230],\"languages\":[131],\"avoid\":[133],\"difficult\":[134],\"corner\":[135],\"cases\":[136],\"while\":[140],\"retaining\":[141],\"key\":[143],\"approach,\":[147],\"including\":[148],\"over\":[150],\"on\":[159],\"results\":[161,224],\"sends.\":[164],\"We\":[165,198],\"our\":[167],\"solution\":[168],\"concretely\":[169],\"context\":[172],\"Babelsberg\":[175,229],\"framework,\":[178],\"an\":[181,206],\"informal\":[182],\"description\":[183],\"resulting\":[186],\"formal\":[190],\"semantics\":[191,204],\"subset\":[195],\"it.\":[197],\"validate\":[199],\"utility\":[201],\"executable\":[207],\"version\":[208],\"allows\":[210],\"us\":[211],\"test\":[214],\"programs\":[215],\"verify\":[218],\"they\":[220],\"provide\":[221],\"same\":[223],\"existing\":[226],\"implementations\":[227],\"JavaScript,\":[231],\"Ruby,\":[232],\"Smalltalk.\":[234]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.vpri.org/pdf/tr2015002_oopsla15_babelsberg.pdf\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/oopsla/oopsla2015.html#FelgentreffMBH15\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2814270.2814311\"},{\"Ty\":1,\"U\":\"http://www.cs.ucla.edu/~todd/research/oopsla15.pdf\"}],\"VFN\":\"Conference on Object-Oriented Programming Systems, Languages, and Applications\",\"VSN\":\"OOPSLA\",\"V\":50,\"I\":10,\"FP\":767,\"LP\":782,\"DOI\":\"10.1145/2814270.2814311\",\"CC\":{\"99012786\":[\"Finally, αRby [18] is a language that embeds the Alloy specification language [12] in Ruby.\"],\"1480909796\":[\"We then evaluated a set of test programs in these executable semantics, using the Z3 solver [3] to provide heap and environment updates.\"],\"1878147133\":[\"First, we have implemented our natural semantics in the Relational Meta-Language (RML) [20], yielding executable semantics both for the core Babelsberg/UID language presented above, and for Babelsberg/Objects [6], an extended, object-oriented language, which includes support for classes, methods, and constraint definitions that can include polymorphic method calls.\"],\"2017035494\":[\"(A string theory exists for an older version of Z3 [23], but does not work in recent versions.\"],\"2019153550\":[\"Object-Constraint Programming (OCP) [4] integrates constraint satisfaction with common imperative and objectoriented features.\",\"Instances of Babelsberg include Babelsberg/R (a Ruby extension) [4], Babelsberg/JS (a JavaScript extension) [5], and Babelsberg/S (a Squeak extension) [10].\",\"We explicitly allowed such benign side effects in prior work [4, 5], but our formal semantics now disallows them.\",\"We explicitly allowed such methods in the original Babelsberg design, as long as the variables were used in static-single-assignment (SSA) fashion [4].\"],\"2053637323\":[\"Instead, we use the DeltaBlue local propagation solver [9] to propagate identity changes as they occur, and call any solvers for value constraints after that.\"],\"2060440626\":[\"Finally, αRby [18] is a language that embeds the Alloy specification language [12] in Ruby.\"],\"2103729840\":[\"Indeed, Babelsberg inherits the described issues, as well as its overall approach, from the earlier Kaleidoscope [8, 16] and Turtle [11] constraint imperative programming languages, and our approach is also useful for constraint systems such as BackTalk [19], Kaplan [14], and Squander [17] (see Section 5).\",\"Kaleidoscope [8, 16] was an early Constraint Imperative Programming (CIP) language, and had to address issues that\",\"Kaleidoscope’93 also included support for identity constraints [16], to express the distinction in object-oriented languages between object equality and identity.\"],\"2115261880\":[\"Indeed, Babelsberg inherits the described issues, as well as its overall approach, from the earlier Kaleidoscope [8, 16] and Turtle [11] constraint imperative programming languages, and our approach is also useful for constraint systems such as BackTalk [19], Kaplan [14], and Squander [17] (see Section 5).\",\"Turtle [11] is a more recent CIP language written from scratch, while Kaplan [14] provides constraints in Scala.\"],\"2120656140\":[\"Mozart/Oz [22] is a multi-paradigm language that supports functional, imperative, and logic programming.\"],\"2123396057\":[\", results such as 10 ≤ x ≤ 20 rather than a single value for x, and backtracking among multiple answers, as available in for example constraint logic programming [13], is not currently a goal.\"],\"2139272205\":[\"Object identity plays an essential role when using an objectoriented language to model aspects of the real world and so, in a language that integrates constraints with objectoriented features, we need to resolve the tension between these fundamental features [15].\"],\"2143590189\":[\"Indeed, Babelsberg inherits the described issues, as well as its overall approach, from the earlier Kaleidoscope [8, 16] and Turtle [11] constraint imperative programming languages, and our approach is also useful for constraint systems such as BackTalk [19], Kaplan [14], and Squander [17] (see Section 5).\",\"BackTalk [19, 21] and SQUANDER [17] explicitly allow the constraint solver to determine object structure, and\"],\"2158148130\":[\"Indeed, Babelsberg inherits the described issues, as well as its overall approach, from the earlier Kaleidoscope [8, 16] and Turtle [11] constraint imperative programming languages, and our approach is also useful for constraint systems such as BackTalk [19], Kaplan [14], and Squander [17] (see Section 5).\",\"Here we also include a notion from previous system [8] that the solver should always pick a solution that is “close” to the current state of the system.\",\"Kaleidoscope [8, 16] was an early Constraint Imperative Programming (CIP) language, and had to address issues that\"],\"2168617729\":[\"Indeed, Babelsberg inherits the described issues, as well as its overall approach, from the earlier Kaleidoscope [8, 16] and Turtle [11] constraint imperative programming languages, and our approach is also useful for constraint systems such as BackTalk [19], Kaplan [14], and Squander [17] (see Section 5).\",\"BackTalk [19, 21] and SQUANDER [17] explicitly allow the constraint solver to determine object structure, and\"],\"2295061292\":[\"Because our semantics relies on soft constraints, we use an experimental version of Z3 that supports them [1].\"],\"2339376177\":[\"The theory of read-only annotations applies only to single variables [2, 6] and we make the same restriction in our semantics below, but in practical languages we also permit read-only annotations\",\"There are a number of alternatives for the definition of what constitutes an optimal solution given competing soft constraints, each with their own advantages and disadvantages [2, 6].\",\"We assume that the solver supports our primitive types, records, and uninterpreted functions, as well as hard and soft constraints [2].\"],\"2403131032\":[\"Instances of Babelsberg include Babelsberg/R (a Ruby extension) [4], Babelsberg/JS (a JavaScript extension) [5], and Babelsberg/S (a Squeak extension) [10].\",\"The electrical circuit editor and simulator [5], for example, uses constraints and an appropriate solver to capture the relevant laws of physics such as Ohm’s Law and Kirchhoff’s Current Laws and to solve the resulting sets of simultaneous lin-\",\"The color picker and temperature converter [5] illustrates hard and soft constraints, as well as support for fast incremental re-solving during interactive editing.\",\"6 The examples we used are part of a published artifact [5], and are also available from the Babelsberg/JS repository at https://github.\",\"We explicitly allowed such benign side effects in prior work [4, 5], but our formal semantics now disallows them.\"],\"2555448203\":[\"Instances of Babelsberg include Babelsberg/R (a Ruby extension) [4], Babelsberg/JS (a JavaScript extension) [5], and Babelsberg/S (a Squeak extension) [10].\"]},\"PR\":[2308530788,2085158159,1497382039,2555448203,87201186,338442185,2168617729,2235113232,1505808374,2023431097,2119772607,2417401027,1721911782,102173736,2403875567,2117658650,2471419789,1586343560,2063760679,1580876082,2308530788,2085158159,1497382039,2555448203,87201186,338442185,2168617729,2235113232,1505808374,2023431097,2119772607,2417401027,1721911782,102173736,2403875567,2117658650,2471419789,1586343560,2063760679,1580876082],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Todd D.\",\"LN\":\"Millstein\",\"S\":2},{\"FN\":\"Alan\",\"LN\":\"Borning\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4}],\"BV\":\"Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-20.089,"Id":2012948209,"Ty":"0","Ti":"squeakjs a modern and practical smalltalk that runs in any browser","Pt":"3","L":"en","Y":2015,"D":"2015-05-12","CC":8,"ECC":8,"RId":[1770006921,2099822290,2172147300,2156487548,1584747838,1493929095,2125897312,2160959221,2024901245,2021429765,2471814997,171056846],"W":["browser","modern","practical","runs","smalltalk","squeakjs"],"AA":[{"DAuN":"Bert Freudenberg","AuN":"bert freudenberg","AuId":2776489000,"DAfN":"Communications Design Group, Potsdam, Germany","S":1},{"DAuN":"Dan H.H. Ingalls","AuN":"dan ingalls","AuId":2101984334,"DAfN":"Communications Design Group, San Francisco, USA","S":2},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":5}],"F":[{"DFN":"World Wide Web","FN":"world wide web","FId":136764020},{"DFN":"Web development","FN":"web development","FId":79373723},{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Software deployment","FN":"software deployment","FId":105339364},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Database","FN":"database","FId":77088390},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"C":{"CN":"dls","CId":1133200404},"E":"{\"DN\":\"SqueakJS: a modern and practical smalltalk that runs in any browser\",\"IA\":{\"IndexLength\":99,\"InvertedIndex\":{\"We\":[0,63],\"report\":[1],\"our\":[2],\"experience\":[3,81],\"in\":[4,13,19,95],\"implementing\":[5],\"SqueakJS,\":[6],\"a\":[7,24,32,96],\"bit-compatible\":[8],\"implementation\":[9,38],\"of\":[10,79],\"Squeak/Smalltalk\":[11],\"written\":[12],\"pure\":[14],\"JavaScript.\":[15],\"SqueakJS\":[16],\"runs\":[17],\"entirely\":[18],\"the\":[20,49,58,74],\"Web\":[21,60],\"browser\":[22],\"with\":[23],\"virtual\":[25,76],\"filesystem\":[26],\"that\":[27],\"can\":[28],\"be\":[29],\"directed\":[30],\"to\":[31,48,85],\"server\":[33],\"or\":[34],\"client-side\":[35],\"storage.\":[36],\"Our\":[37],\"is\":[39,82],\"notable\":[40],\"for\":[41,73],\"simplicity\":[42],\"and\":[43,53,91],\"performance\":[44,71],\"gained\":[45,56],\"through\":[46,57],\"adaptation\":[47],\"host\":[50],\"object\":[51],\"memory\":[52],\"deployment\":[54],\"leverage\":[55],\"Lively\":[59],\"development\":[61],\"environment.\":[62,98],\"present\":[64],\"several\":[65],\"novel\":[66],\"techniques\":[67],\"as\":[68,70],\"well\":[69],\"measurements\":[72],\"resulting\":[75],\"machine.\":[77],\"Much\":[78],\"this\":[80],\"potentially\":[83],\"relevant\":[84],\"preserving\":[86],\"other\":[87],\"dynamic\":[88],\"language\":[89],\"systems\":[90],\"making\":[92],\"them\":[93],\"available\":[94],\"browser-based\":[97]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.hirschfeld.org/writings/media/FreudenbergIngallsFelgentreffPapeHirschfeld_2014_SqueakJSAModernAndPracticalSmalltalkThatRunsInAnyBrowser_AcmDL.pdf\"},{\"Ty\":1,\"U\":\"https://publishup.uni-potsdam.de/frontdoor/index/index/docId/39176\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2661088.2661100\"},{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2661088.2661100\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?doid=2661088.2661100\"},{\"Ty\":0,\"U\":\"http://doi.acm.org/10.1145/2775052.2661100\"}],\"VFN\":\"Dynamic Languages Symposium\",\"VSN\":\"DLS\",\"V\":50,\"I\":2,\"FP\":57,\"LP\":66,\"DOI\":\"10.1145/2775052.2661100\",\"CC\":{\"171056846\":[\"Recent attempts at re-implementing or re-engineering the Squeak VM have shown that good performance is difficult to achieve [2, 13, 17].\"],\"1493929095\":[\"Recent attempts at re-implementing or re-engineering the Squeak VM have shown that good performance is difficult to achieve [2, 13, 17].\",\"The R/SqueakVM (based on the Spy [2]) is an RPythonbased implementation of Squeak that uses this scheme [17].\",\"R/SqueakVM, based on Spy [2], is an implementation of Squeak in the PyPy framework [17].\"],\"1584747838\":[\"The original Squeak VM is written in “Slang”, a subset of Smalltalk with C semantics, which can be translated to C easily [6].\",\"Both are written in Slang [6], a Smalltalk subset that directly translates to C.\"],\"1770006921\":[\"In contrast to such language implementations that host much of its core functionality inside of the VM, Squeak implements much of its kernel in Smalltalk [5] itself.\",\"Squeak virtual machines The root for all Squeak implementations is the original Squeak VM [8], that aims to provide an open Smalltalk-80 system [5].\"],\"2021429765\":[\"Other languages on top of JavaScript O’Browser [3] (OCaml), BicaVM8 (Java), and Doppio9 (Java), among others, are JavaScript implementations of VMs for static languages.\"],\"2024901245\":[\"In Lively, most tools are parts [10]—parts are compositions of morphs [11] with associated, instance-specific behavior.\"],\"2099822290\":[\"Educational applications such as Etoys [9] and early versions of Scratch [12], however, suffer from restrictions against installing native software in scholastic environments.\"],\"2125897312\":[\"Whalesong [19] (Racket), Biwa6 (Scheme), and Skulpt7 (Python), among others, are JavaScript implementations of VMs for dynamic languages.\"],\"2156487548\":[\"Dynamic languages such as Python or Ruby have successfully been translated into JavaScript using the automatic translation toolchain Emscripten [20].\"],\"2160959221\":[\"The RoarVM [16] implements Squeak with a focus on exploiting manycore hardware.\"],\"2172147300\":[\"The Squeak/Smalltalk development environment [8] and its derivatives are the basis for a number of interesting applications in research and education.\",\"The process to get it up and running roughly consists of the steps described by Dan Ingalls [8]:\",\"Squeak virtual machines The root for all Squeak implementations is the original Squeak VM [8], that aims to provide an open Smalltalk-80 system [5].\"],\"2471814997\":[\"However, even with RPython’s tracing just-in-time (JIT) compiler [1], the performance of pure-Smalltalk BitBlt is still about an order of magnitude slower than a C-based implementation, indicating that a native (which in our case means JavaScript) implementation is still preferable to achieve good performance.\"]},\"PR\":[2074211779,2739518953,2172147300,2145317012,2025169688,1582642138,2784299757,2790620778,2159392907,2400705738,2048102561,2518019954,1983462040,2126017151,2117191710,1982725024,2072005628,2368996010,72484077,2736093892,2074211779,2739518953,2172147300,2145317012,2025169688,1582642138,2784299757,2790620778,2159392907,2400705738,2048102561,2518019954,1983462040,2126017151,2117191710,1982725024,2072005628,2368996010,72484077,2736093892],\"ANF\":[{\"FN\":\"Bert\",\"LN\":\"Freudenberg\",\"S\":1},{\"FN\":\"Dan H.H.\",\"LN\":\"Ingalls\",\"S\":2},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":3},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":4},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":5}],\"BV\":\"dynamic languages symposium\",\"BT\":\"a\",\"PB\":\"ACM\"}"},{"logprob":-20.309,"Id":2403131032,"Ty":"0","Ti":"babelsberg js a browser based implementation of an object constraint language","Pt":"3","Y":2014,"D":"2014-01-01","CC":5,"ECC":5,"RId":[1480909796,2084944215,2116136092,1578785003,1519503479,2123396057,2171267342,2432221968,2339376177,2073536284,2078404830,2053637323,2139672701,2132233302,2164778826,2168617729,1527077815,2092889191,1964412230,2012072241,2041808580,2024901245,2342444439,2107596222,2103729840,2139272205],"W":["babelsberg","browser","constraint","implementation","js","language","object"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":1},{"DAuN":"Alan Borning","AuN":"alan borning","AuId":2020136591,"DAfN":"University of Washington","AfN":"university of washington","AfId":201448701,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":3},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4},{"DAuN":"Yoshiki Ohshima","AuN":"yoshiki ohshima","AuId":2122858989,"DAfN":"Viewpoints Research Institute","AfN":"viewpoints research institute","AfId":886105272,"S":5},{"DAuN":"Bert Freudenberg","AuN":"bert freudenberg","AuId":2776489000,"DAfN":"Viewpoints Research Institute","AfN":"viewpoints research institute","AfId":886105272,"S":6},{"DAuN":"Robert Krahn","AuN":"robert krahn","AuId":1836152203,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":7}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Object Constraint Language","FN":"object constraint language","FId":133264317},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Encapsulation (computer programming)","FN":"encapsulation","FId":123113035},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Architecture","FN":"architecture","FId":123657996}],"C":{"CN":"ecoop","CId":1177184315},"CI":{"CIN":"ecoop 2014","CIId":549993},"E":"{\"DN\":\"Babelsberg/JS - A Browser-Based Implementation of an Object Constraint Language.\",\"IA\":{\"IndexLength\":261,\"InvertedIndex\":{\"��\":[0,6,9,36,53],\"�\":[1,2,3,4,5,7,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,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63],\"���\":[8],\"Constraints\":[64],\"provide\":[65,203],\"a\":[66,79,86,122,188,198,245],\"useful\":[67],\"technique\":[68],\"for\":[69,159],\"ensuring\":[70],\"that\":[71,113,124,133,154,222,249],\"desired\":[72],\"properties\":[73],\"hold\":[74],\"in\":[75,85,121,135,209],\"an\":[76,105,110,157,172,185],\"application.\":[77],\"As\":[78],\"result,\":[80],\"they\":[81],\"have\":[82,163,224],\"been\":[83],\"used\":[84],\"wide\":[87],\"range\":[88],\"of\":[89,104,200],\"applications,\":[90,161],\"including\":[91],\"graphical\":[92],\"layout,\":[93],\"simulation,\":[94],\"scheduling,\":[95],\"and\":[96,102,127,132,202,233],\"problem-solving.\":[97],\"We\":[98,191],\"describe\":[99],\"the\":[100,118,149,193,213],\"design\":[101,232],\"implementation\":[103,186,234],\"Object\":[106,141,176],\"Constraint\":[107,142,177],\"Programming\":[108,143,178],\"language,\":[109,195],\"object-oriented\":[111,129],\"language\":[112,120],\"cleanly\":[114],\"integrates\":[115],\"constraints\":[116,208,225],\"with\":[117,184],\"underlying\":[119,150],\"way\":[123],\"respects\":[125],\"encapsulation\":[126],\"standard\":[128],\"programming\":[130],\"techniques,\":[131],\"runs\":[134],\"browser-based\":[136],\"applications.\":[137],\"Prior\":[138],\"work\":[139,254],\"on\":[140,147,197],\"languages\":[144],\"has\":[145],\"relied\":[146],\"modifying\":[148],\"Virtual\":[151,180],\"Machine,\":[152],\"but\":[153],\"is\":[155],\"not\":[156],\"option\":[158],\"web-based\":[160],\"which\":[162],\"become\":[164],\"increasingly\":[165],\"prominent.\":[166],\"In\":[167],\"this\":[168],\"paper,\":[169],\"we\":[170],\"present\":[171],\"approach\":[173],\"to\":[174,239,253,256],\"implementing\":[175],\"without\":[179,207],\"Machine\":[181],\"support,\":[182],\"along\":[183],\"as\":[187,216,242,244],\"JavaScript\":[189,218],\"extension.\":[190],\"demonstrate\":[192],\"resulting\":[194],\"Babelsberg/JS,\":[196],\"number\":[199],\"applications\":[201],\"performance\":[204],\"measurements.\":[205],\"Programs\":[206],\"Babelsberg/JS\":[210],\"run\":[211,229],\"at\":[212],\"same\":[214],\"speed\":[215],\"pure\":[217],\"versions,\":[219],\"while\":[220],\"programs\":[221],\"do\":[223],\"can\":[226],\"still\":[227],\"be\":[228],\"efficiently.\":[230],\"Our\":[231],\"also\":[235],\"incorporate\":[236],\"incremental\":[237],\"re-solving\":[238],\"support\":[240],\"interaction,\":[241],\"well\":[243],\"cooperating\":[246],\"solvers\":[247,252],\"architecture\":[248],\"allows\":[250],\"multiple\":[251],\"together\":[255],\"solve\":[257],\"more\":[258],\"difficult\":[259],\"problems.\":[260]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.freudenbergs.de/bert/publications/Felgentreff-2014-BabelsbergJS.pdf\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/ecoop/ecoop2014.html#FelgentreffBHLOFK14\"}],\"VFN\":\"European Conference on Object-Oriented Programming\",\"VSN\":\"ECOOP\",\"FP\":411,\"LP\":436,\"PR\":[1558707871,2017385491,1640862671,2104280678,1566917135,2467515857,2149509898,2160298366,2166279570,2163762352,2793122378,2394200065,2405981421,1850161191,2108552356,2001914486,1992939259,2767137645,39793983,82137051,1558707871,2017385491,1640862671,2104280678,1566917135,2467515857,2149509898,2160298366,2166279570,2163762352,2793122378,2394200065,2405981421,1850161191,2108552356,2001914486,1992939259,2767137645,39793983,82137051],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Alan\",\"LN\":\"Borning\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":4},{\"FN\":\"Yoshiki\",\"LN\":\"Ohshima\",\"S\":5},{\"FN\":\"Bert\",\"LN\":\"Freudenberg\",\"S\":6},{\"FN\":\"Robert\",\"LN\":\"Krahn\",\"S\":7}],\"BV\":\"ECOOP\",\"BT\":\"p\"}"},{"logprob":-20.434,"Id":2466549770,"Ty":"0","Ti":"babelsberg js","Pt":"3","Y":2014,"D":"2014-08-01","CC":5,"ECC":5,"RId":[1556566737,1480909796,2084944215,2116136092,1578785003,1519503479,2123396057,2171267342,2073536284,2078404830,2053637323,2139672701,2132233302,2164778826,2168617729,1527077815,2092889191,1964412230,2339290067,2012072241,2041808580,2024901245,2342444439,2107596222,2103729840,2139272205,2482730817],"W":["babelsberg","js"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Alan Borning","AuN":"alan borning","AuId":2020136591,"DAfN":"University of Washington","AfN":"university of washington","AfId":201448701,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4},{"DAuN":"Yoshiki Ohshima","AuN":"yoshiki ohshima","AuId":2122858989,"DAfN":"Viewpoints Research Institute","AfN":"viewpoints research institute","AfId":886105272,"S":5},{"DAuN":"Bert Freudenberg","AuN":"bert freudenberg","AuId":2776489000,"DAfN":"Viewpoints Research Institute","AfN":"viewpoints research institute","AfId":886105272,"S":6},{"DAuN":"Robert Krahn","AuN":"robert krahn","AuId":1836152203,"DAfN":"SAP Labs, Communications Design Group, San Francisco, USA\t","S":7}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Scheduling (computing)","FN":"scheduling","FId":113200698},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Fifth-generation programming language","FN":"fifth generation programming language","FId":199305712},{"DFN":"Encapsulation (computer programming)","FN":"encapsulation","FId":123113035},{"DFN":"Constraint satisfaction","FN":"constraint satisfaction","FId":44616089},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Architecture","FN":"architecture","FId":123657996}],"C":{"CN":"ecoop","CId":1177184315},"CI":{"CIN":"ecoop 2014","CIId":549993},"E":"{\"DN\":\"Babelsberg/JS\",\"IA\":{\"IndexLength\":197,\"InvertedIndex\":{\"Constraints\":[0],\"provide\":[1,139],\"a\":[2,15,22,58,124,134,181],\"useful\":[3],\"technique\":[4],\"for\":[5,95],\"ensuring\":[6],\"that\":[7,49,60,69,90,158,185],\"desired\":[8],\"properties\":[9],\"hold\":[10],\"in\":[11,21,57,71,145],\"an\":[12,41,46,93,108,121],\"application.\":[13],\"As\":[14],\"result,\":[16],\"they\":[17],\"have\":[18,99,160],\"been\":[19],\"used\":[20],\"wide\":[23],\"range\":[24],\"of\":[25,40,136],\"applications,\":[26,97],\"including\":[27],\"graphical\":[28],\"layout,\":[29],\"simulation,\":[30],\"scheduling,\":[31],\"and\":[32,38,63,68,138,169],\"problem-solving.\":[33],\"We\":[34,127],\"describe\":[35],\"the\":[36,54,85,129,149],\"design\":[37,168],\"implementation\":[39,122,170],\"Object\":[42,77,112],\"Constraint\":[43,78,113],\"Programming\":[44,79,114],\"language,\":[45,131],\"object-oriented\":[47,65],\"language\":[48,56],\"cleanly\":[50],\"integrates\":[51],\"constraints\":[52,144,161],\"with\":[53,120],\"underlying\":[55,86],\"way\":[59],\"respects\":[61],\"encapsulation\":[62],\"standard\":[64],\"programming\":[66],\"techniques,\":[67],\"runs\":[70],\"browser-based\":[72],\"applications.\":[73],\"Prior\":[74],\"work\":[75,190],\"on\":[76,83,133],\"languages\":[80],\"has\":[81],\"relied\":[82],\"modifying\":[84],\"Virtual\":[87,116],\"Machine,\":[88],\"but\":[89],\"is\":[91],\"not\":[92],\"option\":[94],\"web-based\":[96],\"which\":[98],\"become\":[100],\"increasingly\":[101],\"prominent.\":[102],\"In\":[103],\"this\":[104],\"paper,\":[105],\"we\":[106],\"present\":[107],\"approach\":[109],\"to\":[110,175,189,192],\"implementing\":[111],\"without\":[115,143],\"Machine\":[117],\"support,\":[118],\"along\":[119],\"as\":[123,152,178,180],\"JavaScript\":[125,154],\"extension.\":[126],\"demonstrate\":[128],\"resulting\":[130],\"Babelsberg/JS,\":[132],\"number\":[135],\"applications\":[137],\"performance\":[140],\"measurements.\":[141],\"Programs\":[142],\"Babelsberg/JS\":[146],\"run\":[147,165],\"at\":[148],\"same\":[150],\"speed\":[151],\"pure\":[153],\"versions,\":[155],\"while\":[156],\"programs\":[157],\"do\":[159],\"can\":[162],\"still\":[163],\"be\":[164],\"efficiently.\":[166],\"Our\":[167],\"also\":[171],\"incorporate\":[172],\"incremental\":[173],\"re-solving\":[174],\"support\":[176],\"interaction,\":[177],\"well\":[179],\"cooperating\":[182],\"solvers\":[183,188],\"architecture\":[184],\"allows\":[186],\"multiple\":[187],\"together\":[191],\"solve\":[193],\"more\":[194],\"difficult\":[195],\"problems.\":[196]}},\"S\":[{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=2945664\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?id=2945664\"}],\"VFN\":\"European Conference on Object-Oriented Programming\",\"VSN\":\"ECOOP\",\"FP\":411,\"LP\":436,\"DOI\":\"10.1007/978-3-662-44202-9_17\",\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Alan\",\"LN\":\"Borning\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":4},{\"FN\":\"Yoshiki\",\"LN\":\"Ohshima\",\"S\":5},{\"FN\":\"Bert\",\"LN\":\"Freudenberg\",\"S\":6},{\"FN\":\"Robert\",\"LN\":\"Krahn\",\"S\":7}],\"BV\":\"Proceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 8586\",\"BT\":\"p\",\"PB\":\"Springer-Verlag New York, Inc.\"}"},{"logprob":-20.547,"Id":2019153550,"Ty":"0","Ti":"specifying and solving constraints on object behavior","Pt":"1","Y":2014,"D":"2014-01-01","CC":9,"ECC":9,"RId":[2138363365,2339376177],"W":["behavior","constraints","object","solving","specifying"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"S":1},{"DAuN":"Alan Borning","AuN":"alan borning","AuId":2020136591,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"S":3}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"J":{"JN":"the journal of object technology","JId":172897590},"E":"{\"DN\":\"Specifying and Solving Constraints on Object Behavior.\",\"S\":[{\"Ty\":1,\"U\":\"http://www.jot.fm/contents/issue_2014_09/article1.html\"},{\"Ty\":1,\"U\":\"https://doi.org/10.5381/jot.2014.13.4.a1\"}],\"VFN\":\"The Journal of Object Technology\",\"V\":13,\"I\":4,\"DOI\":\"10.5381/jot.2014.13.4.a1\",\"PR\":[2131813762,1601692025,1973697328,2552637150,2743114672,137102142,1571504853,2620713733,2066852529,2069459650,1591212393,2148904864,2389054299,2129856423,2013398477,43413856,1834331905,1496243523,1529354938,1978251919,2131813762,1601692025,1973697328,2552637150,2743114672,137102142,1571504853,2620713733,2066852529,2069459650,1591212393,2148904864,2389054299,2129856423,2013398477,43413856,1834331905,1496243523,1529354938,1978251919],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Alan\",\"LN\":\"Borning\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"The Journal of Object Technology\",\"BT\":\"a\"}"},{"logprob":-20.594,"Id":2552637150,"Ty":"0","Ti":"declaring constraints on object oriented collections","Pt":"1","L":"en","Y":2016,"D":"2016-01-01","CC":0,"ECC":0,"RId":[1480909796,2172147300,2045398665,1909822857,2073536284,2339464104,2101512909,2053637323,2103668392,2168617729,1556513858,2109276114,1617230687,2339290067,2466549770,2019153550,2110382134,2103729840],"W":["collections","constraints","declaring","object","oriented"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Maria Graber","AuN":"maria graber","AuId":2231566632,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Alan Borning","AuN":"alan borning","AuId":2020136591,"DAfN":"University of Washington","AfN":"university of washington","AfId":201448701,"S":4},{"DAuN":"Hidehiko Masuhara","AuN":"hidehiko masuhara","AuId":2087436944,"DAfN":"Tokyo Institute of Technology","AfN":"tokyo institute of technology","AfId":114531698,"S":5}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Object-oriented programming","FN":"object oriented programming","FId":73752529},{"DFN":"Inductive programming","FN":"inductive programming","FId":50033165},{"DFN":"Fifth-generation programming language","FN":"fifth generation programming language","FId":199305712},{"DFN":"Constraint satisfaction","FN":"constraint satisfaction","FId":44616089},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Constraint learning","FN":"constraint learning","FId":29230964},{"DFN":"Constraint (mathematics)","FN":"constraint","FId":30416901},{"DFN":"Concurrent constraint logic programming","FN":"concurrent constraint logic programming","FId":204306468},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"J":{"JN":"journal of information processing","JId":192843772},"E":"{\"DN\":\"Declaring Constraints on Object-oriented Collections\",\"S\":[{\"Ty\":1,\"U\":\"https://www.jstage.jst.go.jp/article/ipsjjip/24/6/24_917/_article\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/journals/jip/jip24.html#FelgentreffHGBM16\"},{\"Ty\":0,\"U\":\"https://www.jstage.jst.go.jp/article/ipsjjip/24/6/24_917/_pdf\"}],\"VFN\":\"Journal of Information Processing\",\"V\":24,\"I\":6,\"FP\":917,\"LP\":927,\"DOI\":\"10.2197/ipsjjip.24.917\",\"PR\":[2798639187,152399527,1976066707,2013398477,104039687,2623650524,2002120191,2066852529,18346774,1548690989,1487692308,2030929333,137102142,598166810,33308240,1588746435,116714339,112594251,2124140439,1759883707,2798639187,152399527,1976066707,2013398477,104039687,2623650524,2002120191,2066852529,18346774,1548690989,1487692308,2030929333,137102142,598166810,33308240,1588746435,116714339,112594251,2124140439,1759883707],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":2},{\"FN\":\"Maria\",\"LN\":\"Graber\",\"S\":3},{\"FN\":\"Alan\",\"LN\":\"Borning\",\"S\":4},{\"FN\":\"Hidehiko\",\"LN\":\"Masuhara\",\"S\":5}],\"BV\":\"Journal of Information Processing\",\"BT\":\"a\",\"PB\":\"Information Processing Society of Japan\"}"},{"logprob":-20.692,"Id":2331893321,"Ty":"0","Ti":"visibility of context oriented behavior and state in l","Pt":"1","L":"en@@@ja","Y":2016,"D":"2016-01-01","CC":3,"ECC":3,"RId":[1770006921,2150275961,1578785003,25798763,2244800645,2484238088,143490393,2111576674,2128029766,2341113088,1977379208],"W":["behavior","context","l","oriented","state","visibility"],"AA":[{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Hidehiko Masuhara","AuN":"hidehiko masuhara","AuId":2087436944,"DAfN":"Tokyo Institute of Technology","AfN":"tokyo institute of technology","AfId":114531698,"S":2},{"DAuN":"Atsushi Igarashi","AuN":"atsushi igarashi","AuId":2097080023,"DAfN":"Kyoto University","AfN":"kyoto university","AfId":22299242,"S":3},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4}],"F":[{"DFN":"Visibility","FN":"visibility","FId":123403432},{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Distributed computing","FN":"distributed computing","FId":120314980},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Composition (visual arts)","FN":"composition","FId":169260993}],"J":{"JN":"journal of information processing","JId":192843772},"E":"{\"DN\":\"Visibility of Context-oriented Behavior and State in L\",\"IA\":{\"IndexLength\":79,\"InvertedIndex\":{\"One\":[0],\"of\":[1,4,11,40,51,58,76],\"the\":[2,9,21,33,74],\"properties\":[3],\"context-oriented\":[5],\"programming\":[6],\"languages\":[7],\"is\":[8],\"composition\":[10],\"partial\":[12,27],\"module\":[13,34],\"definitions.\":[14],\"While\":[15],\"in\":[16,60],\"most\":[17],\"such\":[18],\"language\":[19,63],\"extensions\":[20],\"state\":[22],\"and\":[23,48,53,55],\"behavior\":[24],\"introduced\":[25],\"by\":[26],\"definitions\":[28],\"are\":[29],\"treated\":[30],\"equally\":[31],\"at\":[32],\"level,\":[35],\"we\":[36,66],\"propose\":[37,67],\"a\":[38,68],\"refinement\":[39],\"that\":[41],\"approach\":[42],\"to\":[43,72],\"allow\":[44],\"for\":[45],\"both\":[46],\"public\":[47],\"restricted\":[49],\"visibility\":[50,57],\"methods\":[52],\"local\":[54],\"shared\":[56],\"fields\":[59],\"our\":[61],\"experimental\":[62],\"L.\":[64],\"Furthermore,\":[65],\"new\":[69],\"lookup\":[70],\"mechanism\":[71],\"reduce\":[73],\"risk\":[75],\"name\":[77],\"captures.\":[78]}},\"S\":[{\"Ty\":3,\"U\":\"http://prg.is.titech.ac.jp/members/masuhara/papers/hirschfeld2015compsoft.pdf\"},{\"Ty\":3,\"U\":\"http://www.hirschfeld.org/writings/media/HirschfeldMasuharaIgarashiHirschfeld_2015_VisibilityOfContextOrientedBehaviorAndStateInL_JSSST.pdf\"}],\"VFN\":\"Journal of Information Processing\",\"V\":11,\"FP\":11,\"LP\":20,\"DOI\":\"10.11185/imt.11.11\",\"CC\":{\"1977379208\":[\"L is our exploration of the design of a COP language that tries to avoid asymmetry between module constructs for capturing partial or full implementations of system properties [10].\",\"Lone [10] was our first attempt to work on a symmetric approach to modularity in a layer-based language.\",\"In Ltwo [10], we removed the concept of a base layer entirely by moving state declarations into partial object definitions.\",\"(next [11] is similar to CLOS’ call-next-method [14] or ContextFJ’s proceed) [10] in that it invokes the next available partial method defintion of the same name and signature in the current composition.\"]},\"PR\":[2054578147,2008868264,1559532479,1597270641,2469734232,2170694982,1576697052,52191265,1995624218,1487904045,2095324918,1523296850,2206718831,2577018547,1499145217,2036035740,1522102076,161339450,1541407110,1796206066,2054578147,2008868264,1559532479,1597270641,2469734232,2170694982,1576697052,52191265,1995624218,1487904045,2095324918,1523296850,2206718831,2577018547,1499145217,2036035740,1522102076,161339450,1541407110,1796206066],\"ANF\":[{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":1},{\"FN\":\"Hidehiko\",\"LN\":\"Masuhara\",\"S\":2},{\"FN\":\"Atsushi\",\"LN\":\"Igarashi\",\"S\":3},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":4}],\"BV\":\"Journal of Information Processing\",\"BT\":\"a\",\"PB\":\"Information and Media Technologies Editorial Board\"}"},{"logprob":-20.978,"Id":2419951300,"Ty":"0","Ti":"towards reducing the need for algorithmic primitives in dynamic language vms through a tracing jit","Pt":"3","L":"en","Y":2015,"D":"2015-07-04","CC":4,"ECC":4,"RId":[1585665690,2097879961,1770006921,2072737419,64760530,2116136092,2172147300,1993335798,2021246880,2167997514,2058639022,143231896,2135416495,2012948209,1493929095,2126060880,1511848167,2302621689,2217187236],"W":["algorithmic","dynamic","jit","language","primitives","reducing","towards","tracing","vms"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":1},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":2},{"DAuN":"Lars Wassermann","AuN":"lars wassermann","AuId":2491860676,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":4},{"DAuN":"Carl Friedrich Bolz","AuN":"carl friedrich bolz","AuId":1964826138,"DAfN":"King's College London","AfN":"king s college london","AfId":183935753,"S":5}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Tracing just-in-time compilation","FN":"tracing just in time compilation","FId":50450317},{"DFN":"Tracing","FN":"tracing","FId":138673069},{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Parallel computing","FN":"parallel computing","FId":173608175},{"DFN":"Interpreter","FN":"interpreter","FId":122783720},{"DFN":"Implementation","FN":"implementation","FId":26713055},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Compiler","FN":"compiler","FId":169590947}],"C":{"CN":"icooolps","CId":2624819336},"E":"{\"DN\":\"Towards reducing the need for algorithmic primitives in dynamic language VMs through a tracing JIT\",\"IA\":{\"IndexLength\":197,\"InvertedIndex\":{\"When\":[0],\"implementing\":[1],\"virtual\":[2],\"machines,\":[3],\"besides\":[4],\"the\":[5,20,49,56,70,90,94,103,120,130,163,187,190],\"interpreter\":[6],\"and\":[7,135,145,181],\"optimization\":[8],\"facilities,\":[9],\"we\":[10,40,101,128,161],\"have\":[11],\"to\":[12,60,77,108,116,186],\"include\":[13],\"a\":[14,140,165],\"set\":[15],\"of\":[16,26,96,114],\"primitive\":[17,30,37,144,176],\"functions\":[18],\"that\":[19,159,184],\"client\":[21,50,121,146],\"language\":[22],\"can\":[23,193],\"use.\":[24],\"Some\":[25],\"these\":[27],\"implement\":[28],\"truly\":[29],\"behavior,\":[31],\"such\":[32],\"as\":[33],\"arithmetic\":[34],\"operations.\":[35],\"Other\":[36],\"functions,\":[38],\"which\":[39],\"call\":[41],\"algorithmic\":[43,106],\"primitives\":[44,68,107],\",\":[45],\"are\":[46,53],\"expressible\":[47],\"in\":[48,55,69,83,119,136,150,172,178],\"language,\":[51],\"but\":[52],\"implemented\":[54,118],\"vm\":[58,72,86,152,167],\"improve\":[61],\"performance.\":[62],\"However,\":[65],\"having\":[66],\"many\":[67],\"makes\":[74],\"it\":[75],\"harder\":[76],\"maintain\":[78],\"them,\":[79],\"or\":[80],\"re-use\":[81],\"them\":[82,115],\"alternative\":[84],\"implementations\":[88,177],\"for\":[89,105,169],\"same\":[91],\"language.\":[92,122],\"With\":[93],\"advent\":[95],\"efficient\":[97],\"tracing\":[98,155,188],\"just-in-time\":[99,156],\"compilers\":[100],\"believe\":[102],\"need\":[104],\"be\":[109,117,194],\"much\":[110],\"diminished,\":[111],\"allowing\":[112],\"more\":[113],\"In\":[125],\"this\":[126],\"work,\":[127],\"investigate\":[129],\"trade-offs\":[131],\"when\":[132],\"creating\":[133],\"primitives,\":[134],\"particular\":[137],\"how\":[138],\"large\":[139],\"difference\":[141],\"remains\":[142],\"between\":[143],\"function\":[147],\"run\":[148],\"times\":[149],\"s\":[153],\"with\":[154],\"compiler.\":[157],\"To\":[158],\"end,\":[160],\"extended\":[162],\"RSqueak/VM,\":[164],\"Squeak/Smalltalk\":[170],\"written\":[171],\"RPython.\":[173],\"We\":[174],\"compare\":[175],\"C,\":[179],\"RPython,\":[180],\"Smalltalk,\":[182],\"showing\":[183],\"due\":[185],\"JIT\":[189],\"performance\":[191],\"gap\":[192],\"significantly\":[195],\"reduced.\":[196]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.labri.fr/perso/fmoranda/icooolps15/p8.pdf\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=2843915.2843924\"},{\"Ty\":1,\"U\":\"https://kclpure.kcl.ac.uk/portal/en/publications/towards-reducing-the-need-for-algorithmic-primitives-in-dynamic-language-vms-through-a-tracing-jit(869a37e5-9e72-41e6-9012-7e658cef9ce0).html\"}],\"VFN\":\"Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"VSN\":\"ICOOOLPS\",\"FP\":7,\"DOI\":\"10.1145/2843915.2843924\",\"CC\":{\"1493929095\":[\"To explore and evaluate the trade-offs for implementing primitive functions, we use Squeak/Smalltalk running on top of the RSqueak/VM [3], an open-source2 implementation that uses the RPython meta-tracing just-in-time compiler (JIT) toolchain which also powers PyPy [4].\"],\"1770006921\":[\"BitBlt was originally published as Smalltalk code [10].\",\"The Smalltalk code for the primitives we presented has been in development for a long time — the BitBlt code originated with Smalltalk-80 [10], the replaceFrom:to:with:startingAt: method is too old to have a correct timestamp, and the large integer operations\"],\"1993335798\":[\"To explore and evaluate the trade-offs for implementing primitive functions, we use Squeak/Smalltalk running on top of the RSqueak/VM [3], an open-source2 implementation that uses the RPython meta-tracing just-in-time compiler (JIT) toolchain which also powers PyPy [4].\"],\"2012948209\":[\"Even in a community as small (compared to more mainstream languages like Ruby and Python) as Squeak/Smalltalk, there exist multiple different VM-implementations besides the one we already presented: the RoarVM [14] for running on multiprocessor systems, SqueakJS [8] which runs in the browser, Potato9 for running on the JVM.\"],\"2021246880\":[\"Writing primitive behavior in the same language as the nonprimitive user code has also been done in the Maxine VM [18].\"],\"2058639022\":[\"In Self [6], primitives are indicated by their selectors— methods whose slot name starts with underscore (_) call a primitive function.\"],\"2097879961\":[\"We show the arithmetic mean of all runs along with bootstrapped [7] confidence intervals for a 95 % confidence level.\"],\"2116136092\":[\"TraceMonkey [9], the JavaScript JIT formerly used in Firefox, also traces DOM-operations that were re-implemented in JavaScript5.\"],\"2126060880\":[\"We remove the impact of JIT warm-up from our measurements by running each benchmark 200 times in a freshly booted image, and using the last 20 results [2].\"],\"2135416495\":[\"Third, we are working to fully apply strategies [5] to RSqueak/VM.\"],\"2172147300\":[\"The original Squeak VM [13] is written in a subset of Smalltalk called Slang.\",\"BitBlt is an algorithm that combines one block of bits with another according to certain rules, and was developed to speed up graphical operations for one bit displays [11], but later extended to handle up to 32 bit of color [13].\"],\"2217187236\":[\"BitBlt is an algorithm that combines one block of bits with another according to certain rules, and was developed to speed up graphical operations for one bit displays [11], but later extended to handle up to 32 bit of color [13].\"]},\"PR\":[2590158173,2891780843,1814688937,2010448353,2051540028,2094269821,2762530511,1790698481,1993335798,2553746381,2029501338,2110403837,2095629905,2028577120,1494218080,1991722833,2126614224,2119818055,2306852532,2772827996,2590158173,2891780843,1814688937,2010448353,2051540028,2094269821,2762530511,1790698481,1993335798,2553746381,2029501338,2110403837,2095629905,2028577120,1494218080,1991722833,2126614224,2119818055,2306852532,2772827996],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":2},{\"FN\":\"Lars\",\"LN\":\"Wassermann\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4},{\"FN\":\"Carl Friedrich\",\"LN\":\"Bolz\",\"S\":5}],\"BV\":\"Proceedings of the 10th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.102,"Id":2754987505,"Ty":"0","Ti":"sista saving optimized code in snapshots for fast start up","Pt":"0","L":"en","Y":2017,"D":"2017-09-27","CC":3,"ECC":3,"RId":[1770006921,2172147300,2130711572,1993318777,2093334386,2028124543,2159558457,2118547657,2042571389,2116243944,2020591648,2132667790,2428143441,1981301796,2297445922],"W":["code","fast","optimized","saving","sista","snapshots","start"],"AA":[{"DAuN":"Clément Béra","AuN":"clement bera","AuId":2117463174,"DAfN":"French Institute for Research in Computer Science and Automation","AfN":"french institute for research in computer science and automation","AfId":1326498283,"S":1},{"DAuN":"Eliot Miranda","AuN":"eliot miranda","AuId":2305451675,"DAfN":"Independant consultant, USA","S":2},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Marcus Denker","AuN":"marcus denker","AuId":2712413470,"DAfN":"French Institute for Research in Computer Science and Automation","AfN":"french institute for research in computer science and automation","AfId":1326498283,"S":4},{"DAuN":"Stéphane Ducasse","AuN":"stephane ducasse","AuId":2013743603,"DAfN":"French Institute for Research in Computer Science and Automation","AfN":"french institute for research in computer science and automation","AfId":1326498283,"S":5}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Tracing just-in-time compilation","FN":"tracing just in time compilation","FId":50450317},{"DFN":"Source code","FN":"source code","FId":43126263},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Python (programming language)","FN":"python","FId":519991488},{"DFN":"Parallel computing","FN":"parallel computing","FId":173608175},{"DFN":"Object code","FN":"object code","FId":154526789},{"DFN":"Just-in-time compilation","FN":"just in time compilation","FId":76782552},{"DFN":"Java","FN":"java","FId":548217200},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Code generation","FN":"code generation","FId":133162039}],"E":"{\"DN\":\"Sista: Saving Optimized Code in Snapshots for Fast Start-Up\",\"IA\":{\"IndexLength\":130,\"InvertedIndex\":{\"Modern\":[0],\"virtual\":[1,39,111],\"machines\":[2],\"for\":[3,37],\"object-oriented\":[4],\"languages\":[5],\"such\":[6],\"as\":[7,90],\"Java\":[8],\"HotSpot,\":[9],\"Javascript\":[10],\"V8\":[11],\"or\":[12],\"Python\":[13],\"PyPy\":[14],\"reach\":[15,114],\"high\":[16],\"performance\":[17,64,116],\"through\":[18],\"just-in-time\":[19],\"compilation\":[20],\"techniques,\":[21],\"involving\":[22],\"on-the-fly\":[23],\"optimization\":[24],\"and\":[25,68],\"deoptimization\":[26],\"of\":[27,92,106],\"the\":[28,38,45,97,109],\"executed\":[29],\"code.\":[30,56],\"These\":[31],\"techniques\":[32],\"require\":[33],\"a\":[34,87,93,103,123],\"warm-up\":[35,58],\"time\":[36,59],\"machine\":[40,112],\"to\":[41,49,52,82],\"collect\":[42],\"information\":[43],\"about\":[44],\"code\":[46,85,127],\"it\":[47],\"executes\":[48],\"be\":[50,66],\"able\":[51],\"generate\":[53],\"highly\":[54],\"optimized\":[55,84,126],\"This\":[57],\"required\":[60],\"before\":[61],\"reaching\":[62],\"peak\":[63,115],\"can\":[65,113],\"considerable\":[67],\"problematic.\":[69],\"In\":[70],\"this\":[71],\"paper,\":[72],\"we\":[73,100],\"propose\":[74],\"an\":[75],\"approach,\":[76,99],\"Sista\":[77,110],\"(Speculative\":[78],\"Inlining\":[79],\"SmallTalk\":[80],\"Architecture)\":[81],\"persist\":[83],\"in\":[86],\"platform-independent\":[88],\"representation\":[89],\"part\":[91],\"snapshot.\":[94],\"After\":[95],\"explaining\":[96],\"overall\":[98],\"show\":[101],\"on\":[102],\"large\":[104],\"set\":[105],\"benchmarks\":[107],\"that\":[108],\"almost\":[117],\"immediately\":[118],\"after\":[119],\"start-up\":[120],\"when\":[121],\"using\":[122],\"snapshot\":[124],\"where\":[125],\"was\":[128],\"persisted.\":[129]}},\"S\":[{\"Ty\":1,\"U\":\"https://hal.inria.fr/hal-01596321\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=3132190.3132201\"}],\"VFN\":\"Proceedings of the 14th International Conference on Managed Languages and Runtimes\",\"FP\":1,\"LP\":11,\"DOI\":\"10.1145/3132190.3132201\",\"PR\":[2090996577,1547856753,2167056990,2015402832,2099044956,2057651724,2037565762,2757645763,49417684,2093760065,2091028382,158996224,2768728404,2028577120,2589710902,2018107877,2140255482,2292788936,2034000013,1596463817,2090996577,1547856753,2167056990,2015402832,2099044956,2057651724,2037565762,2757645763,49417684,2093760065,2091028382,158996224,2768728404,2028577120,2589710902,2018107877,2140255482,2292788936,2034000013,1596463817],\"ANF\":[{\"FN\":\"Clément\",\"LN\":\"Béra\",\"S\":1},{\"FN\":\"Eliot\",\"LN\":\"Miranda\",\"S\":2},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":3},{\"FN\":\"Marcus\",\"LN\":\"Denker\",\"S\":4},{\"FN\":\"Stéphane\",\"LN\":\"Ducasse\",\"S\":5}],\"BV\":\"Proceedings of the 14th International Conference on Managed Languages and Runtimes\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.123,"Id":2259132812,"Ty":"0","Ti":"lively groups shared behavior in a world of objects without classes or prototypes","Pt":"3","L":"en","Y":2015,"D":"2015-10-26","CC":3,"ECC":3,"RId":[2138363365,2143238865,2161825580,1593874741,1991604845,2150275961,2172147300,2045723688,2173184982,2115534035,1978875190,1964757858,1527077815,2165258104,2024901245,2686043342,2028986965,1982795778,2153895779,2103211722,2006987669,1578048281],"W":["behavior","classes","groups","lively","objects","prototypes","shared","without","world"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":1},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"HPI, Germany","S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":3},{"DAuN":"Lauritz Thamsen","AuN":"lauritz thamsen","AuId":2228463212,"DAfN":"Technical University of Berlin","AfN":"technical university of berlin","AfId":4577782,"S":4}],"F":[{"DFN":"Web application","FN":"web application","FId":118643609},{"DFN":"Reuse","FN":"reuse","FId":206588197},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"One-to-many","FN":"one to many","FId":2780485380},{"DFN":"Multimedia","FN":"multimedia","FId":49774154},{"DFN":"Maintainability","FN":"maintainability","FId":160713754},{"DFN":"Immediacy","FN":"immediacy","FId":2780340563},{"DFN":"Distributed computing","FN":"distributed computing","FId":120314980},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Abstraction","FN":"abstraction","FId":124304363}],"C":{"CN":"splash","CId":1173500908},"CI":{"CIN":"splash 2015","CIId":565825479},"E":"{\"DN\":\"Lively groups: shared behavior in a world of objects without classes or prototypes\",\"IA\":{\"IndexLength\":195,\"InvertedIndex\":{\"Development\":[0],\"environments\":[1],\"which\":[2],\"aim\":[3],\"to\":[4,9,20,61,86,98,128,135,180],\"provide\":[5],\"short\":[6],\"feedback\":[7],\"loops\":[8],\"developers\":[10,144],\"must\":[11,84,108],\"strike\":[12],\"a\":[13,29,46],\"balance\":[14],\"between\":[15,78,102,110],\"immediacy\":[16,191],\"and\":[17,22,53,159,189],\"the\":[18,73,129,172,185,190],\"ability\":[19],\"abstract\":[21,88],\"reuse\":[23],\"behavioral\":[24],\"modules.\":[25],\"The\":[26],\"Lively\":[27,124,134,173],\"Kernel,\":[28],\"self-supporting,\":[30],\"browser-based\":[31],\"environment\":[32],\"for\":[33,51],\"explorative\":[34,175],\"development\":[35,131,176],\"supports\":[36],\"standard\":[37],\"object-oriented\":[38],\"programming\":[39,54],\"with\":[40,66,72],\"classes\":[41],\"or\":[42,97,116],\"prototypes,\":[43],\"but\":[44],\"also\":[45],\"more\":[47],\"immediate,\":[48],\"object-centric\":[49,74,130],\"approach\":[50,170,177],\"modifying\":[52],\"visible\":[55],\"objects\":[56,80,149],\"directly.\":[57],\"This\":[58],\"allows\":[59],\"users\":[60],\"quickly\":[62],\"create\":[63],\"graphical\":[64],\"prototypes\":[65],\"concrete\":[67,112,139,193],\"objects.\":[68,104,140,168,194],\"However,\":[69],\"when\":[70],\"developing\":[71],\"approach,\":[75,143],\"sharing\":[76],\"behavior\":[77,89,152],\"similar\":[79],\"becomes\":[81],\"cumbersome.\":[82],\"Developers\":[83],\"choose\":[85,109],\"either\":[87],\"into\":[90],\"classes,\":[91],\"scatter\":[92],\"code\":[93,101,117],\"across\":[94],\"collaborating\":[95],\"objects,\":[96,182],\"manually\":[99],\"copy\":[100],\"multiple\":[103,138],\"That\":[105],\"is,\":[106],\"they\":[107,165],\"less\":[111],\"development,\":[113],\"reduced\":[114],\"maintainability,\":[115],\"duplication.\":[118],\"In\":[119,141],\"this\":[120],\"paper,\":[121],\"we\":[122],\"propose\":[123],\"Groups,\":[125],\"an\":[126],\"extension\":[127],\"tools\":[132],\"of\":[133,187,192],\"work\":[136],\"on\":[137],\"our\":[142],\"may\":[145],\"dynamically\":[146],\"group\":[147],\"live\":[148],\"that\":[150],\"share\":[151],\"using\":[153],\"tags.\":[154],\"They\":[155],\"can\":[156],\"then\":[157],\"modify\":[158],\"program\":[160],\"such\":[161],\"groups\":[162],\"as\":[163],\"if\":[164],\"were\":[166],\"single\":[167],\"Our\":[169],\"scales\":[171],\"Kernel’s\":[174],\"from\":[178],\"one\":[179],\"many\":[181],\"while\":[183],\"preserving\":[184],\"maintainability\":[186],\"abstractions\":[188]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/oopsla/fpw2015.html#FelgentreffLHT15\"},{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2846656.2846659\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=2846659\"}],\"VFN\":\"ACM conference on Systems, Programming, Languages and Applications: Software for Humanity\",\"VSN\":\"SPLASH\",\"FP\":15,\"LP\":22,\"DOI\":\"10.1145/2846656.2846659\",\"CC\":{\"1527077815\":[\"Notable environments include Self [20], Squeak/Smalltalk [7], Lisp [18], and the Lively Kernel [6, 8], which provide varying degrees of support for immediately seeing ones actions and for developing the system from within itself.\"],\"1578048281\":[\"The first option requires mental effort to find the right decomposition [19], the second option breaks encapsulation [17], while the third reduces maintainability [11].\"],\"1964757858\":[\"Lively’s main characteristics include the integration of design-time and runtime, object-centric development tools, the implementation of the Morphic User Interface Construction Environment [15], and a serialization mechanism to store objects persistently.\"],\"1978875190\":[\"It further supplies a module system that includes classes with single inheritance, traits and context-oriented layers [13].\"],\"1982795778\":[\"Dynamic Text [2] is a tool-based approach that reduces the effects of duplication in scattered code.\"],\"1991604845\":[\"The first option requires mental effort to find the right decomposition [19], the second option breaks encapsulation [17], while the third reduces maintainability [11].\"],\"2006987669\":[\"Notable environments include Self [20], Squeak/Smalltalk [7], Lisp [18], and the Lively Kernel [6, 8], which provide varying degrees of support for immediately seeing ones actions and for developing the system from within itself.\"],\"2024901245\":[\"Finally, Lively’s object serialization enables a Webbased object repository [14], called Parts Bin, into which developers publish their Morphic creations.\"],\"2028986965\":[\"Decomposition along multiple dimensions, as in Aspect- and Context-oriented Programming [5, 10], Traits [3], Mixins [3], and Multiple Inheritance [1] structure independent concerns\"],\"2045723688\":[\"Notable environments include Self [20], Squeak/Smalltalk [7], Lisp [18], and the Lively Kernel [6, 8], which provide varying degrees of support for immediately seeing ones actions and for developing the system from within itself.\",\"As first explored in the Self programming language and environment [21], this directness and livelyness shortens the development cycle [20].\"],\"2115534035\":[\"The first option requires mental effort to find the right decomposition [19], the second option breaks encapsulation [17], while the third reduces maintainability [11].\"],\"2143238865\":[\"Decomposition along multiple dimensions, as in Aspect- and Context-oriented Programming [5, 10], Traits [3], Mixins [3], and Multiple Inheritance [1] structure independent concerns\",\"It is an alternative to Aspect-oriented Programming [10], but deliberately does not resolve tangling as concern implementations are sometimes more understandable in conjunction with base code.\"],\"2150275961\":[\"Decomposition along multiple dimensions, as in Aspect- and Context-oriented Programming [5, 10], Traits [3], Mixins [3], and Multiple Inheritance [1] structure independent concerns\"],\"2153895779\":[\"Notable environments include Self [20], Squeak/Smalltalk [7], Lisp [18], and the Lively Kernel [6, 8], which provide varying degrees of support for immediately seeing ones actions and for developing the system from within itself.\"],\"2161825580\":[\"This impedes code comprehension as it trades Modular Understandability [16] for code re-use.\"],\"2165258104\":[\"Prototype-based Inheritance [22] is an approach to shared behavior, in which objects inherit attributes and functions directly from other objects.\"],\"2172147300\":[\"Notable environments include Self [20], Squeak/Smalltalk [7], Lisp [18], and the Lively Kernel [6, 8], which provide varying degrees of support for immediately seeing ones actions and for developing the system from within itself.\"],\"2173184982\":[\"Decomposition along multiple dimensions, as in Aspect- and Context-oriented Programming [5, 10], Traits [3], Mixins [3], and Multiple Inheritance [1] structure independent concerns\"]},\"PR\":[2560397142,2810428238,1527774731,1000447742,2551618779,1031839398,2295835979,8339670,166160557,2327180618,1803650737,1854987074,104889146,1488940412,2309248140,1602469780,2404621744,2246798467,412001415,2269395837,2560397142,2810428238,1527774731,1000447742,2551618779,1031839398,2295835979,8339670,166160557,2327180618,1803650737,1854987074,104889146,1488940412,2309248140,1602469780,2404621744,2246798467,412001415,2269395837],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Lauritz\",\"LN\":\"Thamsen\",\"S\":4}],\"BV\":\"Proceedings of the Workshop on Future Programming\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.194,"Id":2051540028,"Ty":"0","Ti":"language independent storage strategies for tracing jit based virtual machines","Pt":"3","L":"en","Y":2015,"D":"2015-10-21","CC":3,"ECC":3,"RId":[2080648611,2115680394,1998416211,2069902027,2013901208,2135416495,2097013380,2155628381],"W":["independent","jit","language","machines","storage","strategies","tracing","virtual"],"AA":[{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"HPI, Germany","S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":3},{"DAuN":"Anton Gulenko","AuN":"anton gulenko","AuId":2228827933,"DAfN":"Technical University of Berlin","AfN":"technical university of berlin","AfId":4577782,"S":4},{"DAuN":"Carl Friedrich Bolz","AuN":"carl friedrich bolz","AuId":1964826138,"DAfN":"King's College London","AfN":"king s college london","AfId":183935753,"S":5}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Tracing just-in-time compilation","FN":"tracing just in time compilation","FId":50450317},{"DFN":"Toolchain","FN":"toolchain","FId":2777062904},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Racket","FN":"racket","FId":2778707667},{"DFN":"Python (programming language)","FN":"python","FId":519991488},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Garbage collection","FN":"garbage collection","FId":105122174},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Compiler","FN":"compiler","FId":169590947}],"C":{"CN":"dls","CId":1133200404},"E":"{\"DN\":\"Language-independent storage strategies for tracing-JIT-based virtual machines\",\"IA\":{\"IndexLength\":157,\"InvertedIndex\":{\"Storage\":[0],\"strategies\":[1,65,93,123],\"have\":[2,15],\"been\":[3],\"proposed\":[4],\"as\":[5,56],\"a\":[6,47,57,86,149,154],\"run-time\":[7],\"optimization\":[8],\"for\":[9,19,91,112,117,129],\"the\":[10,31,64,107,139],\"PyPy\":[11,42],\"Python\":[12],\"implementation\":[13,90,111,143],\"and\":[14,23,61,89,94,119,152],\"shown\":[16],\"promising\":[17],\"results\":[18],\"optimizing\":[20],\"execution\":[21],\"speed\":[22],\"memory\":[24],\"requirements.\":[25],\"However,\":[26],\"it\":[27,146],\"remained\":[28],\"unclear\":[29],\"whether\":[30],\"approach\":[32],\"works\":[33],\"equally\":[34],\"well\":[35],\"in\":[36,132],\"other\":[37,133],\"dynamic\":[38,134],\"languages.\":[39,104],\"Furthermore,\":[40],\"while\":[41],\"is\":[43],\"based\":[44],\"on\":[45],\"RPython,\":[46],\"language\":[48],\"to\":[49,71,147],\"write\":[50],\"VMs\":[51],\"with\":[52],\"reusable\":[53,73],\"components\":[54],\"such\":[55],\"tracing\":[58],\"just-in-time\":[59],\"compiler\":[60],\"garbage\":[62],\"collection,\":[63],\"design\":[66,88],\"itself\":[67],\"was\":[68],\"not\":[69],\"generalized\":[70],\"be\":[72,99],\"across\":[74,101],\"languages\":[75],\"implemented\":[76],\"using\":[77],\"that\":[78,121],\"same\":[79],\"toolchain.\":[80],\"In\":[81],\"this\":[82],\"paper,\":[83],\"we\":[84],\"present\":[85],\"general\":[87],\"storage\":[92,122],\"show\":[95,120],\"how\":[96],\"they\":[97],\"can\":[98],\"reused\":[100],\"different\":[102],\"RPython-based\":[103,115],\"We\":[105],\"evaluate\":[106,138],\"performance\":[108,127],\"of\":[109,141],\"our\":[110,142],\"RSqueak,\":[113],\"an\":[114],\"VM\":[116],\"Squeak/Smalltalk\":[118],\"may\":[124],\"indeed\":[125],\"offer\":[126],\"benefits\":[128],\"certain\":[130],\"workloads\":[131],\"programming\":[135],\"languages.We\":[136],\"furthermore\":[137],\"generality\":[140],\"by\":[144],\"applying\":[145],\"Topaz,\":[148],\"Ruby\":[150],\"VM,\":[151],\"Pycket,\":[153],\"Racket\":[155],\"implementation.\":[156]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.hirschfeld.org/writings/media/PapeFelgentreffHirschfeldGulenkoBolz_2015_LanguageIndependentStorageStrategiesForTracingJitBasedVirtualMachines_AuthorsVersion.pdf\"},{\"Ty\":1,\"U\":\"https://kclpure.kcl.ac.uk/portal/en/publications/languageindependent-storage-strategies-for-tracingjitbased-virtual-machines(daeefa30-e419-4a20-a426-1a4ed781928a)/export.html\"},{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2816707.2816716\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2936313.2816716\"}],\"VFN\":\"Dynamic Languages Symposium\",\"VSN\":\"DLS\",\"V\":51,\"I\":2,\"FP\":104,\"LP\":113,\"DOI\":\"10.1145/2816707.2816716\",\"CC\":{\"1998416211\":[\"The recorded operations are then simplified using a form of partial evaluation [2].\"],\"2013901208\":[\"The confidence intervals comparing the two VMs have been computed following the procedure proposed by Kalibera and Jones [8].\"],\"2069902027\":[\"Truffle [11] is a generic, self-optimizing AST interpreter that makes use of the interface provided by Graal.\"],\"2080648611\":[\"We use the concept of mixins [4, 5] to provide the required level of flexibility while allowing the VM to extend the provided functionality when needed.\"],\"2097013380\":[\"Finally, in Pycket [1], we added strategies to the vector datatype.\"],\"2115680394\":[\"We use the concept of mixins [4, 5] to provide the required level of flexibility while allowing the VM to extend the provided functionality when needed.\"],\"2135416495\":[\"One optimization that has been shown to work well in the PyPy VM for Python is called storage strategies [3].\",\"However, even with the information available to the tracing JIT compiler, storage strategies are hard to apply in a general way, and have so far been implemented for PyPy only [3], but are not automatically provided to all languages built with RPython.\",\"Storage strategies have been shown to be beneficial for the Python programming language [3].\",\"Another allocation removal technique called storage strategies, or strategies for short, can optimize dynamic collections [3].\",\"This has been done for the Python interpreter PyPy [3] and in the JRuby+Truffle project [10].\"],\"2155628381\":[\"The most important optimization implemented by RPython’s tracing JIT is an aggressive escape analysis [6].\"]},\"PR\":[2135416495,2590158173,2126060880,2762530511,2553746381,2558313636,2119818055,2084480142,2112404227,2483515109,2077103208,2038670810,2124565726,2435692892,2067940794,57970420,1578437030,2772827996,2109173995,2140255482,2135416495,2590158173,2126060880,2762530511,2553746381,2558313636,2119818055,2084480142,2112404227,2483515109,2077103208,2038670810,2124565726,2435692892,2067940794,57970420,1578437030,2772827996,2109173995,2140255482],\"ANF\":[{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Anton\",\"LN\":\"Gulenko\",\"S\":4},{\"FN\":\"Carl Friedrich\",\"LN\":\"Bolz\",\"S\":5}],\"BV\":\"Proceedings of the 11th Symposium on Dynamic Languages\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.294,"Id":2051557456,"Ty":"0","Ti":"object versioning to support recovery needs using proxies to preserve previous development states in lively","Pt":"3","L":"en","Y":2015,"D":"2015-05-12","CC":2,"ECC":2,"RId":[1963557108,2092911542,2172147300,1673079227,1964757858,2139672701,1507612039,1527077815,1964316648,2293810946,2053729218,2108401299,2024901245,2090933027,2051994214,1967359581],"W":["development","lively","needs","object","preserve","previous","proxies","recovery","states","support","versioning"],"AA":[{"DAuN":"Bastian Steinert","AuN":"bastian steinert","AuId":2142371068,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Lauritz Thamsen","AuN":"lauritz thamsen","AuId":2228463212,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Undo","FN":"undo","FId":2780154230},{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Software versioning","FN":"software versioning","FId":198140048},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Database","FN":"database","FId":77088390},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"C":{"CN":"dls","CId":1133200404},"E":"{\"DN\":\"Object versioning to support recovery needs: using proxies to preserve previous development states in lively\",\"IA\":{\"IndexLength\":80,\"InvertedIndex\":{\"We\":[0,44],\"present\":[1],\"object\":[2,27,62],\"versioning\":[3,63],\"as\":[4,31],\"a\":[5],\"generic\":[6],\"approach\":[7],\"to\":[8,11,24,40,47,69],\"preserve\":[9],\"access\":[10],\"previous\":[12],\"development\":[13],\"and\":[14,28,52,76],\"application\":[15],\"states.\":[16],\"Version-aware\":[17],\"references\":[18,34],\"can\":[19,35],\"manage\":[20],\"the\":[21,25,41,49,54,71],\"modifications\":[22,39],\"made\":[23],\"target\":[26],\"record\":[29],\"versions\":[30],\"desired.\":[32],\"Such\":[33],\"be\":[36],\"provided\":[37],\"without\":[38],\"virtual\":[42],\"machine.\":[43],\"used\":[45],\"proxies\":[46],\"implement\":[48],\"proposed\":[50],\"concepts\":[51],\"demonstrate\":[53],\"Lively\":[55,67],\"Kernel\":[56],\"running\":[57],\"on\":[58],\"top\":[59],\"of\":[60,73],\"this\":[61],\"layer.\":[64],\"This\":[65],\"enables\":[66],\"users\":[68],\"undo\":[70],\"effects\":[72],\"direct\":[74],\"manipulation\":[75],\"other\":[77],\"programming\":[78],\"actions.\":[79]}},\"S\":[{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2661088.2661093\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2661088.2661093\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?doid=2661088.2661093\"}],\"VFN\":\"Dynamic Languages Symposium\",\"VSN\":\"DLS\",\"V\":50,\"I\":2,\"FP\":113,\"LP\":124,\"DOI\":\"10.1145/2775052.2661093\",\"CC\":{\"1527077815\":[\"However, the current prototype has revealed two main limitations, in particular for live programming systems such as Squeak/Smalltalk [4] or the Lively Kernel [5].\"],\"1963557108\":[\"For example, programming can involve the composition of visual elements such as in Etoys [6], Scratch [10], or Fabrik [3].\"],\"1964316648\":[\"For example, programming can involve the composition of visual elements such as in Etoys [6], Scratch [10], or Fabrik [3].\"],\"1964757858\":[\"The Lively Kernel implements Morphic [11], a framework for developing graphical applications.\"],\"2024901245\":[\"The Lively Kernel uses a Parts Bin [9] to save and publish morphs and morph compositions with associated behavior as parts.\"],\"2051994214\":[\"Continuous versioning such as provided by CoExist [14] implicitly records current snapshots of the development state and provides users access to these recorded versions.\",\"CoExist preserves fast and easy access to previous development states [14].\"],\"2139672701\":[\"Thus, proxies in this design are virtual objects [15]; they do not stand in for a specific object, but can forward intercepted interactions to any object.\"],\"2172147300\":[\"However, the current prototype has revealed two main limitations, in particular for live programming systems such as Squeak/Smalltalk [4] or the Lively Kernel [5].\"],\"2293810946\":[\"Disabling Target Object Invariants All proxies require a target object, as explained in Section , and they are designed to ensure invariants between the return values of traps and the target’s state [1].\"]},\"PR\":[2090933027,2110249885,2054404059,5488697,2254129038,2130237824,1509246915,2049751460,2016877171,2338918733,2575115320,46416002,1571004136,1498333419,2171245381,2018868098,38843509,2305896283,2203630088,2395838510,2090933027,2110249885,2054404059,5488697,2254129038,2130237824,1509246915,2049751460,2016877171,2338918733,2575115320,46416002,1571004136,1498333419,2171245381,2018868098,38843509,2305896283,2203630088,2395838510],\"ANF\":[{\"FN\":\"Bastian\",\"LN\":\"Steinert\",\"S\":1},{\"FN\":\"Lauritz\",\"LN\":\"Thamsen\",\"S\":2},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4}],\"BV\":\"dynamic languages symposium\",\"BT\":\"a\",\"PB\":\"ACM\"}"},{"logprob":-21.308,"Id":2308961128,"Ty":"0","Ti":"multi level debugging for interpreter developers","Pt":"0","L":"en","Y":2016,"D":"2016-03-14","CC":2,"ECC":2,"RId":[2160370554,1985877757,2012948209],"W":["debugging","developers","interpreter","level","multi"],"AA":[{"DAuN":"Bastian Kruck","AuN":"bastian kruck","AuId":2635296306,"DAfN":"HPI, Germany","S":1},{"DAuN":"Stefan Lehmann","AuN":"stefan lehmann","AuId":2223786367,"DAfN":"HPI, Germany","S":2},{"DAuN":"Christoph Keßler","AuN":"christoph kesler","AuId":2705790868,"DAfN":"HPI, Germany","S":3},{"DAuN":"Jakob Reschke","AuN":"jakob reschke","AuId":2345244598,"DAfN":"HPI, Germany","S":4},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":5},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"HPI, Germany","S":6},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":7}],"F":[{"DFN":"Stack (abstract data type)","FN":"stack","FId":9395851},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Language-oriented programming","FN":"language oriented programming","FId":2777828303},{"DFN":"Interpreter","FN":"interpreter","FId":122783720},{"DFN":"Debugging","FN":"debugging","FId":168065819},{"DFN":"Debugger","FN":"debugger","FId":2778485113},{"DFN":"Context switch","FN":"context switch","FId":53833338},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Call stack","FN":"call stack","FId":119024030},{"DFN":"Algorithmic program debugging","FN":"algorithmic program debugging","FId":136388014}],"E":"{\"DN\":\"Multi-level debugging for interpreter developers\",\"IA\":{\"IndexLength\":141,\"InvertedIndex\":{\"Conventional\":[0],\"debuggers\":[1,56],\"require\":[2],\"programmers\":[3,37],\"to\":[4,43,60],\"work\":[5],\"on\":[6,48,86,139],\"multiple\":[7,55],\"levels\":[8,83,109,123],\"of\":[9,28,54,84,110,128],\"abstraction\":[10,85],\"at\":[11,57],\"once\":[12,58],\"when\":[13],\"inspecting\":[14],\"call\":[15,132,136],\"stacks\":[16,133],\"or\":[17],\"data.\":[18],\"This\":[19],\"demands\":[20],\"considerable\":[21],\"cognitive\":[22],\"overhead\":[23],\"and\":[24,64,80,102,134],\"deep\":[25],\"system\":[26],\"knowledge\":[27],\"all\":[29],\"implementation\":[30],\"technologies\":[31],\"involved.\":[32],\"When\":[33],\"developing\":[34],\"an\":[35,66,71,95],\"interpreter,\":[36],\"often\":[38],\"create\":[39],\"a\":[40,45,113],\"dedicated\":[41],\"debugger\":[42,91],\"have\":[44],\"higher-level\":[46],\"perspective\":[47],\"the\":[49,51,82,126],\"client-language;\":[50],\"resulting\":[52],\"use\":[53],\"leads\":[59],\"mental\":[61],\"context\":[62],\"switches\":[63],\"needs\":[65],\"elaborated\":[67],\"method.\":[68],\"We\":[69,98,116],\"present\":[70],\"integrated\":[72],\"debugging\":[73,114,127],\"tool\":[74],\"in\":[75,112],\"which\":[76,87],\"interpreter\":[77],\"developers\":[78],\"define\":[79],\"select\":[81],\"they\":[88],\"focus.\":[89],\"Our\":[90],\"provides\":[92],\"them\":[93],\"with\":[94],\"abstraction-specialized\":[96],\"view.\":[97],\"consider\":[99],\"both\":[100],\"host-language\":[101,122],\"guest-language\":[103],\"levels,\":[104],\"since\":[105],\"either\":[106],\"may\":[107],\"be\":[108],\"interest\":[111],\"session.\":[115],\"show\":[117],\"how\":[118],\"this\":[119],\"separation\":[120],\"into\":[121],\"can\":[124],\"ease\":[125],\"applications\":[129],\"through\":[130],\"filtering\":[131],\"specializing\":[135],\"stack\":[137],\"representation\":[138],\"levels.\":[140]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/aosd/modularity2016c.html#KruckLKRFLH16\"}],\"VFN\":\"Companion Proceedings of the 15th International Conference on Modularity\",\"FP\":91,\"LP\":93,\"DOI\":\"10.1145/2892664.2892679\",\"PR\":[1899216608,1009435005,2126077537,2268556033,2165124476,1985877757,2185368734,2498902211,2602532206,1726133369,2806285345,2499947387,70008023,2810637361,2161267230,2186442435,2795148395,2181829784,2566623725,2097201766,1899216608,1009435005,2126077537,2268556033,2165124476,1985877757,2185368734,2498902211,2602532206,1726133369,2806285345,2499947387,70008023,2810637361,2161267230,2186442435,2795148395,2181829784,2566623725,2097201766],\"ANF\":[{\"FN\":\"Bastian\",\"LN\":\"Kruck\",\"S\":1},{\"FN\":\"Stefan\",\"LN\":\"Lehmann\",\"S\":2},{\"FN\":\"Christoph\",\"LN\":\"Keßler\",\"S\":3},{\"FN\":\"Jakob\",\"LN\":\"Reschke\",\"S\":4},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":5},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":6},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":7}],\"BV\":\"Companion Proceedings of the 15th International Conference on Modularity\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.572,"Id":2488511551,"Ty":"0","Ti":"optimizing sideways composition fast context oriented programming in contextpypy","Pt":"0","L":"en","Y":2016,"D":"2016-07-17","CC":2,"ECC":2,"RId":[2072737419,2150275961,1993335798,2144114063,1978875190,2097664691,2010448353,2014881790,2031573529,1990628165,2103211722,2144171313,2053158093],"W":["composition","context","contextpypy","fast","optimizing","oriented","programming","sideways"],"AA":[{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Viewpoints Research Institute","AfN":"viewpoints research institute","AfId":886105272,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Viewpoints Research Institute","AfN":"viewpoints research institute","AfId":886105272,"S":3}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Parallel computing","FN":"parallel computing","FId":173608175},{"DFN":"Modularity","FN":"modularity","FId":100648641},{"DFN":"Limiting","FN":"limiting","FId":188198153},{"DFN":"Just-in-time compilation","FN":"just in time compilation","FId":76782552},{"DFN":"Implementation","FN":"implementation","FId":26713055},{"DFN":"Distributed computing","FN":"distributed computing","FId":120314980},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Composition (visual arts)","FN":"composition","FId":169260993},{"DFN":"Compiler","FN":"compiler","FId":169590947}],"E":"{\"DN\":\"Optimizing Sideways Composition: Fast Context-oriented Programming in ContextPyPy\",\"IA\":{\"IndexLength\":130,\"InvertedIndex\":{\"The\":[0],\"prevalent\":[1],\"way\":[2],\"of\":[3,62],\"code\":[4],\"sharing\":[5],\"in\":[6,19,122],\"many\":[7],\"current\":[8],\"object\":[9],\"systems\":[10],\"is\":[11,56],\"static\":[12],\"and/or\":[13],\"single\":[14],\"inheritance;\":[15],\"both\":[16],\"are\":[17,101],\"limiting\":[18],\"situations\":[20],\"that\":[21,67,81,97,115],\"call\":[22],\"for\":[23],\"multi-dimensional\":[24],\"decomposition.\":[25],\"Sideways\":[26],\"composition\":[27,41,106],\"provides\":[28],\"a\":[29,51,123],\"technique\":[30],\"to\":[31,42],\"reduce\":[32],\"their\":[33],\"limitations.\":[34],\"Context-oriented\":[35],\"programming\":[36],\"(COP)\":[37],\"notably\":[38],\"applies\":[39],\"sideways\":[40,105],\"achieve\":[43],\"better\":[44],\"modularity.\":[45],\"However,\":[46],\"most\":[47],\"COP\":[48,124],\"implementations\":[49,70],\"have\":[50,78],\"substantial\":[52],\"performance\":[53,85,128],\"overhead.\":[54],\"This\":[55],\"partly\":[57],\"because\":[58],\"weaving\":[59],\"and\":[60,107],\"execution\":[61],\"layered\":[63],\"methods\":[64],\"violate\":[65],\"assumptions\":[66],\"common\":[68],\"language\":[69],\"hold\":[71],\"about\":[72],\"lookup.\":[73],\"Meta-tracing\":[74],\"just-in-time\":[75],\"(JIT)\":[76],\"compilers\":[77,100],\"unique\":[79],\"characteristics\":[80],\"can\":[82,89,126],\"alleviate\":[83],\"the\":[84,119],\"overhead,\":[86],\"as\":[87],\"they\":[88],\"treat\":[90],\"lookup\":[91],\"differently.\":[92],\"We\":[95],\"show\":[96],\"meta-tracing\":[98],\"JIT\":[99,120],\"good\":[102],\"at\":[103],\"optimizing\":[104],\"give\":[108],\"initial,\":[109],\"supporting\":[110],\"results.\":[111],\"Furthermore,\":[112],\"we\":[113],\"suggest\":[114],\"explicit\":[116],\"communication\":[117],\"with\":[118],\"compiler\":[121],\"implementation\":[125],\"improve\":[127],\"further.\":[129]}},\"S\":[{\"Ty\":1,\"U\":\"http://dl.acm.org/citation.cfm?doid=2951965.2951967\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?id=2951967\"},{\"Ty\":0,\"U\":\"http://doi.acm.org/10.1145/2951965.2951967\"}],\"VFN\":\"Proceedings of the 8th International Workshop on Context-Oriented Programming\",\"FP\":13,\"LP\":20,\"DOI\":\"10.1145/2951965.2951967\",\"PR\":[2674334413,2461956201,2309639351,2562516578,2242016257,2889219874,77792343,2291177998,2899159195,1498826398,1009010,2464627483,203994998,2552875977,2147143476,2271781913,1607380961,1589893694,2485976130,2783614532,2674334413,2461956201,2309639351,2562516578,2242016257,2889219874,77792343,2291177998,2899159195,1498826398,1009010,2464627483,203994998,2552875977,2147143476,2271781913,1607380961,1589893694,2485976130,2783614532],\"ANF\":[{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"Proceedings of the 8th International Workshop on Context-Oriented Programming\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.627,"Id":2534536750,"Ty":"0","Ti":"how to build a high performance vm for squeak smalltalk in your spare time an experience report of using the rpython toolchain","Pt":"0","L":"en","Y":2016,"D":"2016-08-23","CC":3,"ECC":3,"RId":[2150275961,2172147300,1993335798,2058213389,2135416495,2012948209,1493929095,1981301796,2419951300,2051540028],"W":["build","experience","high","performance","rpython","smalltalk","spare","squeak","time","toolchain","vm","your"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Patrick Rein","AuN":"patrick rein","AuId":2229220081,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Tracing just-in-time compilation","FN":"tracing just in time compilation","FId":50450317},{"DFN":"Toolchain","FN":"toolchain","FId":2777062904},{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Spare part","FN":"spare part","FId":194648553},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Operating system","FN":"operating system","FId":111919701},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Cog","FN":"cog","FId":4661277}],"E":"{\"DN\":\"How to Build a High-Performance VM for Squeak/Smalltalk in Your Spare Time: An Experience Report of Using the RPython Toolchain\",\"IA\":{\"IndexLength\":111,\"InvertedIndex\":{\"In\":[0,78],\"this\":[1,79],\"paper\":[2],\"we\":[3,82],\"present\":[4],\"our\":[5],\"experience\":[6,30,80],\"in\":[7],\"letting\":[8],\"students\":[9],\"develop\":[10],\"RSqueak/VM,\":[11],\"a\":[12,54,91],\"fast\":[13],\"virtual\":[14],\"machine\":[15],\"for\":[16,41,94],\"executing\":[17],\"Squeak/Smalltalk,\":[18],\"over\":[19],\"the\":[20,33,63,84,105],\"course\":[21],\"of\":[22,76,88,108],\"multiple\":[23],\"introductory\":[24],\"VM\":[25,50,109],\"courses\":[26],\"and\":[27,73,86,96],\"projects.\":[28],\"Our\":[29],\"indicates\":[31],\"that\":[32,57],\"way\":[34],\"RSqueak/VM\":[35,89],\"is\":[36,58,69],\"constructed\":[37],\"makes\":[38],\"it\":[39],\"easy\":[40],\"developers\":[42],\"with\":[43],\"little\":[44],\"or\":[45],\"no\":[46],\"prior\":[47],\"exposure\":[48],\"to\":[49,52,62,103],\"development\":[51],\"construct\":[53],\"Squeak\":[55,72],\"runtime\":[56],\"very\":[59],\"nearly\":[60],\"competitive\":[61],\"professional\":[64],\"grade\":[65],\"Cog\":[66],\"VM,\":[67],\"which\":[68],\"used\":[70],\"by\":[71],\"other\":[74],\"flavors\":[75],\"Smalltalk.\":[77],\"report\":[81],\"discuss\":[83],\"benefits\":[85],\"drawbacks\":[87],\"as\":[90],\"research\":[92],\"vehicle\":[93],\"developing\":[95],\"evaluating\":[97],\"Smalltalk\":[98],\"language\":[99],\"extensions\":[100],\"without\":[101],\"having\":[102],\"learn\":[104],\"deep\":[106],\"secrets\":[107],\"development.\":[110]}},\"S\":[{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?doid=2991041.2991062\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/iwst/iwst2016.html#FelgentreffPRH16\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2991041.2991062\"},{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2991041.2991062\"}],\"VFN\":\"Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies\",\"FP\":21,\"DOI\":\"10.1145/2991041.2991062\",\"PR\":[2012948209,2021246880,2739518953,2065830560,2074211779,2533176871,2145317012,2030847413,2616278256,2128112082,2415119835,2468231336,2124057877,2098771596,2551522387,175996381,2047156984,2106497613,2266605095,1847197715,2012948209,2021246880,2739518953,2065830560,2074211779,2533176871,2145317012,2030847413,2616278256,2128112082,2415119835,2468231336,2124057877,2098771596,2551522387,175996381,2047156984,2106497613,2266605095,1847197715],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":2},{\"FN\":\"Patrick\",\"LN\":\"Rein\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4}],\"BV\":\"Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.629,"Id":2111708921,"Ty":"0","Ti":"follow the path debugging state anomalies along execution histories","Pt":"3","L":"en","Y":2014,"D":"2014-02-01","CC":4,"ECC":4,"RId":[2110908283,2162376048,2116409384,2162045655,2172147300,2099866050,2164372721,1574060188,2165663378,1983119041,1673079227,2002985857,2133099573,2114178685,2782959840,1507612039,175708229,1986331539,2125825154,2092239677,2092221178,1482473201,1981537308,1774013863,2002568360,1972151373,2798692074,2065296680,2066031375,169400382,2105263737],"W":["anomalies","debugging","execution","follow","histories","path","state"],"AA":[{"DAuN":"Michael Perscheid","AuN":"michael perscheid","AuId":698431335,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":3}],"F":[{"DFN":"Thread (computing)","FN":"thread","FId":138101251},{"DFN":"Test case","FN":"test case","FId":128942645},{"DFN":"Root cause","FN":"root cause","FId":84945661},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Property (programming)","FN":"property","FId":87551280},{"DFN":"Observable","FN":"observable","FId":32848918},{"DFN":"Failure causes","FN":"failure causes","FId":28944875},{"DFN":"Debugging","FN":"debugging","FId":168065819},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"C":{"CN":"csmr","CId":1145597874},"E":"{\"DN\":\"Follow the path: Debugging state anomalies along execution histories\",\"IA\":{\"IndexLength\":218,\"InvertedIndex\":{\"To\":[0,176],\"understand\":[1],\"how\":[2],\"observable\":[3,155],\"failures\":[4,76],\"come\":[5],\"into\":[6],\"being,\":[7],\"back-in-time\":[8,55],\"debuggers\":[9],\"help\":[10],\"developers\":[11,36,135,183,203],\"by\":[12],\"providing\":[13],\"full\":[14],\"access\":[15],\"to\":[16,30,39,78,130,150,201,205],\"past\":[17,132],\"executions.\":[18],\"However,\":[19],\"such\":[20],\"potentially\":[21],\"large\":[22,142],\"execution\":[23,99],\"histories\":[24],\"do\":[25],\"not\":[26],\"include\":[27],\"any\":[28],\"hints\":[29],\"failure\":[31,66],\"causes.\":[32,81],\"For\":[33],\"that\":[34,68,93,195],\"reason,\":[35],\"are\":[37],\"forced\":[38],\"ascertain\":[40],\"unexpected\":[41,95],\"state\":[42,87,96,128,162,197],\"properties\":[43,97,105],\"and\":[44,61,124,171,204],\"wrong\":[45],\"behavior\":[46,109],\"completely\":[47,160],\"on\":[48],\"their\":[49,79],\"own.\":[50],\"Without\":[51],\"deep\":[52],\"program\":[53],\"understanding,\":[54],\"debugging\":[56,91,185],\"can\":[57],\"end\":[58],\"in\":[59],\"countless\":[60],\"difficult\":[62],\"questions\":[63],\"about\":[64],\"possible\":[65],\"causes\":[67,153],\"consume\":[69],\"a\":[70,90,137,190,216],\"lot\":[71],\"of\":[72,110,144,166,215],\"time\":[73,209],\"for\":[74,210],\"following\":[75],\"back\":[77],\"root\":[80,213],\"In\":[82],\"this\":[83],\"paper,\":[84],\"we\":[85,114,180,192],\"present\":[86],\"navigation\":[88,163,170,198],\"as\":[89,127,164],\"guide\":[92],\"highlights\":[94],\"along\":[98],\"histories.\":[100],\"After\":[101],\"deriving\":[102],\"common\":[103,138],\"object\":[104],\"from\":[106],\"the\":[107,121,131,141,154,207,212],\"expected\":[108],\"passing\":[111],\"test\":[112],\"cases,\":[113],\"generate\":[115],\"likely\":[116],\"invariants,\":[117],\"compare\":[118],\"them\":[119,149],\"with\":[120],\"failing\":[122],\"run,\":[123],\"map\":[125],\"differences\":[126],\"anomalies\":[129],\"execution.\":[133],\"So,\":[134],\"obtain\":[136],\"thread\":[139],\"through\":[140],\"amount\":[143],\"run-time\":[145],\"data\":[146],\"which\":[147],\"helps\":[148],\"answer\":[151],\"what\":[152],\"failure.\":[156,217],\"We\":[157],\"implement\":[158],\"our\":[159,167,178,196],\"automatic\":[161],\"part\":[165],\"test-driven\":[168],\"fault\":[169],\"its\":[172],\"Path\":[173],\"tools\":[174],\"framework.\":[175],\"evaluate\":[177],\"approach,\":[179],\"observe\":[181],\"eight\":[182],\"during\":[184],\"four\":[186],\"non-trivial\":[187],\"failures.\":[188],\"As\":[189],\"result,\":[191],\"find\":[193],\"out\":[194],\"is\":[199],\"able\":[200],\"aid\":[202],\"decrease\":[206],\"required\":[208],\"localizing\":[211],\"cause\":[214]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.hirschfeld.org/writings/media/PerscheidFelgentreffHirschfeld_2014_FollowThePathDebuggingStateAnomaliesAlongExecutionHistories_IEEE.pdf\"},{\"Ty\":1,\"U\":\"http://ieeexplore.ieee.org/document/6747162/\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/csmr/csmr2014.html#PerscheidFH14\"}],\"VFN\":\"Conference on Software Maintenance and Reengineering\",\"VSN\":\"CSMR\",\"FP\":124,\"LP\":133,\"DOI\":\"10.1109/CSMR-WCRE.2014.6747162\",\"CC\":{\"169400382\":[\"We have inserted a defect into the Seaside Web framework [8] and its request/response processing logic (BufferedResponse class, writeHeadersOn: method).\"],\"175708229\":[\"Later, a novel indexing and querying technique [24] ensures scalability to arbitrarily large execution traces and offers an interactive debugging experience.\"],\"1482473201\":[\"Unstuck [21] is the first back-in-time debugger for Smalltalk but suffers from similar performance problems.\"],\"1507612039\":[\"Object flow analysis [25] provides a practical back-in-time debugger that leverages the virtual machine and its garbage collector to remove no longer reachable objects and to discard corresponding events.\"],\"1574060188\":[\"Debugging is largely an attempt to understand what causes failures [1].\",\"They understand failure causes step by step, make fewer and simpler decisions about how to follow execution histories, and focus their attention on finding defects [1].\",\"Especially, the missing classification of suspicious and harmless program entities leads to numerous and often laborious decisions which execution subtree to follow [1].\",\"Such state differences have a high probability to include failure causes so that developers can rely on this information for creating their hypotheses [1].\"],\"1774013863\":[\"With a mapping on execution histories of our previous back-in-time debugger [5], [6], anomalies reveal infection chains and guide developers to root causes.\",\"Our test-driven fault navigation [5] is a debugging guide that integrates spectrum-based anomaly detection [10], [12] into a systematic breadth-first search for tracing failure causes back to defects.\",\"3 summarizes the call tree of our back-in-time debugger [5], [6] with our state navigation extension.\",\"We implement our state navigation as part of our test-driven fault navigation and its corresponding Path tools framework [5] for the Squeak/Smalltalk development environment [7].\",\"We base this study on our previous user study [5] in order to assess the positive influence of our state navigation.\",\"During the study, our participants are supposed to localize four failures which we have already applied in our previous study5 [5].\",\"So far, this tool already supports the classification of suspicious method calls with spectrum-based anomalies [5].\"],\"1972151373\":[\"With a mapping on execution histories of our previous back-in-time debugger [5], [6], anomalies reveal infection chains and guide developers to root causes.\",\"By integrating these spectrum-based anomalies into our back-in-time debugger [6], we highlight suspicious method calls and allow developers to distinguish between suspicious and expected run-time behavior.\",\"3 summarizes the call tree of our back-in-time debugger [5], [6] with our state navigation extension.\",\"The tool suite consists of our enhanced test runner PathMap [18] and our lightweight back-in-time debugger PathFinder [6].\",\"Compared to these tools, our PathFinder is a lightweight and specialized back-in-time debugger for localizing failure causes in failing test cases [6].\"],\"1981537308\":[\"Second, our anomalies shall be refined with interactive developer feedback [31] in such a way that identified false positives strengthen the remaining failure cause probabilities.\"],\"1983119041\":[\"Later, an extension to Daikon [26] solves this problem by optimizing polymorphism and filtering unchanged values.\"],\"1986331539\":[\"Screeners [28] further optimize the run-time overhead and decrease it to only 14 %.\"],\"2002568360\":[\"With likely invariants, our state navigation generates dynamic contracts [14] that automatically detect corrupted state in failing test cases.\"],\"2002985857\":[\"The trace-oriented debugger (TOD) [23] combines an efficient instrumentation for capturing exhaustive traces and a specialized distributed database.\"],\"2065296680\":[\"The tool suite consists of our enhanced test runner PathMap [18] and our lightweight back-in-time debugger PathFinder [6].\"],\"2066031375\":[\"Our type harvester gathers detailed type information of executed program entities [16]2.\"],\"2092221178\":[\"Compared to Daikon [11] that provides a considerable amount of more likely invariants, it has been shown that too many invariants can limit their intent for debugging [13], [17].\",\"A current study reports that automatically generated program invariants by Daikon [11] are sometimes hard to understand and tend to produce false positives [17].\",\"Finally, comparative studies [17], [30] of programmer-written and likely invariants conclude that a combination of both methods is most promising.\"],\"2092239677\":[\"Unfortunately, this idealized procedure requires deep knowledge of the system and its behavior [2].\"],\"2099866050\":[\"ClearView [29] also monitors invariants on the fly but it applies them to automatically patch upcoming failures.\"],\"2105263737\":[\"For a detailed description of our tools and how to debug with them, we refer to [19].\"],\"2110908283\":[\"3) Anomalies: What Are Possible Failure Causes?: Anomalies such as from program spectra [10] or likely invariants [11] automatically identify possible failure causes by deriving runtime properties from reference runs and comparing them with failing executions.\",\"ing dynamic analysis of likely invariants tends to be timeconsuming because each object has to be explored at each execution point in full detail [11].\",\"Compared to Daikon [11] that provides a considerable amount of more likely invariants, it has been shown that too many invariants can limit their intent for debugging [13], [17].\",\"A current study reports that automatically generated program invariants by Daikon [11] are sometimes hard to understand and tend to produce false positives [17].\",\"Daikon [11] comprises a set of automatic techniques for inferring generalized program state from execution traces.\"],\"2114178685\":[\"Finally, comparative studies [17], [30] of programmer-written and likely invariants conclude that a combination of both methods is most promising.\"],\"2116409384\":[\"Diduce [27] extends Daikon’s approach and derives invariants on the fly.\"],\"2162045655\":[\"Differences have a high probability of including failure causes [12] and so help developers to narrow down the search space by answering which program entities are potentially infected.\",\"Our test-driven fault navigation [5] is a debugging guide that integrates spectrum-based anomaly detection [10], [12] into a systematic breadth-first search for tracing failure causes back to defects.\"],\"2162376048\":[\"Since failures and defects can be far apart from each other, their unknown infection chains are consequently long and demand a laborious effort for debugging [3].\",\"However, starting debugging at failures still includes a long way back to their root causes [3].\"],\"2164372721\":[\"WhyLine [22] allows developers to ask a set of “why did” and “why didn’t” questions such as why a line of code was not reached.\",\"First, our approach will be extended with why-questions [22] to even better guide developers through execution histories.\"],\"2172147300\":[\"• The Path tools framework implements our completely automatic approach as part of our test-driven fault navigation in Squeak/Smalltalk [7].\",\"We implement our state navigation as part of our test-driven fault navigation and its corresponding Path tools framework [5] for the Squeak/Smalltalk development environment [7].\"],\"2782959840\":[\"Based on the coverage of our failing tests, we instrument each of the included classes and their methods with harvester wrappers to transparently add analysis code around the original implementation [15].\"],\"2798692074\":[\"For example, typos are common and often difficult to localize [20].\"]},\"PR\":[1774013863,2775592182,2001919024,2121847279,2164649341,1529569394,2617064411,2062154010,1605507930,2807730630,2165811181,2004141756,2099526117,2116409384,2082732081,2807463475,2118315969,1984571869,1484132159,2070544288,1774013863,2775592182,2001919024,2121847279,2164649341,1529569394,2617064411,2062154010,1605507930,2807730630,2165811181,2004141756,2099526117,2116409384,2082732081,2807463475,2118315969,1984571869,1484132159,2070544288],\"ANF\":[{\"FN\":\"Michael\",\"LN\":\"Perscheid\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE)\",\"BT\":\"p\",\"PB\":\"IEEE\"}"},{"logprob":-21.747,"Id":2040040157,"Ty":"0","Ti":"applying data driven tool development to context oriented languages","Pt":"0","L":"en","Y":2014,"D":"2014-07-28","CC":3,"ECC":3,"RId":[2150275961,2151996389,1992443356,2104686990,2144114063,1978875190,1964757858,2115607078,2087175184,175922506,1556513858,2172169742,1967922118,2002568360],"W":["applying","context","data","development","driven","languages","oriented","tool"],"AA":[{"DAuN":"Marcel Taeumel","AuN":"marcel taeumel","AuId":83004794,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3}],"F":[{"DFN":"Visual programming language","FN":"visual programming language","FId":128644962},{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Implementation","FN":"implementation","FId":26713055},{"DFN":"Graphical tools","FN":"graphical tools","FId":110673710},{"DFN":"Data-driven","FN":"data driven","FId":2780440489},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"E":"{\"DN\":\"Applying Data-driven Tool Development to Context-oriented Languages\",\"IA\":{\"IndexLength\":78,\"InvertedIndex\":{\"There\":[0],\"are\":[1],\"numerous\":[2],\"implementations\":[3],\"of\":[4],\"context-oriented\":[5],\"programming\":[6,14,51],\"on\":[7,50],\"host\":[8],\"languages\":[9],\"that\":[10],\"come\":[11],\"with\":[12],\"graphical\":[13,27],\"environments.\":[15],\"However,\":[16],\"comprehensive\":[17],\"tool\":[18,39,42],\"support\":[19],\"is\":[20,29],\"often\":[21],\"missing\":[22],\"because\":[23],\"building\":[24],\"and\":[25,41,63,72],\"integrating\":[26],\"tools\":[28,52,75],\"still\":[30],\"laborious;\":[31],\"many\":[32],\"programmers\":[33,66],\"cannot\":[34],\"afford\":[35],\"to\":[36,53,70],\"be\":[37],\"both\":[38],\"user\":[40],\"builder.\":[43],\"We\":[44,57],\"present\":[45],\"a\":[46,59],\"novel,\":[47],\"data-driven\":[48],\"approach\":[49],\"alleviate\":[54],\"this\":[55],\"problem.\":[56],\"implemented\":[58],\"framework\":[60],\"in\":[61],\"Squeak/Smalltalk\":[62],\"show\":[64],\"how\":[65],\"can\":[67],\"use\":[68],\"it\":[69],\"create\":[71],\"adapt\":[73],\"integrated\":[74],\"for\":[76],\"ContextS2.\":[77]}},\"S\":[{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?doid=2637066.2637067\"},{\"Ty\":3,\"U\":\"http://www.hirschfeld.org/writings/media/TaeumelFelgentreffHirschfeld_2014_ApplyingDataDrivenToolDevelopmentToContextOrientedLanguages_AcmDL.pdf\"},{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2637066.2637067\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2637066.2637067\"}],\"VFN\":\"Proceedings of 6th International Workshop on Context-Oriented Programming\",\"FP\":1,\"LP\":7,\"DOI\":\"10.1145/2637066.2637067\",\"CC\":{\"175922506\":[\"Java ContextJ [2], ContextJ* [10], JCop [3] JavaScript ContextJS [13], COP.\"],\"1556513858\":[\"For an example, ContextS uses classes [9] to represent layers, and its successor ContextS2 uses symbols (see Appendix A).\",\"js Lisp ContextL [7], Ambiance [8], Lambic [17] Python ContextPy [11], PyContext [18] Ruby ContextR [16], Phenomenal Gem [15] Smalltalk ContextS [9], ContextS2 (see Appendix A)\"],\"1964757858\":[\"Depending on the view, properties can range from primitive types such as strings or bitmaps to more elaborate ones such as Morphs [14].\",\"The halo concept origins from the Morphic framework [14].\"],\"1967922118\":[\"For example, the OmniBrowser [4] framework wraps concrete artifacts in abstract nodes and the Glamour [6] framework wraps concrete widgets in abstract presentations.\"],\"1978875190\":[\"Java ContextJ [2], ContextJ* [10], JCop [3] JavaScript ContextJS [13], COP.\"],\"1992443356\":[\"js Lisp ContextL [7], Ambiance [8], Lambic [17] Python ContextPy [11], PyContext [18] Ruby ContextR [16], Phenomenal Gem [15] Smalltalk ContextS [9], ContextS2 (see Appendix A)\"],\"2002568360\":[\"js Lisp ContextL [7], Ambiance [8], Lambic [17] Python ContextPy [11], PyContext [18] Ruby ContextR [16], Phenomenal Gem [15] Smalltalk ContextS [9], ContextS2 (see Appendix A)\"],\"2087175184\":[\"js Lisp ContextL [7], Ambiance [8], Lambic [17] Python ContextPy [11], PyContext [18] Ruby ContextR [16], Phenomenal Gem [15] Smalltalk ContextS [9], ContextS2 (see Appendix A)\"],\"2104686990\":[\"The research project CodeBubbles [5] shows that there can be a better metaphor for visual programming environments.\",\"The compact editors for each artifact resemble Code Bubbles’ bubbles [5].\"],\"2115607078\":[\"js Lisp ContextL [7], Ambiance [8], Lambic [17] Python ContextPy [11], PyContext [18] Ruby ContextR [16], Phenomenal Gem [15] Smalltalk ContextS [9], ContextS2 (see Appendix A)\"],\"2144114063\":[\"Indeed, for many languages where cop is available, at least two different implementations exist [1].\"],\"2150275961\":[\"Java ContextJ [2], ContextJ* [10], JCop [3] JavaScript ContextJS [13], COP.\"],\"2151996389\":[\"As an effect, programmers tend to spend much time switching between different tools [12].\"],\"2172169742\":[\"Java ContextJ [2], ContextJ* [10], JCop [3] JavaScript ContextJS [13], COP.\"]},\"PR\":[2012451248,2795148395,2081592843,2112939580,1539659309,2023450657,1997057481,1988074284,1576536479,2573288385,2134984189,2049305133,2106432842,307289775,1989296186,193141886,2576360137,2087175184,2273196620,2578076754,2012451248,2795148395,2081592843,2112939580,1539659309,2023450657,1997057481,1988074284,1576536479,2573288385,2134984189,2049305133,2106432842,307289775,1989296186,193141886,2576360137,2087175184,2273196620,2578076754],\"ANF\":[{\"FN\":\"Marcel\",\"LN\":\"Taeumel\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"Proceedings of 6th International Workshop on Context-Oriented Programming\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.796,"Id":2306471348,"Ty":"0","Ti":"reactive object queries consistent views in object oriented languages","Pt":"0","L":"en","Y":2016,"D":"2016-03-14","CC":1,"ECC":1,"RId":[2138363365,2150275961,2171267342,180056467,1978875190,1968219237,131463356,2098787757,2403131032,2024901245,1481333791,2006322307],"W":["consistent","languages","object","oriented","queries","reactive","views"],"AA":[{"DAuN":"Stefan Lehmann","AuN":"stefan lehmann","AuId":2223786367,"DAfN":"HPI, Germany","S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":2},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"HPI, Germany","S":3},{"DAuN":"Patrick Rein","AuN":"patrick rein","AuId":2229220081,"DAfN":"HPI, Germany","S":4},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":5}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Reactive programming","FN":"reactive programming","FId":150762246},{"DFN":"Predicate (grammar)","FN":"predicate","FId":40738166},{"DFN":"Object-oriented programming","FN":"object oriented programming","FId":73752529},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Imperative programming","FN":"imperative programming","FId":90871949},{"DFN":"Database","FN":"database","FId":77088390},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"E":"{\"DN\":\"Reactive object queries: consistent views in object-oriented languages\",\"IA\":{\"IndexLength\":218,\"InvertedIndex\":{\"Maintaining\":[0],\"consistency\":[1],\"between\":[2],\"data\":[3,21,32],\"throughout\":[4],\"a\":[5,49,120,141,145,149],\"system\":[6,84],\"using\":[7,159],\"scattered,\":[8],\"imperative\":[9,177],\"code\":[10],\"fragments\":[11],\"is\":[12],\"challenging.\":[13],\"Some\":[14],\"mechanisms\":[15,26,60,89,209],\"address\":[16],\"this\":[17,116],\"challenge\":[18],\"by\":[19,213],\"making\":[20],\"dependencies\":[22,33],\"explicit.\":[23],\"Among\":[24],\"these\":[25,59,87],\"are\":[27,61,164],\"reactive\":[28,71,126,160,208],\"collections,\":[29],\"which\":[30,41],\"define\":[31],\"for\":[34,48],\"collections\":[35,64],\"of\":[36,51,58,98,112,122,156,207],\"objects,\":[37],\"and\":[38,74],\"object\":[39,75,104,127,130],\"queries,\":[40],\"allow\":[42,132],\"developers\":[43],\"to\":[44,69,73,94,107,109,135],\"query\":[45],\"their\":[46,55],\"program\":[47,142,169],\"subset\":[50],\"objects.\":[52],\"However,\":[53],\"on\":[54],\"own,\":[56],\"both\":[57,123],\"limited.\":[62],\"Reactive\":[63,129],\"require\":[65],\"an\":[66],\"initial\":[67,194],\"collection\":[68],\"apply\":[70],\"operations\":[72],\"queries\":[76,105,131],\"do\":[77,102],\"not\":[78],\"update\":[79,216],\"its\":[80],\"result\":[81],\"as\":[82],\"the\":[83,96,99,113,133,168,188,201,205],\"changes.\":[85,171],\"Using\":[86],\"two\":[88],\"in\":[90,140,191],\"conjunction\":[91],\"allows\":[92],\"each\":[93],\"mitigate\":[95],\"disadvantage\":[97],\"other.\":[100],\"To\":[101,172],\"so,\":[103],\"need\":[106],\"respond\":[108],\"state\":[110,170],\"changes\":[111],\"system.\":[114],\"In\":[115],\"paper,\":[117],\"we\":[118,179],\"propose\":[119],\"combination\":[121],\"mechanisms,\":[124],\"called\":[125],\"queries.\":[128],\"developer\":[134],\"declaratively\":[136],\"select\":[137],\"all\":[138],\"objects\":[139],\"that\":[143,200],\"match\":[144],\"particular\":[146],\"predicate,\":[147],\"creating\":[148],\"view.\":[150],\"Additionally,\":[151],\"views\":[152,158,163],\"can\":[153],\"be\":[154],\"composed\":[155],\"other\":[157],\"operations.\":[161],\"All\":[162],\"automatically\":[165],\"updated\":[166],\"when\":[167],\"better\":[173],\"integrate\":[174],\"with\":[175,196,210],\"existing\":[176],\"systems,\":[178],\"provide\":[180],\"fine-grained\":[181],\"events\":[182],\"signaling\":[183],\"view\":[184],\"updates.\":[185],\"We\":[186],\"implemented\":[187],\"proposed\":[189],\"concepts\":[190],\"JavaScript.\":[192],\"Our\":[193],\"experience\":[195],\"example\":[197],\"applications\":[198],\"shows\":[199],\"combined\":[202],\"concept\":[203],\"eases\":[204],\"integration\":[206],\"object-oriented\":[211],\"environments\":[212],\"avoiding\":[214],\"scattered\":[215],\"code.\":[217]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/aosd/modularity2016c.html#LehmannFLRH16\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2892664.2892665\"}],\"VFN\":\"Companion Proceedings of the 15th International Conference on Modularity\",\"FP\":23,\"LP\":28,\"DOI\":\"10.1145/2892664.2892665\",\"PR\":[1502696193,2396584157,2227892629,2199892189,2187731152,2244924102,2770610677,1143119552,2181663775,2251496226,2131565021,34741148,2901465542,1499629559,2769399991,1551000678,2625059445,1898252943,2519289116,2119126456,1502696193,2396584157,2227892629,2199892189,2187731152,2244924102,2770610677,1143119552,2181663775,2251496226,2131565021,34741148,2901465542,1499629559,2769399991,1551000678,2625059445,1898252943,2519289116,2119126456],\"ANF\":[{\"FN\":\"Stefan\",\"LN\":\"Lehmann\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":3},{\"FN\":\"Patrick\",\"LN\":\"Rein\",\"S\":4},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":5}],\"BV\":\"Companion Proceedings of the 15th International Conference on Modularity\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.812,"Id":2045191279,"Ty":"0","Ti":"connecting object constraints with context oriented programming scoping constraints with layers and activating layers with constraints","Pt":"0","L":"en","Y":2015,"D":"2015-07-04","CC":2,"ECC":2,"RId":[2480195817,2150275961,1610570299,1992443356,2100134231,2060640309,2089889705,1978875190,2087175184,175922506,2156011560,2403131032,2466549770,2019153550,2040040157],"W":["activating","connecting","constraints","context","layers","object","oriented","programming","scoping"],"AA":[{"DAuN":"Stefan Lehmann","AuN":"stefan lehmann","AuId":2223786367,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Object Constraint Language","FN":"object constraint language","FId":133264317},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Inductive programming","FN":"inductive programming","FId":50033165},{"DFN":"Distributed computing","FN":"distributed computing","FId":120314980},{"DFN":"Constraint satisfaction","FN":"constraint satisfaction","FId":44616089},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Boolean expression","FN":"boolean expression","FId":158465420}],"E":"{\"DN\":\"Connecting Object Constraints with Context-oriented Programming: Scoping Constraints with Layers and Activating Layers with Constraints\",\"IA\":{\"IndexLength\":172,\"InvertedIndex\":{\"Context-oriented\":[0,78],\"Programming\":[1,14,79],\"extends\":[2,16],\"object-oriented\":[3,17],\"languages\":[4],\"with\":[5,66],\"a\":[6],\"mechanism\":[7,99,152],\"to\":[8,90,100,116,118],\"dynamically\":[9,91,125,138],\"adapt\":[10,92],\"behavior.\":[11],\"Object\":[12,70],\"Constraint\":[13,71],\"orthogonally\":[15],\"run-times\":[18],\"by\":[19],\"integrating\":[20],\"constraints,\":[21,94],\"including\":[22,137],\"support\":[23],\"for\":[24,135,162],\"constraints\":[25,60,124],\"over\":[26],\"mutable\":[27],\"state,\":[28],\"object\":[29],\"identity,\":[30],\"and\":[31,59,73],\"the\":[32,101],\"results\":[33],\"of\":[34,77,103,123,165],\"message\":[35],\"sends.\":[36],\"Using\":[37],\"these\":[38],\"two\":[39],\"language\":[40],\"extensions\":[41],\"in\":[42,80],\"conjunctions\":[43],\"offers\":[44],\"interesting\":[45,163],\"opportunities.\":[46],\"In\":[49,109],\"this\":[50,110],\"paper,\":[51],\"we\":[52,112],\"report\":[53],\"on\":[54,154,169],\"new\":[55],\"mechanisms\":[56,134],\"involving\":[57],\"layers\":[58],\"that\":[61,86],\"evolved\":[62],\"from\":[63],\"our\":[64,83],\"experiences\":[65],\"combining\":[67],\"Babelsberg/JS,\":[68],\"an\":[69,75,97,114,150],\"Language,\":[72],\"ContextJS,\":[74],\"implementation\":[76],\"JavaScript.\":[81],\"First,\":[82],\"experience\":[84],\"shows\":[85],\"it\":[87],\"is\":[88],\"desirable\":[89],\"declarative\":[93],\"which\":[95],\"offer\":[96],\"orthogonal\":[98],\"definition\":[102],\"imperative\":[104],\"behavior,\":[105],\"likewise\":[106],\"at\":[107],\"runtime.\":[108],\"work,\":[111],\"show\":[113],\"extension\":[115],\"ContextJS\":[117,129],\"scope\":[119],\"activation\":[120,133,151],\"or\":[121,139,142],\"refinement\":[122],\"using\":[126],\"layers.\":[127],\"Second,\":[128],\"already\":[130],\"provides\":[131],\"different\":[132],\"layers,\":[136],\"structurally\":[140],\"scoped,\":[141],\"globally\":[143],\"through\":[144],\"system\":[145],\"generated\":[146],\"events.\":[147],\"Constraints\":[148],\"provide\":[149],\"based\":[153,168],\"arbitrary\":[155],\"boolean\":[156],\"expressions\":[157],\"changing\":[158],\"their\":[159],\"value,\":[160],\"allowing\":[161],\"applications\":[164],\"behavioral\":[166],\"adaption\":[167],\"certain\":[170],\"conditions.\":[171]}},\"S\":[{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/2786545.2786549\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=2786545.2786549\"}],\"VFN\":\"Proceedings of the 7th International Workshop on Context-Oriented Programming\",\"FP\":1,\"LP\":6,\"DOI\":\"10.1145/2786545.2786549\",\"PR\":[2148313601,1585741938,2159105549,1989783058,2149305110,1963758152,2157208024,1672912583,2069380956,2293247284,2047401233,2216922970,1491807955,2291570846,2013488304,2058367869,2120059397,2175558515,1990084796,2028402782,2148313601,1585741938,2159105549,1989783058,2149305110,1963758152,2157208024,1672912583,2069380956,2293247284,2047401233,2216922970,1491807955,2291570846,2013488304,2058367869,2120059397,2175558515,1990084796,2028402782],\"ANF\":[{\"FN\":\"Stefan\",\"LN\":\"Lehmann\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"Proceedings of the 7th International Workshop on Context-Oriented Programming\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-21.838,"Id":2555448203,"Ty":"0","Ti":"solving interactive logic puzzles with object constraints an experience report using babelsberg s for squeak smalltalk","Pt":"0","Y":2014,"D":"2014-01-01","CC":2,"ECC":2,"RId":[2404895391,2339376177,1909822857,2073536284,2101512909,2053637323,2168617729,1556513858,2109276114,2019153550,2103729840],"W":["babelsberg","constraints","experience","interactive","logic","object","puzzles","smalltalk","solving","squeak"],"AA":[{"DAuN":"Maria Graber","AuN":"maria graber","AuId":2231566632,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"S":3},{"DAuN":"Alan Borning","AuN":"alan borning","AuId":2020136591,"S":4}],"F":[{"DFN":"User interface","FN":"user interface","FId":89505385},{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Abstraction","FN":"abstraction","FId":124304363}],"E":"{\"DN\":\"Solving Interactive Logic Puzzles With Object-Constraints An Experience Report Using Babelsberg/S for Squeak/Smalltalk\",\"IA\":{\"IndexLength\":143,\"InvertedIndex\":{\"Logic\":[0],\"puzzles\":[1,106],\"such\":[2,28],\"as\":[3],\"Sudoku\":[4],\"are\":[5,19,32,89],\"described\":[6],\"by\":[7,128],\"a\":[8,13,20,40,46,61],\"set\":[9],\"of\":[10,101,125],\"properties\":[11],\"that\":[12,48,114],\"valid\":[14],\"solution\":[15],\"must\":[16],\"have.\":[17],\"Constraints\":[18],\"useful\":[21],\"technique\":[22],\"to\":[23,35,63,74,104,132,139],\"describe\":[24],\"and\":[25,80],\"solve\":[26],\"for\":[27,43],\"properties.\":[29],\"However,\":[30],\"constraints\":[31,65,77,88,121,135],\"less\":[33],\"suited\":[34],\"express\":[36],\"imperative\":[37],\"interactions\":[38],\"in\":[39,53,107],\"user\":[41],\"interface\":[42],\"logic\":[44,105],\"puzzles,\":[45],\"domain\":[47],\"is\":[49],\"more\":[50],\"readily\":[51],\"expressed\":[52],\"the\":[54,108,126,130,134,137,140],\"object-oriented\":[55,68,85],\"paradigm.\":[56],\"Object\":[57],\"constraint\":[58],\"programming\":[59,69,110],\"provides\":[60],\"design\":[62,103],\"integrate\":[64],\"with\":[66,120],\"dynamic,\":[67],\"languages.\":[70],\"It\":[71],\"allows\":[72],\"developers\":[73],\"encode\":[75],\"multi-way\":[76],\"over\":[78],\"objects\":[79],\"object\":[81],\"collections\":[82],\"using\":[83],\"existing,\":[84],\"abstractions.\":[86],\"These\":[87],\"automatically\":[90],\"maintained\":[91],\"at\":[92],\"run-time.\":[93],\"In\":[94],\"this\":[95,102],\"paper\":[96],\"we\":[97],\"present\":[98],\"an\":[99],\"application\":[100],\"Squeak/Smalltalk\":[109],\"environment.\":[111,142],\"We\":[112],\"argue\":[113],\"our\":[115],\"implementation\":[116],\"facilitates\":[117],\"eventdriven\":[118],\"applications\":[119],\"on\":[122],\"di↵erent\":[123],\"parts\":[124],\"system,\":[127],\"moving\":[129],\"burden\":[131],\"maintain\":[133],\"from\":[136],\"developer\":[138],\"runtime\":[141]}},\"S\":[{\"Ty\":3,\"U\":\"http://www.hirschfeld.org/writings/media/GraberFelgentreffHirschfeldBorning_2014_SolvingInteractiveLogicPuzzlesWithObjectConstraintsAnExperienceReportUsingBabelsbergSForSqueakSmalltalk_AuthorsVersion.pdf\"}],\"VFN\":\"\",\"CC\":{\"1556513858\":[\"Where interpretation in constraint construction mode deviates from normal Smalltalk semantics, we use ContextS [9] to instrument methods whose behavior needs to change inside a constraint construction mode layer.\"],\"1909822857\":[\"Morphic was first implemented in Self, with later implementations in Squeak [14] and JavaScript [17].\"],\"2019153550\":[\"Babelsberg [6] is a design to integrate constraints into object-oriented languages in a way that allows programmers to dynamically create and satisfy constraints on objects.\",\"This is equivalent to the Babelsberg implementations in Ruby and JavaScript [6].\",\"The existing Babelsberg design does not support constraints on collections directly; rather, it was proposed to use a specialized solver for collections [6].\"],\"2053637323\":[\"tures such as constraint priorities [2] and incremental resolving [8].\"],\"2073536284\":[\"Currently, it supports the Squeak implementation of Cassowary [1], and Z3 [4] through an IPC interface.\"],\"2101512909\":[\"To construct the constraint, the constraint block is executed in a di↵erent execution mode called constraint construction mode, which uses symbolic execution [3, 11] to\"],\"2103729840\":[\"To ensure this, the Babelsberg design follows the perturbation model established by the Kaleidoscope constraint-imperative language [12].\"],\"2109276114\":[\"To construct the constraint, the constraint block is executed in a di↵erent execution mode called constraint construction mode, which uses symbolic execution [3, 11] to\"],\"2168617729\":[\"Babelsberg uses objectoriented method definitions to define constraints rather than a constraint domain-specific language (dsl) [15, 5, 16].\"],\"2339376177\":[\"tures such as constraint priorities [2] and incremental resolving [8].\"],\"2404895391\":[\"The properties of a logic puzzle can be formulated as formal constraints, which a constraint solver can use to find one or more solutions or to check if a solution input by the user is valid [10].\"]},\"PR\":[2308530788,2045398665,1497382039,28961858,2115484684,2085158159,2108487417,2081295345,1946961902,2151408568,2083720908,2073021358,338442185,2045087168,2088322083,2119772607,2560089524,2544026825,1709690816,1972106757,2308530788,2045398665,1497382039,28961858,2115484684,2085158159,2108487417,2081295345,1946961902,2151408568,2083720908,2073021358,338442185,2045087168,2088322083,2119772607,2560089524,2544026825,1709690816,1972106757],\"ANF\":[{\"FN\":\"Maria\",\"LN\":\"Graber\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Alan\",\"LN\":\"Borning\",\"S\":4}],\"BT\":\"a\"}"},{"logprob":-22.002,"Id":2795148395,"Ty":"0","Ti":"live multi language development and runtime environments","Pt":"1","L":"en","Y":2018,"D":"2018-03-29","CC":1,"ECC":1,"W":["development","environments","language","live","multi","runtime"],"AA":[{"DAuN":"Fabio Niephaus","AuN":"fabio niephaus","AuId":2343463870,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4},{"DAuN":"Marcel Taeumel","AuN":"marcel taeumel","AuId":83004794,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":5}],"F":[{"DFN":"Systems engineering","FN":"systems engineering","FId":201995342},{"DFN":"Software framework","FN":"software framework","FId":76518257},{"DFN":"Software development","FN":"software development","FId":529173508},{"DFN":"Software","FN":"software","FId":2777904410},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Reuse","FN":"reuse","FId":206588197},{"DFN":"Reusability","FN":"reusability","FId":137981799},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Polyglot","FN":"polyglot","FId":2780239667},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Abstraction","FN":"abstraction","FId":124304363}],"J":{"JN":"arxiv cs pl","JId":2597368653},"E":"{\"DN\":\"Live Multi-language Development and Runtime Environments\",\"IA\":{\"IndexLength\":319,\"InvertedIndex\":{\"Context:\":[0],\"Software\":[1],\"development\":[2,260,270],\"tools\":[3,135,188,261],\"should\":[4],\"work\":[5],\"and\":[6,50,58,136,183,202,225,230,251,301,314],\"behave\":[7],\"consistently\":[8],\"across\":[9],\"different\":[10,106,207,234,278,299],\"programming\":[11,34,83,102,141,170,187,265,289,317],\"languages,\":[12,93],\"so\":[13],\"that\":[14,155,253],\"developers\":[15,42,66],\"do\":[16,43],\"not\":[17,44],\"have\":[18,45,68,89],\"to\":[19,31,46,98,105,112,157,163,200,223,257,267,280],\"familiarize\":[20],\"themselves\":[21],\"with\":[22,161,165],\"new\":[23,26],\"tooling\":[24,313],\"for\":[25,79,91,134,152,189,206,214],\"languages.\":[27,171,191],\"Also,\":[28],\"being\":[29],\"able\":[30],\"combine\":[32],\"multiple\":[33,92,166],\"languages\":[35,208,235,279,300],\"in\":[36,52,57,233],\"a\":[37,69,100,127,149,178,212,263],\"program\":[38],\"increases\":[39],\"reusability,\":[40],\"as\":[41,122,209,272,274],\"recreate\":[47],\"software\":[48,62,228,275],\"frameworks\":[49,231],\"libraries\":[51,229],\"the\":[53,123,140,159,269,285,296,308,315],\"language\":[54,113],\"they\":[55],\"develop\":[56],\"can\":[59],\"reuse\":[60,154,184,224,258],\"existing\":[61],\"instead.\":[63],\"\\r\\nInquiry:\":[64],\"However,\":[65],\"often\":[67,132],\"broad\":[70],\"choice\":[71],\"of\":[72,75,174,196,248,287,298],\"tools,\":[73],\"some\":[74],\"which\":[76,130],\"are\":[77,95,131],\"designed\":[78],\"only\":[80],\"one\":[81],\"specific\":[82],\"language.\":[84],\"Various\":[85],\"Integrated\":[86],\"Development\":[87],\"Environments\":[88],\"support\":[90],\"but\":[94],\"usually\":[96,117],\"unable\":[97],\"provide\":[99],\"consistent\":[101,216],\"experience\":[103,160,271],\"due\":[104],\"language-specific\":[107],\"runtime\":[108,204],\"features.\":[109],\"With\":[110],\"regard\":[111,162],\"integrations,\":[114],\"common\":[115],\"mechanisms\":[116],\"use\":[118],\"abstraction\":[119],\"layers,\":[120],\"such\":[121],\"operating\":[124],\"system\":[125,243,266],\"or\":[126],\"network\":[128],\"connection,\":[129],\"boundaries\":[133],\"hence\":[137],\"negatively\":[138],\"affect\":[139],\"experience.\":[142,318],\"\\r\\nApproach:\":[143],\"In\":[144,284],\"this\":[145],\"paper,\":[146],\"we\":[147,176],\"present\":[148],\"novel\":[150],\"approach\":[151,198,250],\"tool\":[153,238],\"aims\":[156],\"improve\":[158,268],\"working\":[164],\"high-level\":[167],\"dynamic,\":[168],\"object-oriented\":[169],\"As\":[172],\"part\":[173,195],\"this,\":[175],\"build\":[177],\"multi-language\":[179],\"virtual\":[180],\"execution\":[181],\"environment\":[182],\"Smalltalk's\":[185],\"live\":[186,264],\"other\":[190,309],\"\\r\\nKnowledge:\":[192],\"An\":[193],\"important\":[194],\"our\":[197,249],\"is\":[199,211,245,255],\"retrofit\":[201],\"align\":[203],\"capabilities\":[205],\"it\":[210,219,254],\"requirement\":[213],\"providing\":[215],\"tools.\":[217],\"Furthermore,\":[218],\"provides\":[220],\"convenient\":[221],\"means\":[222],\"even\":[226],\"mix\":[227],\"written\":[232],\"without\":[236],\"breaking\":[237],\"support.\":[239],\"\\r\\nGrounding:\":[240],\"The\":[241],\"prototype\":[242],\"Squimera\":[244],\"an\":[246],\"implementation\":[247],\"demonstrates\":[252],\"possible\":[256],\"both\":[259],\"from\":[262,277],\"well\":[273],\"artifacts\":[276],\"increase\":[281],\"productivity.\":[282],\"\\r\\nImportance:\":[283],\"domain\":[286],\"polyglot\":[288],\"systems,\":[290],\"most\":[291],\"research\":[292],\"has\":[293],\"focused\":[294],\"on\":[295,307,312],\"integration\":[297],\"corresponding\":[302],\"performance\":[303],\"optimizations.\":[304],\"Our\":[305],\"work,\":[306],\"hand,\":[310],\"focuses\":[311],\"overall\":[316]}},\"S\":[{\"Ty\":3,\"U\":\"http://arxiv.org/pdf/1803.10200.pdf\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/journals/corr/corr1803.html#abs-1803-10200\"},{\"Ty\":1,\"U\":\"http://programming-journal.org/2018/2/8/\"},{\"Ty\":1,\"U\":\"https://arxiv.org/abs/1803.10200v1\"},{\"Ty\":1,\"U\":\"http://export.arxiv.org/abs/1803.10200\"}],\"VFN\":\"arXiv: Programming Languages\",\"V\":2,\"I\":3,\"FP\":8,\"DOI\":\"10.22152/programming-journal.org/2018/2/8\",\"PR\":[2132308739,2134984189,2137321318,37128026,1576536479,194409236,2612445545,2079864606,2246981670,1539659309,122334854,2122422054,2086264772,2112939580,2106432842,223893827,2040040157,2578076754,1864717692,16772228,2132308739,2134984189,2137321318,37128026,1576536479,194409236,2612445545,2079864606,2246981670,1539659309,122334854,2122422054,2086264772,2112939580,2106432842,223893827,2040040157,2578076754,1864717692,16772228],\"ANF\":[{\"FN\":\"Fabio\",\"LN\":\"Niephaus\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4},{\"FN\":\"Marcel\",\"LN\":\"Taeumel\",\"S\":5}],\"BV\":\"arXiv preprint arXiv:1803.10200\",\"BT\":\"a\"}"},{"logprob":-22.78,"Id":2232878766,"Ty":"0","Ti":"implementing record and refinement for debugging timing dependent communication","Pt":"1","L":"en","Y":2017,"D":"2017-02-01","CC":1,"ECC":1,"RId":[1973501242,2110908283,1652742168,2131056547,2162045655,2172147300,1574060188,2154698535,2105391037,1867761151,2040851906,1613865581,2144114063,2002985857,2040463770,2059385647,1965462925,2171581420,2782959840,2119636671,1507612039,1556513858,2138058557,2102075452,2111576674,2340164411,2783690368,2109820865,82576189,1774013863,2155848253,2103211722,1972151373,2065296680,2111708921,2105263737],"W":["communication","debugging","dependent","implementing","record","refinement","timing"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Michael Perscheid","AuN":"michael perscheid","AuId":698431335,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3}],"F":[{"DFN":"Source code","FN":"source code","FId":43126263},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Distributed computing","FN":"distributed computing","FId":120314980},{"DFN":"Debugging","FN":"debugging","FId":168065819},{"DFN":"Debugger","FN":"debugger","FId":2778485113},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Abstraction","FN":"abstraction","FId":124304363}],"J":{"JN":"scp","JId":21029587},"E":"{\"DN\":\"Implementing record and refinement for debugging timing-dependent communication\",\"IA\":{\"IndexLength\":171,\"InvertedIndex\":{\"Distributed\":[0],\"applications\":[1],\"are\":[2],\"hard\":[3],\"to\":[4,18,37,45,68,117,134,139,158,162],\"debug\":[5,19],\"because\":[6],\"timing-dependent\":[7,48],\"network\":[8,152,164,169],\"communication\":[9,49,142,165],\"is\":[10],\"a\":[11,51,89,94],\"source\":[12,149],\"of\":[13,54],\"non-deterministic\":[14,20,83,141],\"behavior.\":[15],\"Current\":[16],\"approaches\":[17,62],\"failures\":[21,84,116],\"include\":[22],\"post-mortem\":[23],\"debugging\":[24,109],\"as\":[25,27],\"well\":[26],\"record\":[28,140,163],\"and\":[29,121,143],\"replay.\":[30],\"However,\":[31],\"the\":[32,41,47,78,101,159],\"first\":[33],\"impairs\":[34],\"system\":[35],\"performance\":[36],\"gather\":[38,69],\"data,\":[39],\"whereas\":[40],\"latter\":[42],\"requires\":[43],\"developers\":[44,114],\"understand\":[46],\"at\":[50],\"lower\":[52],\"level\":[53],\"abstraction\":[55],\"than\":[56],\"they\":[57],\"develop\":[58],\"at.\":[59],\"Furthermore,\":[60],\"both\":[61],\"require\":[63],\"intrusive\":[64],\"core\":[65,160],\"library\":[66,161],\"modifications\":[67],\"data\":[70,124,146],\"from\":[71,115],\"live\":[72],\"systems.In\":[73],\"this\":[74],\"paper,\":[75],\"we\":[76,105,129,155],\"present\":[77,130],\"Peek-At-Talk\":[79],\"debugger\":[80],\"for\":[81],\"investigating\":[82],\"with\":[85,93,125,151],\"low\":[86,126],\"overhead\":[87],\"in\":[88,100],\"systematic,\":[90],\"top-down\":[91],\"method,\":[92],\"particular\":[95],\"focus\":[96],\"on\":[97],\"tool-building\":[98],\"issues\":[99],\"following\":[102],\"areas:\":[103],\"First,\":[104],\"show\":[106],\"how\":[107],\"our\":[108,135],\"framework\":[110,138],\"Path\":[111,136],\"Tools\":[112,137],\"guides\":[113],\"their\":[118],\"root\":[119],\"causes\":[120],\"gathers\":[122],\"run-time\":[123],\"overhead.\":[127],\"Second,\":[128],\"Peek-At-Talk,\":[131],\"an\":[132],\"extension\":[133],\"refine\":[144],\"behavioral\":[145],\"that\":[147],\"connects\":[148],\"code\":[150],\"events.\":[153],\"Finally,\":[154],\"scope\":[156],\"changes\":[157],\"without\":[166],\"impacting\":[167],\"other\":[168],\"applications.\":[170]}},\"S\":[{\"Ty\":1,\"U\":\"https://www.sciencedirect.com/science/article/pii/S0167642315003585\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=3032863\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/journals/scp/scp134.html#FelgentreffPH17\"},{\"Ty\":0,\"U\":\"http://www.sciencedirect.com/science/article/pii/S0167642315003585\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?id=3032863\"}],\"VFN\":\"Science of Computer Programming\",\"V\":134,\"FP\":4,\"LP\":18,\"DOI\":\"10.1016/j.scico.2015.11.006\",\"PR\":[2169631150,1613865581,2045536068,2899875271,2319415934,1643342729,1819020107,2393771521,1581149108,139152171,1497765804,2015346614,2008445937,2543963479,2052097008,2139627310,2114289261,2142730110,1908489462,2580141483,2169631150,1613865581,2045536068,2899875271,2319415934,1643342729,1819020107,2393771521,1581149108,139152171,1497765804,2015346614,2008445937,2543963479,2052097008,2139627310,2114289261,2142730110,1908489462,2580141483],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Michael\",\"LN\":\"Perscheid\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"Science of Computer Programming\",\"BT\":\"a\",\"PB\":\"Elsevier\"}"},{"logprob":-22.781,"Id":2770227940,"Ty":"0","Ti":"group based behavior adaptation mechanisms in object oriented systems","Pt":"1","L":"en","Y":2017,"D":"2017-11-01","CC":0,"ECC":0,"RId":[2150275961,1978875190,2145304606,2527095743,1635671087,2259132812,2306941968,2306471348],"W":["adaptation","behavior","group","mechanisms","object","oriented","systems"],"AA":[{"DAuN":"Patrick Rein","AuN":"patrick rein","AuId":2229220081,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Stefan Ramson","AuN":"stefan ramson","AuId":2765293218,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":5}],"F":[{"DFN":"Systems engineering","FN":"systems engineering","FId":201995342},{"DFN":"Software development","FN":"software development","FId":529173508},{"DFN":"Software architecture","FN":"software architecture","FId":35869016},{"DFN":"Object-oriented programming","FN":"object oriented programming","FId":73752529},{"DFN":"Object-oriented modeling","FN":"object oriented modeling","FId":2780966626},{"DFN":"Context model","FN":"context model","FId":183322885},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"J":{"JN":"software","JId":6725529},"E":"{\"DN\":\"Group-Based Behavior Adaptation Mechanisms in Object-Oriented Systems\",\"IA\":{\"IndexLength\":31,\"InvertedIndex\":{\"Dynamic\":[0],\"and\":[1],\"distributed\":[2],\"systems\":[3],\"require\":[4],\"behavior\":[5,12],\"adaptations\":[6,16],\"for\":[7],\"groups\":[8,25],\"of\":[9,24],\"objects.\":[10],\"Group-based\":[11],\"adaptation\":[13],\"mechanisms\":[14],\"scope\":[15],\"to\":[17],\"objects\":[18],\"matching\":[19],\"certain\":[20],\"conditions.\":[21],\"The\":[22],\"specification\":[23],\"can\":[26],\"be\":[27],\"implicit\":[28],\"or\":[29],\"explicit.\":[30]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/journals/software/software34.html#ReinRLFH17\"},{\"Ty\":1,\"U\":\"https://www.computer.org/csdl/mags/so/2017/06/mso2017060078.html\"},{\"Ty\":1,\"U\":\"http://ieeexplore.ieee.org/document/8106885/\"}],\"VFN\":\"IEEE Software\",\"V\":34,\"I\":6,\"FP\":78,\"LP\":82,\"DOI\":\"10.1109/MS.2017.4121224\",\"PR\":[1882618022,1566191209,1853170809,2096985129,2115078715,1960394848,1576391018,2129075825,2113057172,194196476,1479691276,1539709474,2138387375,1493473453,1707248965,2148701999,1887918675,614120795,2039748092,2185919680,1882618022,1566191209,1853170809,2096985129,2115078715,1960394848,1576391018,2129075825,2113057172,194196476,1479691276,1539709474,2138387375,1493473453,1707248965,2148701999,1887918675,614120795,2039748092,2185919680],\"ANF\":[{\"FN\":\"Patrick\",\"LN\":\"Rein\",\"S\":1},{\"FN\":\"Stefan\",\"LN\":\"Ramson\",\"S\":2},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":3},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":4},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":5}],\"BV\":\"IEEE Software\",\"BT\":\"a\",\"PB\":\"IEEE\"}"},{"logprob":-22.811,"Id":2536724059,"Ty":"0","Ti":"a world of active objects for work and play the first ten years of lively","Pt":"3","L":"en","Y":2016,"D":"2016-10-20","CC":0,"ECC":0,"RId":[2150275961,2172147300,2045723688,1972091638,1909822857,2057854376,1999673860,1964757858,2109736100,2132233302,1480014362,2048310176,1527077815,1964316648,2106873360,2012948209,2112318835,2166901142,2101876886,2024901245,2103211722,152674661,2031995884,2400641020,54612561],"W":["active","first","lively","objects","play","ten","work","world","years"],"AA":[{"DAuN":"Daniel Ingalls","AuN":"daniel ingalls","AuId":2882261748,"DAfN":"Y Combinator Research, USA","S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":3},{"DAuN":"Robert Krahn","AuN":"robert krahn","AuId":1836152203,"DAfN":"Y Combinator Research, USA","S":4},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"HPI, Germany","S":5},{"DAuN":"Marko Röder","AuN":"marko roder","AuId":2620202433,"DAfN":"Y Combinator Research, USA","S":6},{"DAuN":"Antero Taivalsaari","AuN":"antero taivalsaari","AuId":2095196709,"DAfN":"Nokia","AfN":"nokia","AfId":2738502077,"S":7},{"DAuN":"Tommi Mikkonen","AuN":"tommi mikkonen","AuId":2148083993,"DAfN":"Tampere University of Technology","AfN":"tampere university of technology","AfId":129409704,"S":8}],"F":[{"DFN":"World Wide Web","FN":"world wide web","FId":136764020},{"DFN":"Software as a service","FN":"software as a service","FId":175133352},{"DFN":"Multimedia","FN":"multimedia","FId":49774154},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"C":{"CN":"onward","CId":2759899939},"E":"{\"DN\":\"A world of active objects for work and play: the first ten years of lively\",\"IA\":{\"IndexLength\":106,\"InvertedIndex\":{\"The\":[0],\"Lively\":[1,5,34],\"Kernel\":[2],\"and\":[3,44,89,98],\"the\":[4,18,21,49,83,87,96,99],\"Web\":[6],\"represent\":[7],\"a\":[8,13,36,58,65,80],\"continuing\":[9],\"effort\":[10],\"to\":[11,27,61],\"realize\":[12],\"creative\":[14],\"computing\":[15,39],\"environment\":[16,40],\"in\":[17,54,70,95],\"context\":[19],\"of\":[20],\"World\":[22],\"Wide\":[23],\"Web.\":[24],\"We\":[25],\"refer\":[26],\"that\":[28,67,75,91,102],\"evolving\":[29],\"system\":[30,66],\"simply\":[31],\"as\":[32],\"\\\"Lively\\\".\":[33],\"is\":[35],\"live\":[37],\"object\":[38],\"implemented\":[41],\"using\":[42],\"JavaScript\":[43],\"other\":[45],\"techniques\":[46],\"available\":[47],\"inside\":[48],\"browser.\":[50,73],\"When\":[51],\"first\":[52],\"built\":[53],\"2006,\":[55],\"it\":[56],\"was\":[57],\"grand\":[59],\"accomplishment\":[60],\"have\":[62,78],\"created\":[63],\"such\":[64],\"would\":[68],\"run\":[69],\"any\":[71],\"web\":[72],\"Since\":[74],\"time\":[76],\"we\":[77,85],\"learned\":[79],\"lot\":[81],\"about\":[82],\"goals\":[84],\"had,\":[86],\"challenges\":[88],\"opportunities\":[90],\"come\":[92],\"with\":[93],\"life\":[94],\"browser,\":[97],\"exciting\":[100],\"possibilities\":[101],\"still\":[103],\"lie\":[104],\"ahead.\":[105]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/oopsla/onward2016.html#IngallsFHKLRTM16\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=2986012.2986029\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?doid=2986012.2986029\"}],\"VFN\":\"SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software\",\"VSN\":\"Onward!\",\"FP\":238,\"LP\":249,\"DOI\":\"10.1145/2986012.2986029\",\"PR\":[184264818,2415615835,2058692115,238125229,165621709,1579892436,2147634649,2468174715,2782912618,595587532,2540622111,1038968116,580200105,1732560,2465390402,2495393432,2181335707,871231645,203000054,2489440017,184264818,2415615835,2058692115,238125229,165621709,1579892436,2147634649,2468174715,2782912618,595587532,2540622111,1038968116,580200105,1732560,2465390402,2495393432,2181335707,871231645,203000054,2489440017],\"ANF\":[{\"FN\":\"Daniel\",\"LN\":\"Ingalls\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Krahn\",\"S\":4},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":5},{\"FN\":\"Marko\",\"LN\":\"Röder\",\"S\":6},{\"FN\":\"Antero\",\"LN\":\"Taivalsaari\",\"S\":7},{\"FN\":\"Tommi\",\"LN\":\"Mikkonen\",\"S\":8}],\"BV\":\"Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-23.045,"Id":2598460993,"Ty":"0","Ti":"improving hosted continuous integration services","Pt":"0","L":"en","Y":2017,"D":"2017-02-01","CC":0,"ECC":0,"W":["continuous","hosted","improving","integration","services"],"AA":[{"DAuN":"Christopher Weyand","AuN":"christopher weyand","AuId":2600292907,"S":1},{"DAuN":"Jonas Chromik","AuN":"jonas chromik","AuId":2603080933,"S":2},{"DAuN":"Lennard Wolf","AuN":"lennard wolf","AuId":2680736793,"S":3},{"DAuN":"Steffen Kötte","AuN":"steffen kotte","AuId":2600937985,"S":4},{"DAuN":"Konstantin Haase","AuN":"konstantin haase","AuId":2600694995,"S":5},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"S":6},{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"S":7},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"S":8}],"F":[{"DFN":"Visualization","FN":"visualization","FId":36464697},{"DFN":"Software engineering","FN":"software engineering","FId":115903868},{"DFN":"Software deployment","FN":"software deployment","FId":105339364},{"DFN":"Software architecture","FN":"software architecture","FId":35869016},{"DFN":"Software","FN":"software","FId":2777904410},{"DFN":"Data visualization","FN":"data visualization","FId":172367668},{"DFN":"Continuous testing","FN":"continuous testing","FId":2776641920},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Computer engineering","FN":"computer engineering","FId":113775141},{"DFN":"Cloud computing","FN":"cloud computing","FId":79974875}],"E":"{\"DN\":\"Improving hosted continuous integration services\",\"IA\":{\"IndexLength\":101,\"InvertedIndex\":{\"Developing\":[0],\"large\":[1],\"software\":[2],\"projects\":[3,52],\"is\":[4,16,38,80],\"a\":[5,39,94],\"complicated\":[6],\"task\":[7],\"and\":[8,24,32,45,56,92],\"can\":[9,89],\"be\":[10,90],\"demanding\":[11],\"for\":[12,19],\"developers.\":[13],\"Continuous\":[14],\"integration\":[15,44],\"common\":[17],\"practice\":[18],\"reducing\":[20],\"complexity.\":[21],\"By\":[22],\"integrating\":[23],\"testing\":[25],\"changes\":[26],\"often,\":[27],\"changesets\":[28],\"are\":[29,53],\"kept\":[30],\"small\":[31],\"therefore\":[33],\"easily\":[34],\"comprehensible.\":[35],\"Travis\":[36,60,72],\"CI\":[37,61,73,86],\"service\":[40],\"that\":[41],\"offers\":[42],\"continuous\":[43,46],\"deployment\":[47],\"in\":[48],\"the\":[49,59,65],\"cloud.\":[50],\"Software\":[51],\"build,\":[54],\"tested,\":[55],\"deployed\":[57],\"using\":[58],\"infrastructure\":[62],\"without\":[63],\"interrupting\":[64],\"development\":[66],\"process.\":[67],\"This\":[68],\"report\":[69],\"describes\":[70],\"how\":[71,76,85],\"works,\":[74],\"presents\":[75],\"time-driven,\":[77],\"periodic\":[78],\"building\":[79],\"implemented\":[81],\"as\":[82,84],\"well\":[83],\"data\":[87],\"visualization\":[88],\"done,\":[91],\"proposes\":[93],\"way\":[95],\"of\":[96],\"dealing\":[97],\"with\":[98],\"dependency\":[99],\"problems.\":[100]}},\"S\":[{\"Ty\":3,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/files/9425/tbhpi108.pdf\"},{\"Ty\":1,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/index/index/docId/9425\"}],\"VFN\":\"\",\"PR\":[2335830291,1175088936,2461526815,2112836019,1985164319,2549557454,2605404025,2141970915,2069568105,1988868428,2183071872,2273399140,2148143446,204248628,2178227869,2804538750,2099523332,2334638292,2003610585,1585628783,2335830291,1175088936,2461526815,2112836019,1985164319,2549557454,2605404025,2141970915,2069568105,1988868428,2183071872,2273399140,2148143446,204248628,2178227869,2804538750,2099523332,2334638292,2003610585,1585628783],\"ANF\":[{\"FN\":\"Christopher\",\"LN\":\"Weyand\",\"S\":1},{\"FN\":\"Jonas\",\"LN\":\"Chromik\",\"S\":2},{\"FN\":\"Lennard\",\"LN\":\"Wolf\",\"S\":3},{\"FN\":\"Steffen\",\"LN\":\"Kötte\",\"S\":4},{\"FN\":\"Konstantin\",\"LN\":\"Haase\",\"S\":5},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":6},{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":7},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":8}],\"BT\":\"a\"}"},{"logprob":-23.312,"Id":2731006545,"Ty":"0","Ti":"vm wrapping fake it till you make it","Pt":"3","L":"en","Y":2017,"D":"2017-06-19","CC":0,"ECC":0,"RId":[1993335798,2148535470,2123200683,2130235146],"W":["fake","make","till","vm","wrapping","you"],"AA":[{"DAuN":"Johannes Henning","AuN":"johannes henning","AuId":2223724161,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Research question","FN":"research question","FId":2778866518},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Feature complete","FN":"feature complete","FId":2780900296},{"DFN":"Constructed language","FN":"constructed language","FId":94922259},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"C":{"CN":"icooolps","CId":2624819336},"E":"{\"DN\":\"VM Wrapping: Fake it till you make it\",\"IA\":{\"IndexLength\":124,\"InvertedIndex\":{\"Building\":[0],\"or\":[1,11],\"extending\":[2],\"Virtual\":[3],\"Machines\":[4],\"(VMs)\":[5],\"to\":[6,89,92,114],\"investigate\":[7],\"new\":[8,24,120],\"language\":[9,31],\"features\":[10,86,121],\"optimization\":[12],\"techniques\":[13],\"is\":[14,32],\"challenging\":[15],\"in\":[16],\"several\":[17],\"ways.\":[18],\"The\":[19],\"overhead\":[20,80],\"for\":[21,27,49,63,77,106],\"developing\":[22],\"a\":[23,60,94,112],\"research\":[25,51],\"VM\":[26],\"an\":[28,69],\"existing\":[29],\"practical\":[30],\"immense,\":[33],\"and\":[34,97,122],\"meaningful\":[35],\"evaluation\":[36],\"often\":[37],\"requires\":[38],\"implementing\":[39,64],\"much\":[40],\"more\":[41],\"than\":[42],\"just\":[43],\"the\":[44,50,83],\"parts\":[45],\"that\":[46,87],\"are\":[47],\"interesting\":[48],\"question.\":[52],\"In\":[55],\"this\":[56],\"paper,\":[57],\"we\":[58],\"propose\":[59],\"different\":[61],\"approach\":[62,109],\"VMs\":[65],\"based\":[66],\"on\":[67],\"wrapping\":[68],\"existing,\":[70],\"feature\":[71],\"complete\":[72],\"VM.\":[73],\"Our\":[74],\"technique\":[75],\"aims\":[76],\"lower\":[78],\"implementation\":[79],\"by\":[81],\"reducing\":[82],\"number\":[84],\"of\":[85],\"have\":[88],\"be\":[90],\"implemented\":[91],\"produce\":[93],\"working\":[95],\"prototype\":[96],\"thus\":[98],\"producing\":[99],\"results\":[100],\"quicker.\":[101],\"While\":[102],\"already\":[103],\"proving\":[104],\"useful\":[105],\"research,\":[107],\"our\":[108],\"also\":[110],\"suggests\":[111],\"way\":[113],\"extend\":[115],\"legacy\":[116],\"virtual\":[117],\"machines\":[118],\"with\":[119],\"optimizations.\":[123]}},\"S\":[{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=3098576\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/ecoop/icooolps2017.html#HenningFH17\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?id=3098576\"}],\"VFN\":\"Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"VSN\":\"ICOOOLPS\",\"FP\":1,\"LP\":4,\"DOI\":\"10.1145/3098572.3098576\",\"PR\":[2810816700,2492348352,1618549302,2276438316,2004016118,149688054,2169248124,2794883415,2084236143,2007149893,2759164966,2558923552,2293946261,2620405710,2328420667,2087341532,2260798380,2884954012,2025017922,2123942796,2810816700,2492348352,1618549302,2276438316,2004016118,149688054,2169248124,2794883415,2084236143,2007149893,2759164966,2558923552,2293946261,2620405710,2328420667,2087341532,2260798380,2884954012,2025017922,2123942796],\"ANF\":[{\"FN\":\"Johannes\",\"LN\":\"Henning\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"Proceedings of the 12th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-23.343,"Id":2891729616,"Ty":"0","Ti":"graalsqueak a fast smalltalk bytecode interpreter written in an ast interpreter framework","Pt":"3","Y":2018,"D":"2018-07-17","CC":0,"ECC":0,"RId":[1770006921,2172147300,2094269821,2058213389,2148535470,2731881248,1493929095,2533740594,2754987505,2028660699,2620782151,2534536750],"W":["ast","bytecode","fast","framework","graalsqueak","interpreter","smalltalk","written"],"AA":[{"DAuN":"Fabio Niephaus","AuN":"fabio niephaus","AuId":2343463870,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Oracle Corporation","AfN":"oracle corporation","AfId":1342911587,"S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Interpreter","FN":"interpreter","FId":122783720},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Compiler","FN":"compiler","FId":169590947},{"DFN":"Bytecode","FN":"bytecode","FId":2779818221},{"DFN":"Abstract syntax tree","FN":"abstract syntax tree","FId":58646249}],"C":{"CN":"icooolps","CId":2624819336},"E":"{\"DN\":\"GraalSqueak: A Fast Smalltalk Bytecode Interpreter Written in an AST Interpreter Framework\",\"IA\":{\"IndexLength\":147,\"InvertedIndex\":{\"Language\":[0],\"implementation\":[1,25,34,100,127],\"frameworks\":[2],\"aim\":[3],\"to\":[4,10,27,65,74,80],\"provide\":[5],\"everything\":[6],\"that\":[7],\"is\":[8,39,53],\"needed\":[9],\"build\":[11],\"interpreters,\":[12],\"simplify\":[13],\"the\":[14,32,37,48,78,103,114,117,139,144],\"process\":[15,49],\"by\":[16],\"making\":[17],\"certain\":[18],\"design\":[19],\"decisions\":[20],\"in\":[21,126,131],\"advance,\":[22],\"and\":[23,47,102,137,141],\"suggest\":[24],\"strategies\":[26,128],\"virtual\":[28,120],\"machine\":[29],\"creators.\":[30],\"Truffle,\":[31],\"language\":[33],\"framework\":[35],\"for\":[36,41,94,129],\"GraalVM,\":[38],\"designed\":[40],\"building\":[42],\"Abstract\":[43],\"Syntax\":[44],\"Tree\":[45],\"interpreters\":[46,93,130],\"of\":[50,116,143],\"doing\":[51],\"so\":[52],\"well\":[54],\"documented.\":[55],\"However,\":[56],\"although\":[57],\"less\":[58],\"documented,\":[59],\"Truffle\":[60,92],\"can\":[61],\"also\":[62],\"be\":[63,75],\"used\":[64],\"implement\":[66],\"bytecode\":[67],\"interpreters.\":[68],\"This\":[69],\"approach\":[70,101],\"requires\":[71],\"additional\":[72],\"hints\":[73],\"passed\":[76],\"into\":[77],\"compiler\":[79],\"gain\":[81],\"good\":[82],\"performance.\":[83],\"In\":[86],\"this\":[87],\"paper,\":[88],\"we\":[89],\"compare\":[90,134],\"two\":[91],\"Squeak/Smalltalk,\":[95],\"one\":[96],\"using\":[97],\"an\":[98],\"ast\":[99],\"other\":[104],\"executing\":[105],\"bytecodes.\":[106],\"While\":[107],\"both\":[108,122],\"run\":[109],\"at\":[110],\"roughly\":[111],\"three\":[112],\"times\":[113],\"speed\":[115],\"standard\":[118],\"Squeak/Smalltalk\":[119],\"machine,\":[121],\"represent\":[123],\"different\":[124,145],\"trade-offs\":[125,136],\"Truffle.\":[132],\"We\":[133],\"these\":[135],\"discuss\":[138],\"advantages\":[140],\"disadvantages\":[142],\"approaches.\":[146]}},\"S\":[{\"Ty\":999,\"U\":\"http://dblp.uni-trier.de/db/conf/ecoop/icooolps2018.html#NiephausFH18\"},{\"Ty\":999,\"U\":\"http://dl.acm.org/ft_gateway.cfm?id=3242948&ftid=2003279&dwn=1\"},{\"Ty\":999,\"U\":\"https://doi.org/10.1145/3242947.3242948\"}],\"VFN\":\"Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"VSN\":\"ICOOOLPS\",\"FP\":30,\"LP\":35,\"DOI\":\"10.1145/3242947.3242948\",\"PR\":[1512534026,2047026807,2123352478,2602532206,1537069459,2498335686,2143322757,2420319611,2112939580,2270100263,2469489220,2188771590,1544937302,1526491357,2533990317,2308961128,2519000550,1980851131,1571359423,2115934293,1512534026,2047026807,2123352478,2602532206,1537069459,2498335686,2143322757,2420319611,2112939580,2270100263,2469489220,2188771590,1544937302,1526491357,2533990317,2308961128,2519000550,1980851131,1571359423,2115934293],\"ANF\":[{\"FN\":\"Fabio\",\"LN\":\"Niephaus\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3}],\"BV\":\"Proceedings of the 13th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"BT\":\"p\"}"},{"logprob":-23.442,"Id":2778782177,"Ty":"0","Ti":"designing a live development experience for web components","Pt":"3","Y":2017,"D":"2017-10-22","CC":0,"ECC":0,"W":["components","designing","development","experience","live","web"],"AA":[{"DAuN":"Jens Lincke","AuN":"jens lincke","AuId":2055148755,"DAfN":"HPI, Germany","S":1},{"DAuN":"Patrick Rein","AuN":"patrick rein","AuId":2229220081,"DAfN":"HPI, Germany","S":2},{"DAuN":"Stefan Ramson","AuN":"stefan ramson","AuId":2765293218,"DAfN":"HPI, Germany","S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":4},{"DAuN":"Marcel Taeumel","AuN":"marcel taeumel","AuId":83004794,"DAfN":"HPI, Germany","S":5},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Oracle Corporation","AfN":"oracle corporation","AfId":1342911587,"S":6}],"F":[{"DFN":"User interface","FN":"user interface","FId":89505385},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"JavaScript","FN":"javascript","FId":544833334},{"DFN":"HTML element","FN":"html element","FId":81639021},{"DFN":"Development environment","FN":"development environment","FId":139968098},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Best practice","FN":"best practice","FId":184356942},{"DFN":"Abstraction","FN":"abstraction","FId":124304363}],"C":{"CN":"splash","CId":1173500908},"CI":{"CIN":"splash 2017","CIId":2606049561},"E":"{\"DN\":\"Designing a live development experience for web-components\",\"IA\":{\"IndexLength\":138,\"InvertedIndex\":{\"Explorative\":[0],\"and\":[1,96,135],\"live\":[2],\"development\":[3,44,61,67],\"environments\":[4],\"flourish\":[5],\"when\":[6,46,120],\"they\":[7],\"can\":[8,20],\"impose\":[9],\"restrictions.\":[10],\"Forcing\":[11],\"a\":[12,43,65,77,82],\"specific\":[13],\"programming\":[14],\"language\":[15],\"or\":[16,31],\"framework,\":[17],\"the\":[18,23],\"environment\":[19,62],\"better\":[21],\"enhance\":[22],\"experience\":[24,45],\"of\":[25],\"editing\":[26,121],\"code\":[27],\"with\":[28,48],\"immediate\":[29,55,118],\"feedback\":[30,56,119],\"direct\":[32,52,91],\"manipulation.\":[33],\"Lively\":[34],\"Kernel's\":[35],\"user\":[36],\"interface\":[37],\"(UI)\":[38],\"framework\":[39],\"Morphic\":[40],\"provides\":[41],\"such\":[42],\"working\":[47],\"graphical\":[49],\"objects\":[50],\"in\":[51],\"way\":[53],\"giving\":[54],\"during\":[57],\"development.\":[58,107],\"Our\":[59],\"new\":[60,78],\"Lively4\":[63],\"achieves\":[64],\"similar\":[66],\"experience,\":[68],\"but\":[69],\"targeting\":[70],\"general\":[71],\"HTML\":[72,88],\"elements.\":[73],\"Web\":[74,79,99],\"Components\":[75,100],\"as\":[76],\"standard\":[80],\"provide\":[81,90,117],\"very\":[83],\"powerful\":[84],\"abstraction\":[85],\"mechanism.\":[86],\"Plain\":[87],\"elements\":[89],\"building\":[92],\"blocks\":[93],\"for\":[94],\"tools\":[95],\"applications.\":[97],\"Unfortunately,\":[98],\"miss\":[101],\"proper\":[102],\"capabilities\":[103],\"to\":[104,116],\"support\":[105],\"run-time\":[106],\"To\":[108],\"address\":[109],\"this\":[110],\"issue,\":[111],\"we\":[112],\"use\":[113],\"object\":[114],\"migration\":[115],\"UI\":[122],\"code.\":[123],\"The\":[124],\"approach\":[125],\"is\":[126],\"evaluated\":[127],\"by\":[128],\"discussing\":[129],\"known\":[130],\"problems,\":[131],\"resulting\":[132],\"best\":[133],\"practices\":[134],\"future\":[136],\"work.\":[137]}},\"S\":[{\"Ty\":999,\"U\":\"http://dblp.uni-trier.de/db/conf/oopsla/px2017.html#LinckeRRHTF17\"},{\"Ty\":999,\"U\":\"http://dl.acm.org/citation.cfm?doid=3176645.3167109\"}],\"VFN\":\"ACM conference on Systems, Programming, Languages and Applications: Software for Humanity\",\"VSN\":\"SPLASH\",\"FP\":28,\"LP\":35,\"DOI\":\"10.1145/3167109\",\"PR\":[609532378,2021364498,1984615526,2294758287,174304379,2048279518,2031995884,1964723487,2023925078,2050896503,1898930880,2012675250,1991376619,295842796,2739904,245675563,2067484851,339438043,1622045578,1597939184,609532378,2021364498,1984615526,2294758287,174304379,2048279518,2031995884,1964723487,2023925078,2050896503,1898930880,2012675250,1991376619,295842796,2739904,245675563,2067484851,339438043,1622045578,1597939184],\"ANF\":[{\"FN\":\"Jens\",\"LN\":\"Lincke\",\"S\":1},{\"FN\":\"Patrick\",\"LN\":\"Rein\",\"S\":2},{\"FN\":\"Stefan\",\"LN\":\"Ramson\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4},{\"FN\":\"Marcel\",\"LN\":\"Taeumel\",\"S\":5},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":6}],\"BV\":\"Proceedings of the 3rd ACM SIGPLAN International Workshop on Programming Experience\",\"BT\":\"p\"}"},{"logprob":-23.454,"Id":2590158173,"Ty":"0","Ti":"tracing algorithmic primitives in rsqueak vm","Pt":"0","L":"en","Y":2016,"D":"2016-01-01","CC":0,"ECC":0,"W":["algorithmic","primitives","rsqueak","tracing","vm"],"AA":[{"DAuN":"Lars Wassermann","AuN":"lars wassermann","AuId":2491860676,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"S":2},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"S":3},{"DAuN":"Carl Friedrich Bolz","AuN":"carl friedrich bolz","AuId":1964826138,"S":4},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"S":5}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Tracing","FN":"tracing","FId":138673069},{"DFN":"Toolchain","FN":"toolchain","FId":2777062904},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Parallel computing","FN":"parallel computing","FId":173608175},{"DFN":"Dynamic compilation","FN":"dynamic compilation","FId":8767382},{"DFN":"Debugging","FN":"debugging","FId":168065819},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Compiler","FN":"compiler","FId":169590947},{"DFN":"Bit blit","FN":"bit blit","FId":79856310}],"E":"{\"DN\":\"Tracing Algorithmic Primitives in RSqueak/VM\",\"IA\":{\"IndexLength\":189,\"InvertedIndex\":{\"When\":[0],\"realizing\":[1],\"a\":[2,122,153],\"programming\":[3],\"language\":[4,39],\"as\":[5,9,14],\"VM,\":[6,13],\"implementing\":[7],\"behavior\":[8],\"part\":[10],\"of\":[11,56,65,85,98],\"the\":[12,37,45,66,74,81,92,112,143,157,174,178],\"primitive,\":[15],\"usually\":[16,77],\"results\":[17,87],\"in\":[18,36,62,88,118,132,165],\"reduced\":[19],\"execution\":[20],\"times.\":[21],\"But\":[22],\"supporting\":[23],\"and\":[24,33,44,96,101,117,127,168],\"developing\":[25],\"primitive\":[26,57,126,145,163],\"functions\":[27,58],\"requires\":[28],\"more\":[29],\"effort\":[30],\"than\":[31],\"maintaining\":[32],\"using\":[34],\"code\":[35],\"hosted\":[38,128],\"since\":[40],\"debugging\":[41],\"is\":[42,78,152],\"harder,\":[43],\"turn-around\":[46],\"times\":[47,131,148],\"for\":[48,149],\"VM\":[49,155],\"parts\":[50],\"are\":[51,59,72],\"higher.\":[52],\"Furthermore,\":[53],\"source\":[54],\"artifacts\":[55],\"seldom\":[60],\"reused\":[61],\"new\":[63],\"implementations\":[64,164],\"same\":[67],\"language.\":[68],\"And\":[69],\"if\":[70],\"they\":[71],\"reused,\":[73],\"existing\":[75],\"API\":[76],\"emulated,\":[79],\"reducing\":[80],\"performance\":[82,95,179],\"gains.\":[83],\"Because\":[84],\"recent\":[86],\"tracing\":[89,135,175],\"dynamic\":[90],\"compilation,\":[91],\"trade-off\":[93],\"between\":[94,125],\"ease\":[97],\"implementation,\":[99],\"reuse,\":[100],\"changeability\":[102],\"might\":[103],\"now\":[104],\"be\":[105],\"decided\":[106],\"adversely.\\r\\n\\r\\nIn\":[107],\"this\":[108],\"work,\":[109],\"we\":[110,141],\"investigate\":[111],\"trade-offs\":[113],\"when\":[114],\"creating\":[115],\"primitives,\":[116],\"particular\":[119],\"how\":[120],\"large\":[121],\"difference\":[123],\"remains\":[124],\"function\":[129],\"run\":[130],\"VMs\":[133],\"with\":[134],\"just-in-time\":[136,176],\"compiler.\":[137],\"To\":[138],\"that\":[139,171],\"end,\":[140],\"implemented\":[142],\"algorithmic\":[144],\"BitBlt\":[146],\"three\":[147],\"RSqueak/VM.\":[150],\"RSqueak/VM\":[151],\"Smalltalk\":[154],\"utilizing\":[156],\"PyPy\":[158],\"RPython\":[159],\"toolchain.\":[160],\"We\":[161],\"compare\":[162],\"C,\":[166],\"RPython,\":[167],\"Smalltalk,\":[169],\"showing\":[170],\"due\":[172],\"to\":[173,186],\"compiler,\":[177],\"gap\":[180],\"has\":[181],\"lessened\":[182],\"by\":[183],\"one\":[184,187],\"magnitude\":[185],\"magnitude.\":[188]}},\"S\":[{\"Ty\":3,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/files/9127/tbhpi104.pdf\"},{\"Ty\":1,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/index/index/docId/9127\"}],\"VFN\":\"\",\"PR\":[2419951300,1986991427,1831592373,2768728404,2051540028,1790698481,2762530511,1814688937,2891780843,2553746381,2126060880,2094269821,128638405,49417684,2539394636,1526863280,2023602151,1578437030,1494218080,2028577120,2419951300,1986991427,1831592373,2768728404,2051540028,1790698481,2762530511,1814688937,2891780843,2553746381,2126060880,2094269821,128638405,49417684,2539394636,1526863280,2023602151,1578437030,1494218080,2028577120],\"ANF\":[{\"FN\":\"Lars\",\"LN\":\"Wassermann\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":3},{\"FN\":\"Carl Friedrich\",\"LN\":\"Bolz\",\"S\":4},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":5}],\"BT\":\"a\"}"},{"logprob":-23.454,"Id":2580232366,"Ty":"0","Ti":"extending a dynamic programming language and runtime environment with access control","Pt":"0","L":"en","Y":2016,"D":"2016-01-01","CC":0,"ECC":0,"W":["access","control","dynamic","environment","extending","language","programming","runtime"],"AA":[{"DAuN":"Philipp Tessenow","AuN":"philipp tessenow","AuId":228457620,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"S":2},{"DAuN":"Gilad Bracha","AuN":"gilad bracha","AuId":2582357698,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"S":4}],"F":[{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"Toolchain","FN":"toolchain","FId":2777062904},{"DFN":"Software system","FN":"software system","FId":149091818},{"DFN":"Software","FN":"software","FId":2777904410},{"DFN":"Newspeak","FN":"newspeak","FId":183971270},{"DFN":"Dynamic programming","FN":"dynamic programming","FId":37404715},{"DFN":"Distributed computing","FN":"distributed computing","FId":120314980},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Compiler","FN":"compiler","FId":169590947},{"DFN":"Access control","FN":"access control","FId":527821871}],"E":"{\"DN\":\"Extending a dynamic programming language and runtime environment with access control\",\"IA\":{\"IndexLength\":227,\"InvertedIndex\":{\"Complexity\":[0],\"in\":[1,61,150,158],\"software\":[2,17,68],\"systems\":[3,72],\"is\":[4,18,57,108,114,138,154],\"a\":[5,41,62,116,139,206],\"major\":[6],\"factor\":[7],\"driving\":[8],\"development\":[9],\"and\":[10,26,43,123,176,199],\"maintenance\":[11],\"costs.\":[12],\"To\":[13],\"master\":[14],\"this\":[15,33],\"complexity,\":[16,82],\"divided\":[19],\"into\":[20],\"modules\":[21],\"that\":[22,107,216],\"can\":[23,221],\"be\":[24,222],\"developed\":[25],\"tested\":[27],\"separately.\":[28],\"In\":[29],\"order\":[30],\"to\":[31,50,79,102],\"support\":[32],\"separation\":[34],\"of\":[35,133,174,183],\"modules,\":[36],\"each\":[37],\"module\":[38],\"should\":[39],\"provide\":[40],\"clean\":[42],\"concise\":[44],\"public\":[45],\"interface.\":[46],\"Therefore,\":[47],\"the\":[48,111,142,151,172,190,193,196,200,210],\"ability\":[49],\"selectively\":[51],\"hide\":[52],\"functionality\":[53],\"using\":[54],\"access\":[55,129,146,166,184,218],\"control\":[56,130,167,185,219],\"an\":[58,165],\"important\":[59],\"feature\":[60],\"programming\":[63,105,118],\"language\":[64,96,106,119],\"intended\":[65],\"for\":[66,121,141,169,186,209],\"complex\":[67],\"systems.\\r\\n\":[69],\"\\r\\nSoftware\":[71],\"are\":[73],\"increasingly\":[74],\"distributed,\":[75],\"adding\":[76],\"not\":[77,156],\"only\":[78,99],\"their\":[80],\"inherent\":[81],\"but\":[83],\"also\":[84],\"presenting\":[85],\"security\":[86,173],\"challenges.\":[87],\"The\":[88,125],\"object-capability\":[89,112,143],\"approach\":[90,113],\"addresses\":[91],\"these\":[92],\"challenges\":[93],\"by\":[94],\"defining\":[95],\"properties\":[97],\"providing\":[98],\"minimal\":[100,225],\"capabilities\":[101],\"objects.\":[103],\"One\":[104],\"based\":[109],\"on\":[110],\"Newspeak,\":[115,170],\"dynamic\":[117],\"designed\":[120],\"modularity\":[122],\"security.\":[124],\"Newspeak\":[126,152,212],\"specification\":[127],\"describes\":[128],\"as\":[131,148],\"one\":[132],\"Newspeak’s\":[134],\"properties,\":[135],\"because\":[136],\"it\":[137],\"requirement\":[140],\"approach.\":[144],\"However,\":[145],\"control,\":[147],\"defined\":[149],\"specification,\":[153],\"currently\":[155],\"enforced\":[157],\"its\":[159],\"implementation.\\r\\n\":[160],\"\\r\\nThis\":[162],\"work\":[163],\"introduces\":[164],\"implementation\":[168,182,220],\"enabling\":[171],\"object-capabilities\":[175],\"enhancing\":[177],\"modularity.\":[178],\"We\":[179,188],\"describe\":[180,205],\"our\":[181,217],\"Newspeak.\":[187],\"adapted\":[189],\"runtime\":[191],\"environment,\":[192],\"reflective\":[194],\"system,\":[195],\"compiler\":[197],\"toolchain,\":[198],\"virtual\":[201],\"machine.\":[202],\"Finally,\":[203],\"we\":[204],\"migration\":[207],\"strategy\":[208],\"existing\":[211],\"code\":[213],\"base,\":[214],\"so\":[215],\"integrated\":[223],\"with\":[224],\"effort.\":[226]}},\"S\":[{\"Ty\":3,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/files/9256/tbhpi107.pdf\"},{\"Ty\":1,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/index/index/searchtype/authorsearch/author/Robert+Hirschfeld/rows/10/start/5/facetNumber_subject/all/docId/9256\"}],\"VFN\":\"\",\"PR\":[2806285345,2270100263,2246981670,2795148395,2161267230,2154778832,1897819610,2407603019,2499947387,2602532206,2548945958,1726133369,2810019268,2610193179,1551877793,2800568256,2181814588,2182912278,2624320661,2186887735,2806285345,2270100263,2246981670,2795148395,2161267230,2154778832,1897819610,2407603019,2499947387,2602532206,2548945958,1726133369,2810019268,2610193179,1551877793,2800568256,2181814588,2182912278,2624320661,2186887735],\"ANF\":[{\"FN\":\"Philipp\",\"LN\":\"Tessenow\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Gilad\",\"LN\":\"Bracha\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4}],\"BT\":\"a\"}"},{"logprob":-23.46,"Id":2472490881,"Ty":"0","Ti":"call target specific method arguments","Pt":"3","L":"en","Y":2015,"D":"2015-07-04","CC":0,"ECC":0,"RId":[2094269821,1993335798,2091228796,2141293928,2069902027,2062100194,2420319611,1985727995,1509971299,1988539267],"W":["arguments","call","specific","target"],"AA":[{"DAuN":"Fabio Niephaus","AuN":"fabio niephaus","AuId":2343463870,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":1},{"DAuN":"Matthias Springer","AuN":"matthias springer","AuId":2225126184,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":2},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":3},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":4},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"University of Potsdam","AfN":"university of potsdam","AfId":176453806,"S":5}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Implementation","FN":"implementation","FId":26713055},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Cache","FN":"cache","FId":115537543}],"C":{"CN":"icooolps","CId":2624819336},"E":"{\"DN\":\"Call-target-specific method arguments\",\"IA\":{\"IndexLength\":110,\"InvertedIndex\":{\"Most\":[0],\"efficient\":[1],\"implementations\":[2],\"of\":[3,15,71],\"dynamically-typed\":[4,64],\"programming\":[5,26],\"languages\":[6],\"use\":[7],\"polymorphic\":[8,16,72],\"inline\":[9,73],\"caches\":[10],\"to\":[11,46,52,88],\"determine\":[12],\"the\":[13,83],\"target\":[14,56],\"method\":[17,20,31,61],\"calls,\":[18],\"making\":[19,67],\"lookups\":[21],\"more\":[22,92,105],\"efficient.\":[23,93],\"In\":[24],\"some\":[25],\"languages,\":[27,65],\"parameters\":[28],\"specified\":[29],\"in\":[30,80,86,103],\"signatures\":[32],\"can\":[33],\"differ\":[34],\"from\":[35],\"arguments\":[36,42,62,91],\"passed\":[37],\"at\":[38],\"call\":[39,47],\"sites.\":[40],\"However,\":[41],\"are\":[43],\"typically\":[44],\"specific\":[45],\"sites,\":[48],\"so\":[49],\"they\":[50],\"have\":[51],\"be\":[53],\"converted\":[54],\"within\":[55],\"methods.\":[57],\"We\":[58,76],\"propose\":[59],\"call-target-specific\":[60],\"for\":[63],\"effectively\":[66],\"argument\":[68,101],\"handling\":[69],\"part\":[70],\"cache\":[74],\"entries.\":[75],\"implemented\":[77],\"this\":[78],\"concept\":[79],\"JRuby\":[81,104],\"using\":[82],\"Truffle\":[84],\"framework\":[85],\"order\":[87],\"make\":[89],\"keyword\":[90,100],\"Micro-benchmarks\":[94],\"confirm\":[95],\"that\":[96],\"our\":[97],\"implementation\":[98],\"makes\":[99],\"passing\":[102],\"than\":[106],\"twice\":[107],\"as\":[108],\"fast.\":[109]}},\"S\":[{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=2843919\"}],\"VFN\":\"Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"VSN\":\"ICOOOLPS\",\"FP\":5,\"DOI\":\"10.1145/2843915.2843919\",\"PR\":[2401596948,2404181034,2101225843,2731085289,2564232335,2119897009,1975664374,2887121437,327634714,2102549577,1594075998,2221309524,2343199757,2121787849,2427828726,2061392495,2134585967,2041562780,1976580128,2752311799,2401596948,2404181034,2101225843,2731085289,2564232335,2119897009,1975664374,2887121437,327634714,2102549577,1594075998,2221309524,2343199757,2121787849,2427828726,2061392495,2134585967,2041562780,1976580128,2752311799],\"ANF\":[{\"FN\":\"Fabio\",\"LN\":\"Niephaus\",\"S\":1},{\"FN\":\"Matthias\",\"LN\":\"Springer\",\"S\":2},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":3},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":4},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":5}],\"BV\":\"Proceedings of the 10th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-23.58,"Id":2617889889,"Ty":"0","Ti":"crossing abstraction barriers when debugging in dynamic languages","Pt":"3","L":"en","Y":2017,"D":"2017-04-03","CC":0,"ECC":0,"RId":[2089674328,1917216709,1985444680,2003716256,1984014917,2061417947,2015607366,2308961128,2129691826,2074316761],"W":["abstraction","barriers","crossing","debugging","dynamic","languages"],"AA":[{"DAuN":"Bastian Kruck","AuN":"bastian kruck","AuId":2635296306,"DAfN":"Universtiy of Potsdam","S":1},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Universtiy of Potsdam","S":2},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Universtiy of Potsdam","S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Universtiy of Potsdam","S":4}],"F":[{"DFN":"Workflow","FN":"workflow","FId":177212765},{"DFN":"Virtual machine","FN":"virtual machine","FId":25344961},{"DFN":"User interface","FN":"user interface","FId":89505385},{"DFN":"Unspecified behavior","FN":"unspecified behavior","FId":155831460},{"DFN":"Shotgun debugging","FN":"shotgun debugging","FId":87079347},{"DFN":"Real-time computing","FN":"real time computing","FId":79403827},{"DFN":"Debugging","FN":"debugging","FId":168065819},{"DFN":"Debugger","FN":"debugger","FId":2778485113},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Algorithmic program debugging","FN":"algorithmic program debugging","FId":136388014}],"C":{"CN":"sac","CId":2753968298},"E":"{\"DN\":\"Crossing abstraction barriers when debugging in dynamic languages\",\"IA\":{\"IndexLength\":280,\"InvertedIndex\":{\"Programmers\":[0],\"use\":[1,70],\"abstractions\":[2,42,63],\"to\":[3,45,55,91,163,242],\"reduce\":[4],\"implementation\":[5],\"effort\":[6,172],\"and\":[7,35,152,169,199,238,262],\"focus\":[8],\"on\":[9,253],\"domain-specifics.\":[10],\"The\":[11],\"resulting\":[12],\"application\":[13],\"often\":[14,174],\"runs\":[15],\"in\":[16,85,149],\"a\":[17,77,83,187,259],\"convenient\":[18],\"guest\":[19],\"runtime\":[20],\"that\":[21,51,107,113,154,224,231,273],\"is\":[22,97,173],\"provided\":[23],\"by\":[24],\"an\":[25,121,219,268],\"increasingly\":[26],\"complex\":[27],\"ecosystem\":[28],\"of\":[29,71,76,180,191],\"libraries,\":[30],\"VMs,\":[31],\"JIT-compilers,\":[32],\"operating\":[33],\"systems,\":[34],\"native\":[36],\"machine\":[37,81,96],\"architectures.\":[38],\"While\":[41],\"are\":[43,58,64],\"designed\":[44],\"hide\":[46],\"complexity,\":[47],\"experience\":[48],\"tells\":[49],\"us\":[50],\"\\\"All\":[52],\"non-trivial\":[53],\"abstractions,\":[54],\"some\":[56],\"degree,\":[57],\"leaky.\\\"\":[59],\"1\":[60],\"Leaky\":[62],\"problematic,\":[65],\"for\":[66],\"example,\":[67],\"when\":[68,245],\"the\":[69,94,109,128,170,177,182,189,226,232,249,254],\"under-documented\":[72,99],\"or\":[73,79,104],\"unspecified\":[74],\"behavior\":[75],\"library\":[78],\"virtual\":[80,95],\"causes\":[82],\"failure\":[84],\"domain-specific\":[86],\"code.\":[87],\"Users\":[88,161],\"may\":[89,194],\"need\":[90,162],\"understand\":[92],\"whether\":[93],\"just\":[98],\"but\":[100],\"working\":[101],\"as\":[102],\"intended\":[103],\"faulty.\":[105],\"At\":[106],\"point,\":[108],\"artificially\":[110],\"created\":[111],\"barrier\":[112,130],\"protects\":[114],\"language\":[115,144],\"users\":[116,239],\"from\":[117,157],\"domain-independent\":[118],\"complexity\":[119],\"becomes\":[120],\"obstacle.\":[122],\"We\":[123,217],\"call\":[124,256],\"this\":[125,147],\"crossing\":[127],\"abstraction\":[129],\".\":[131],\"Prior\":[134],\"research\":[135],\"has\":[136],\"investigated\":[137],\"how\":[138],\"symbolic\":[139,159,228],\"debuggers\":[140],\"can\":[141,235,240],\"work\":[142],\"across\":[143],\"barriers.\":[145],\"However,\":[146],\"resulted\":[148],\"dedicated\":[150],\"workflows\":[151],\"UIs\":[153],\"differ\":[155],\"substantially\":[156],\"traditional\":[158,250],\"debugging.\":[160],\"remember\":[164],\"these\":[165,192],\"rather\":[166],\"elaborate\":[167],\"workflows,\":[168],\"learning\":[171,204],\"larger\":[175],\"than\":[176],\"perceived\":[178],\"benefit\":[179],\"answering\":[181],\"given\":[183],\"debugging\":[184,213,244,278],\"questions.\":[185],\"As\":[186],\"result,\":[188],\"value\":[190],\"tools\":[193],\"not\":[195],\"be\":[196,236],\"immediately\":[197],\"recognized\":[198],\"developers\":[200],\"will\":[201],\"only\":[202],\"consider\":[203],\"them\":[205],\"after\":[206],\"having\":[207],\"spent\":[208],\"much\":[209],\"time\":[210],\"with\":[211,258],\"conventional\":[212,227],\"methods.\":[214],\"propose\":[218],\"interaction\":[221],\"model\":[222,261],\"generalizes\":[225],\"debugger\":[229],\"so\":[230],\"known\":[233],\"workflow\":[234],\"kept\":[237],\"opt-in\":[241],\"cross-abstraction\":[243],\"necessary.\":[246],\"By\":[247],\"replacing\":[248],\"list\":[251],\"view\":[252],\"active\":[255],\"chain\":[257],\"tree\":[260],\"adding\":[263],\"perspective\":[264],\"selection,\":[265],\"we\":[266],\"obtain\":[267],\"unobtrusive,\":[269],\"minimal\":[270],\"user\":[271],\"interface\":[272],\"still\":[274],\"offers\":[275],\"powerful\":[276],\"cross-language\":[277],\"features.\":[279]}},\"S\":[{\"Ty\":1,\"U\":\"https://doi.acm.org/10.1145/3019612.3019734\"},{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/sac/sac2017.html#KruckPFH17\"}],\"VFN\":\"Symposium on Applied Computing\",\"VSN\":\"SAC\",\"FP\":1498,\"LP\":1504,\"DOI\":\"10.1145/3019612.3019734\",\"PR\":[2065795965,2083128715,1541319186,1494161293,1601811574,2098479422,1870914935,2040252255,2463292594,2550474996,2461033740,2107917004,2007888916,2120384653,2141988289,1490452695,2056667853,1473427895,2126137084,2586350663,2065795965,2083128715,1541319186,1494161293,1601811574,2098479422,1870914935,2040252255,2463292594,2550474996,2461033740,2107917004,2007888916,2120384653,2141988289,1490452695,2056667853,1473427895,2126137084,2586350663],\"ANF\":[{\"FN\":\"Bastian\",\"LN\":\"Kruck\",\"S\":1},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":2},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4}],\"BV\":\"Proceedings of the Symposium on Applied Computing\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-23.589,"Id":2739518953,"Ty":"0","Ti":"squeak makes a good python debugger bringing other programming languages into smalltalk s tools","Pt":"0","L":"en","Y":2017,"D":"2017-04-03","CC":0,"ECC":0,"RId":[1770006921,2172147300,1587166076,121159850,2058213389,2148535470,2095839043,1969667418,2160370554,2029344921,2560096094,1493929095,2028508608,2097013380,2132215655,1019674797,2028053566,2033101903,1774013863,2143322757,2461033740,2534536750,2077771228,2085595137],"W":["bringing","debugger","good","languages","makes","programming","python","smalltalk","squeak","tools"],"AA":[{"DAuN":"Fabio Niephaus","AuN":"fabio niephaus","AuId":2343463870,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":2},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4}],"F":[{"DFN":"Squeak","FN":"squeak","FId":2780281086},{"DFN":"Software development","FN":"software development","FId":529173508},{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Python (programming language)","FN":"python","FId":519991488},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Interpreter","FN":"interpreter","FId":122783720},{"DFN":"Debugging","FN":"debugging","FId":168065819},{"DFN":"Debugger","FN":"debugger","FId":2778485113},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Computer architecture","FN":"computer architecture","FId":118524514},{"DFN":"Application programming interface","FN":"application programming interface","FId":99613125}],"E":"{\"DN\":\"Squeak Makes a Good Python Debugger: Bringing Other Programming Languages Into Smalltalk's Tools\",\"IA\":{\"IndexLength\":155,\"InvertedIndex\":{\"Interactive\":[0],\"debuggers\":[1],\"are\":[2,11,21],\"indispensable\":[3],\"in\":[4,151],\"many\":[5,152],\"software\":[6],\"development\":[7,71],\"scenarios.\":[8,154],\"However,\":[9],\"they\":[10],\"often\":[12],\"hard\":[13],\"to\":[14,23,46,82,100,148],\"extend\":[15],\"and\":[16,96,114],\"more\":[17],\"importantly,\":[18],\"their\":[19],\"capabilities\":[20],\"limited\":[22],\"an\":[24,42],\"application\":[25],\"programming\":[26,36,57],\"interface\":[27],\"(API)\":[28],\"provided\":[29],\"by\":[30,137],\"the\":[31,34,48,76,98],\"runtime\":[32],\"executing\":[33],\"corresponding\":[35],\"language.\":[37],\"We\":[40,107,118],\"propose\":[41],\"approach\":[43,60],\"that\":[44,124],\"allows\":[45,81],\"use\":[47],\"live\":[49],\"tools\":[50],\"of\":[51,75,86,130],\"a\":[52,68],\"Smalltalk\":[53],\"environment\":[54,72],\"for\":[55],\"other\":[56],\"languages.\":[58],\"The\":[59],\"is\":[61,133],\"based\":[62],\"on\":[63],\"interpreter-level\":[64],\"composition,\":[65],\"ultimately\":[66],\"making\":[67],\"full-fledged\":[69],\"integrated\":[70],\"(IDE)\":[73],\"part\":[74],\"language\":[77],\"execution\":[78],\"process.\":[79],\"This\":[80],\"directly\":[83],\"control\":[84],\"interpreters\":[85],\"foreign\":[87],\"languages\":[88],\"from\":[89],\"Smalltalk.\":[90],\"It\":[91],\"also\":[92],\"enables\":[93,126],\"tool\":[94],\"reuse\":[95],\"provides\":[97],\"ability\":[99],\"rapidly\":[101],\"build\":[102],\"new\":[103],\"tools.\":[104],\"demonstrate\":[108],\"how\":[109],\"we\":[110],\"have\":[111],\"combined\":[112],\"Squeak/Smalltalk\":[113],\"PyPy's\":[115],\"Python\":[116,131,142],\"implementation.\":[117],\"then\":[119],\"reused\":[120],\"Squeak's\":[121],\"debugger,\":[122],\"so\":[123],\"it\":[125],\"edit-and-continue\":[127],\"style\":[128],\"debugging\":[129,153],\"applications---which\":[132],\"currently\":[134],\"not\":[135],\"supported\":[136],\"Python's\":[138],\"PDB\":[139],\"or\":[140],\"any\":[141],\"IDE,\":[143],\"but\":[144],\"which\":[145],\"has\":[146],\"proven\":[147],\"be\":[149],\"invaluable\":[150]}},\"S\":[{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?doid=3079368.3079402\"},{\"Ty\":1,\"U\":\"https://doi.org/10.1145/3079368.3079402\"},{\"Ty\":0,\"U\":\"http://dl.acm.org/citation.cfm?doid=3079368.3079402\"}],\"VFN\":\"Companion to the first International Conference on the Art, Science and Engineering of Programming on \",\"FP\":27,\"DOI\":\"10.1145/3079368.3079402\",\"PR\":[2145317012,2074211779,2065830560,2560829062,2106734119,2012948209,1980218315,2235863377,2135259631,1967099391,2185251988,2790620778,2528407703,2048102561,1993837733,1542541010,1966510370,2547626284,881408708,161801395,2145317012,2074211779,2065830560,2560829062,2106734119,2012948209,1980218315,2235863377,2135259631,1967099391,2185251988,2790620778,2528407703,2048102561,1993837733,1542541010,1966510370,2547626284,881408708,161801395],\"ANF\":[{\"FN\":\"Fabio\",\"LN\":\"Niephaus\",\"S\":1},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":2},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":3},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":4}],\"BV\":\"Companion to the first International Conference on the Art, Science and Engineering of Programming on \",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-23.692,"Id":2533176871,"Ty":"0","Ti":"smalltalkci a continuous integration framework for smalltalk projects","Pt":"0","L":"en","Y":2016,"D":"2016-08-23","CC":0,"ECC":0,"RId":[1493688518,1770006921,2149185259,1564363189,2172147300,2129005287,1587166076,1527543831,2119945887,123328691,1982731949,2012948209,2044216888,1571004136,2419951300,595424935],"W":["continuous","framework","integration","projects","smalltalk","smalltalkci"],"AA":[{"DAuN":"Fabio Niephaus","AuN":"fabio niephaus","AuId":2343463870,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":1},{"DAuN":"Dale Henrichs","AuN":"dale henrichs","AuId":2539340196,"DAfN":"GemTalk Systems","S":2},{"DAuN":"Marcel Taeumel","AuN":"marcel taeumel","AuId":83004794,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":3},{"DAuN":"Tobias Pape","AuN":"tobias pape","AuId":2114920648,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":4},{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":5},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"Hasso Plattner Institute","AfN":"hasso plattner institute","AfId":143288331,"S":6}],"F":[{"DFN":"Smalltalk","FN":"smalltalk","FId":2777293101},{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"E":"{\"DN\":\"smalltalkCI: A Continuous Integration Framework for Smalltalk Projects\",\"IA\":{\"IndexLength\":166,\"InvertedIndex\":{\"Continuous\":[0],\"integration\":[1,33,92,164],\"(CI)\":[2],\"is\":[3,137],\"a\":[4,20,90,100,131,162],\"programming\":[5],\"practice\":[6],\"that\":[7,37],\"reduces\":[8],\"the\":[9,28,54,58],\"risk\":[10],\"of\":[11],\"project\":[12],\"failure\":[13],\"by\":[14],\"integrating\":[15],\"code\":[16],\"changes\":[17],\"multiple\":[18],\"times\":[19],\"day.\":[21],\"This\":[22],\"has\":[23,63],\"always\":[24],\"been\":[25],\"important\":[26],\"to\":[27,78,98,103,147,160],\"Smalltalk\":[29,42,70,107,112],\"community,\":[30],\"so\":[31],\"custom\":[32,163],\"infrastructures\":[34],\"are\":[35],\"operated\":[36],\"allow\":[38],\"CI\":[39,80,141,152],\"testing\":[40,81,153],\"for\":[41,69,82,94,154],\"projects\":[43,108,157],\"shared\":[44],\"in\":[45,110],\"Monticello\":[46],\"repositories\":[47],\"or\":[48],\"traditional\":[49],\"changesets.\":[50],\"In\":[53,134],\"last\":[55],\"few\":[56],\"years,\":[57],\"open\":[59],\"hosting\":[60],\"platform\":[61],\"GitHub\":[62,156],\"become\":[64],\"more\":[65,67],\"and\":[66,105,119,122,142],\"popular\":[68],\"projects.\":[71,84],\"Unfortunately,\":[72],\"there\":[73],\"was\":[74],\"no\":[75],\"convenient\":[76],\"way\":[77,102],\"enable\":[79],\"those\":[83],\"We\":[87],\"present\":[88],\"smalltalkCI,\":[89],\"continuous\":[91],\"framework\":[93],\"Smalltalk.\":[95],\"It\":[96],\"aims\":[97],\"provide\":[99],\"uniform\":[101],\"load\":[104],\"test\":[106],\"written\":[109],\"different\":[111],\"dialects.\":[113],\"smalltalkCI\":[114],\"runs\":[115],\"on\":[116,120,130],\"Linux,\":[117],\"macOS,\":[118],\"Windows\":[121],\"can\":[123],\"be\":[124],\"used\":[125],\"locally\":[126],\"as\":[127,129],\"well\":[128],\"remote\":[132],\"server.\":[133],\"addition,\":[135],\"it\":[136],\"compatible\":[138],\"with\":[139],\"Travis\":[140],\"AppVeyor,\":[143],\"which\":[144],\"allows\":[145],\"developers\":[146],\"easily\":[148],\"set\":[149],\"up\":[150],\"free\":[151],\"their\":[155],\"without\":[158],\"having\":[159],\"run\":[161],\"infrastructure.\":[165]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/iwst/iwst2016.html#NiephausHTPFH16\"}],\"VFN\":\"Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies\",\"FP\":3,\"DOI\":\"10.1145/2991041.2991044\",\"PR\":[2065830560,2074211779,2145317012,2085973096,2030847413,2739518953,2012948209,1542541010,1206195369,2129386887,596800177,1967332971,2486286679,2415179959,2408489458,1875783228,947528838,2990514,2166347006,2280121596,2065830560,2074211779,2145317012,2085973096,2030847413,2739518953,2012948209,1542541010,1206195369,2129386887,596800177,1967332971,2486286679,2415179959,2408489458,1875783228,947528838,2990514,2166347006,2280121596],\"ANF\":[{\"FN\":\"Fabio\",\"LN\":\"Niephaus\",\"S\":1},{\"FN\":\"Dale\",\"LN\":\"Henrichs\",\"S\":2},{\"FN\":\"Marcel\",\"LN\":\"Taeumel\",\"S\":3},{\"FN\":\"Tobias\",\"LN\":\"Pape\",\"S\":4},{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":5},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":6}],\"BV\":\"Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-23.771,"Id":2333045237,"Ty":"0","Ti":"automatically selecting and optimizing constraint solver procedures for object constraint languages","Pt":"0","L":"en","Y":2016,"D":"2016-03-14","CC":0,"ECC":0,"RId":[1480909796,1964031104,2099625934,1519503479,2148542244,2065131671,2339376177,2045398665,2073536284,2078404830,2053637323,2163671349,2132233302,2168617729,140117226,2339290067,2126647275,2466549770,2019153550,2107596222,2144171313,2103729840,2325401288,2085158159,1518554892,2555448203],"W":["automatically","constraint","languages","object","optimizing","procedures","selecting","solver"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":1964871710,"DAfN":"HPI, Germany","S":1},{"DAuN":"Stefan Lehmann","AuN":"stefan lehmann","AuId":2223786367,"DAfN":"HPI, Germany","S":2},{"DAuN":"Robert Hirschfeld","AuN":"robert hirschfeld","AuId":2154319088,"DAfN":"HPI, Germany","S":3},{"DAuN":"Sebastian Gerstenberg","AuN":"sebastian gerstenberg","AuId":2343815462,"DAfN":"HPI, Germany","S":4},{"DAuN":"Jakob Reschke","AuN":"jakob reschke","AuId":2345244598,"DAfN":"HPI, Germany","S":5},{"DAuN":"Lars Rückert","AuN":"lars ruckert","AuId":2344937523,"DAfN":"HPI, Germany","S":6},{"DAuN":"Patrick Siegler","AuN":"patrick siegler","AuId":2672829982,"DAfN":"HPI, Germany","S":7},{"DAuN":"Jan Graichen","AuN":"jan graichen","AuId":2675467374,"DAfN":"HPI, Germany","S":8},{"DAuN":"Christian Nicolai","AuN":"christian nicolai","AuId":2343125944,"DAfN":"HPI, Germany","S":9},{"DAuN":"Malte Swart","AuN":"malte swart","AuId":2343580864,"DAfN":"HPI, Germany","S":10}],"F":[{"DFN":"Theoretical computer science","FN":"theoretical computer science","FId":80444323},{"DFN":"Solver","FN":"solver","FId":2778770139},{"DFN":"Reactive programming","FN":"reactive programming","FId":150762246},{"DFN":"Inductive programming","FN":"inductive programming","FId":50033165},{"DFN":"Implementation","FN":"implementation","FId":26713055},{"DFN":"Fifth-generation programming language","FN":"fifth generation programming language","FId":199305712},{"DFN":"Constraint satisfaction problem","FN":"constraint satisfaction problem","FId":199622910},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Computer science","FN":"computer science","FId":41008148},{"DFN":"Cassowary","FN":"cassowary","FId":2778448359}],"E":"{\"DN\":\"Automatically selecting and optimizing constraint solver procedures for object-constraint languages\",\"IA\":{\"IndexLength\":197,\"InvertedIndex\":{\"Object-constraint\":[0],\"programming\":[1,11,44,186],\"provides\":[2],\"a\":[3,99,145],\"design\":[4],\"to\":[5,16,47,55,74,97,106,115,175],\"integrate\":[6],\"constraints\":[7,19,30,156],\"with\":[8,51,92],\"dynamic,\":[9],\"object-oriented\":[10,27],\"languages.\":[12],\"It\":[13],\"allows\":[14],\"developers\":[15,95],\"encode\":[17],\"multi-way\":[18],\"over\":[20],\"objects\":[21],\"and\":[22,57,87,168,193],\"object\":[23],\"collections\":[24],\"using\":[25],\"existing,\":[26],\"abstractions.\":[28],\"These\":[29],\"are\":[31,158],\"automatically\":[32,121,174],\"maintained\":[33],\"at\":[34,80,150],\"run-time.\":[35],\"One\":[36],\"original\":[37],\"goal\":[38],\"of\":[39,42,61,72,102,154,195],\"the\":[40,52,103,118,124,151,191],\"Babelsberg-family\":[41],\"object-constraint\":[43,185],\"languages\":[45],\"was\":[46],\"allow\":[48],\"users\":[49],\"familiar\":[50],\"imperative\":[53],\"paradigm\":[54],\"quickly\":[56],\"efficiently\":[58],\"make\":[59,184],\"use\":[60,107],\"constraint\":[62],\"solver\":[63,83,119,136,177],\"capabilities.\":[64],\"Yet,\":[65],\"practical\":[66,188],\"problems\":[67],\"often\":[68],\"require\":[69],\"careful\":[70],\"selection\":[71,137],\"solvers\":[73,90,162],\"find\":[75],\"good\":[76,100],\"solutions\":[77],\"(or\":[78],\"any\":[79],\"all).\":[81],\"Furthermore,\":[82],\"performance\":[84,152,194],\"can\":[85,171],\"vary\":[86],\"while\":[88],\"most\":[89],\"come\":[91],\"various\":[93],\"optimizations,\":[94],\"have\":[96,98],\"understanding\":[101],\"solving\":[104],\"process\":[105],\"these\":[108,182],\"optimizations\":[109],\"effectively.\":[110],\"This,\":[111],\"however,\":[112],\"is\":[113,120],\"difficult\":[114],\"achieve\":[116],\"if\":[117],\"selected\":[122],\"by\":[123,189],\"system.\":[125],\"In\":[126],\"this\":[127],\"work,\":[128],\"we\":[129,139,148],\"discuss\":[130],\"three\":[131],\"different\":[132],\"implementations\":[133],\"for\":[134],\"automatic\":[135],\"that\":[138,157,181],\"used\":[140],\"in\":[141,160],\"Babelsberg\":[142],\"implementations.\":[143],\"As\":[144],\"second\":[146],\"step,\":[147],\"look\":[149],\"potential\":[153],\"edit\":[155],\"available\":[159],\"some\":[161],\"such\":[163],\"as\":[164],\"Cassowary\":[165],\"or\":[166],\"DeltaBlue,\":[167],\"how\":[169],\"they\":[170],\"be\":[172],\"applied\":[173],\"improve\":[176],\"performance.\":[178],\"We\":[179],\"argue\":[180],\"techniques\":[183],\"more\":[187],\"improving\":[190],\"quality\":[192],\"solutions.\":[196]}},\"S\":[{\"Ty\":1,\"U\":\"http://dblp.uni-trier.de/db/conf/aosd/modularity2016c.html#FelgentreffLHGR16\"},{\"Ty\":1,\"U\":\"https://dl.acm.org/citation.cfm?id=2892671\"}],\"VFN\":\"Companion Proceedings of the 15th International Conference on Modularity\",\"FP\":65,\"LP\":72,\"DOI\":\"10.1145/2892664.2892671\",\"PR\":[1483265216,2562516578,2256532437,76356789,2514962633,1505492495,2147143476,2552279830,2309639351,2404162237,2291177998,2118209855,25309192,2183107717,2464627483,2552875977,2674334413,2395045096,2414240756,2271781913,1483265216,2562516578,2256532437,76356789,2514962633,1505492495,2147143476,2552279830,2309639351,2404162237,2291177998,2118209855,25309192,2183107717,2464627483,2552875977,2674334413,2395045096,2414240756,2271781913],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1},{\"FN\":\"Stefan\",\"LN\":\"Lehmann\",\"S\":2},{\"FN\":\"Robert\",\"LN\":\"Hirschfeld\",\"S\":3},{\"FN\":\"Sebastian\",\"LN\":\"Gerstenberg\",\"S\":4},{\"FN\":\"Jakob\",\"LN\":\"Reschke\",\"S\":5},{\"FN\":\"Lars\",\"LN\":\"Rückert\",\"S\":6},{\"FN\":\"Patrick\",\"LN\":\"Siegler\",\"S\":7},{\"FN\":\"Jan\",\"LN\":\"Graichen\",\"S\":8},{\"FN\":\"Christian\",\"LN\":\"Nicolai\",\"S\":9},{\"FN\":\"Malte\",\"LN\":\"Swart\",\"S\":10}],\"BV\":\"Companion Proceedings of the 15th International Conference on Modularity\",\"BT\":\"p\",\"PB\":\"ACM\"}"},{"logprob":-24.583,"Id":2614075180,"Ty":"0","Ti":"the design and implementation of object constraint programming","Pt":"0","L":"en","Y":2017,"D":"2017-01-01","CC":0,"ECC":0,"W":["constraint","design","implementation","object","programming"],"AA":[{"DAuN":"Tim Felgentreff","AuN":"tim felgentreff","AuId":2805234885,"S":1}],"F":[{"DFN":"Programming language","FN":"programming language","FId":199360897},{"DFN":"Programming domain","FN":"programming domain","FId":119263510},{"DFN":"Procedural programming","FN":"procedural programming","FId":120558287},{"DFN":"Inductive programming","FN":"inductive programming","FId":50033165},{"DFN":"Functional reactive programming","FN":"functional reactive programming","FId":119489759},{"DFN":"Functional logic programming","FN":"functional logic programming","FId":96315309},{"DFN":"Fifth-generation programming language","FN":"fifth generation programming language","FId":199305712},{"DFN":"Extensible programming","FN":"extensible programming","FId":131531359},{"DFN":"Constraint programming","FN":"constraint programming","FId":173404611},{"DFN":"Computer science","FN":"computer science","FId":41008148}],"E":"{\"DN\":\"The Design and Implementation of Object-Constraint Programming\",\"S\":[{\"Ty\":1,\"U\":\"https://publishup.uni-potsdam.de/opus4-ubp/frontdoor/index/index/docId/39562\"}],\"VFN\":\"\",\"PR\":[1487694410,124173102,596716495,2313574931,33308240,2066852529,2013398477,2388471547,2552637150,1529088036,2002120191,1497444914,2381304107,137102142,2587982667,1487692308,18346774,2128002387,2122749204,116714339,1487694410,124173102,596716495,2313574931,33308240,2066852529,2013398477,2388471547,2552637150,1529088036,2002120191,1497444914,2381304107,137102142,2587982667,1487692308,18346774,2128002387,2122749204,116714339],\"ANF\":[{\"FN\":\"Tim\",\"LN\":\"Felgentreff\",\"S\":1}],\"BT\":\"a\"}"}]}