EdSketch: execution-driven sketching for Java
Sketching is a synthesis approach that allows users to provide high-level insights into a synthesis problem and let synthesis tools complete low-level details. Users write sketches —partial programs that have “holes” and provide test assertions as the correctness criteria. The sketching techniques f...
Saved in:
Published in | International journal on software tools for technology transfer Vol. 21; no. 3; pp. 249 - 265 |
---|---|
Main Authors | , , , |
Format | Journal Article |
Language | English |
Published |
Berlin/Heidelberg
Springer Berlin Heidelberg
01.06.2019
Springer Nature B.V |
Subjects | |
Online Access | Get full text |
ISSN | 1433-2779 1433-2787 |
DOI | 10.1007/s10009-019-00512-8 |
Cover
Abstract | Sketching is a synthesis approach that allows users to provide high-level insights into a synthesis problem and let synthesis tools complete low-level details. Users write
sketches
—partial programs that have “holes” and provide test assertions as the correctness criteria. The sketching techniques fill the holes with code fragments such that the complete program satisfies all test assertions. Traditional techniques translate the sketching problem to propositional satisfiability formulas and leverage SAT solvers to generate programs with the desired functionality. While effective for a range of small well-defined domains, such translation-based approaches have a key limitation when applying to real applications: They require either translating all relevant libraries that are invoked directly or indirectly by the given sketch or creating models of those libraries, which requires much manual effort. This paper introduces
execution-driven sketching
, a novel approach for synthesizing Java programs with
on-demand
candidate generation. The key novelty of our work is to leverage runtime behavior to prune a large amount of search space.
EdSketch
explores the actual program behaviors
in the presence
of libraries and sketches small parts of real-world applications, which may use complex constructs of modern languages, such as reflection, native calls and File I/O. We further leverage a set of pruning strategies based on Java syntax to expedite the synthesis process.
EdSketch
embodies our approach in two forms: a stateful search based on the Java PathFinder model checker; and a stateless search based on re-execution inspired by the
VeriSoft
model checker. Experimental results show that
EdSketch
can complete some sketches that contain complex constructs in the presence of libraries, recursive procedures and advanced features like reflection. Without translating to SAT,
EdSketch
’s performance compares well with the SAT-based
Sketch
system for a range of small but complex data structure subjects. |
---|---|
AbstractList | Sketching is a synthesis approach that allows users to provide high-level insights into a synthesis problem and let synthesis tools complete low-level details. Users write
sketches
—partial programs that have “holes” and provide test assertions as the correctness criteria. The sketching techniques fill the holes with code fragments such that the complete program satisfies all test assertions. Traditional techniques translate the sketching problem to propositional satisfiability formulas and leverage SAT solvers to generate programs with the desired functionality. While effective for a range of small well-defined domains, such translation-based approaches have a key limitation when applying to real applications: They require either translating all relevant libraries that are invoked directly or indirectly by the given sketch or creating models of those libraries, which requires much manual effort. This paper introduces
execution-driven sketching
, a novel approach for synthesizing Java programs with
on-demand
candidate generation. The key novelty of our work is to leverage runtime behavior to prune a large amount of search space.
EdSketch
explores the actual program behaviors
in the presence
of libraries and sketches small parts of real-world applications, which may use complex constructs of modern languages, such as reflection, native calls and File I/O. We further leverage a set of pruning strategies based on Java syntax to expedite the synthesis process.
EdSketch
embodies our approach in two forms: a stateful search based on the Java PathFinder model checker; and a stateless search based on re-execution inspired by the
VeriSoft
model checker. Experimental results show that
EdSketch
can complete some sketches that contain complex constructs in the presence of libraries, recursive procedures and advanced features like reflection. Without translating to SAT,
EdSketch
’s performance compares well with the SAT-based
Sketch
system for a range of small but complex data structure subjects. Sketching is a synthesis approach that allows users to provide high-level insights into a synthesis problem and let synthesis tools complete low-level details. Users write sketches—partial programs that have “holes” and provide test assertions as the correctness criteria. The sketching techniques fill the holes with code fragments such that the complete program satisfies all test assertions. Traditional techniques translate the sketching problem to propositional satisfiability formulas and leverage SAT solvers to generate programs with the desired functionality. While effective for a range of small well-defined domains, such translation-based approaches have a key limitation when applying to real applications: They require either translating all relevant libraries that are invoked directly or indirectly by the given sketch or creating models of those libraries, which requires much manual effort. This paper introduces execution-driven sketching, a novel approach for synthesizing Java programs with on-demand candidate generation. The key novelty of our work is to leverage runtime behavior to prune a large amount of search space. EdSketch explores the actual program behaviors in the presence of libraries and sketches small parts of real-world applications, which may use complex constructs of modern languages, such as reflection, native calls and File I/O. We further leverage a set of pruning strategies based on Java syntax to expedite the synthesis process. EdSketch embodies our approach in two forms: a stateful search based on the Java PathFinder model checker; and a stateless search based on re-execution inspired by the VeriSoft model checker. Experimental results show that EdSketch can complete some sketches that contain complex constructs in the presence of libraries, recursive procedures and advanced features like reflection. Without translating to SAT, EdSketch ’s performance compares well with the SAT-based Sketch system for a range of small but complex data structure subjects. |
Author | Hua, Jinru Khurshid, Sarfraz Zhang, Yushan Zhang, Yuqun |
Author_xml | – sequence: 1 givenname: Jinru surname: Hua fullname: Hua, Jinru organization: The University of Texas at Austin – sequence: 2 givenname: Yushan surname: Zhang fullname: Zhang, Yushan organization: Southern University of Science and Technology – sequence: 3 givenname: Yuqun surname: Zhang fullname: Zhang, Yuqun email: zhangyq@sustc.edu.cn organization: Southern University of Science and Technology – sequence: 4 givenname: Sarfraz surname: Khurshid fullname: Khurshid, Sarfraz organization: The University of Texas at Austin |
BookMark | eNp9kE1PAyEQhompiW31D3jaxDMKC7sD3kxTq6aJB_VMKLB1a2Ur7Db676Vdo4mHHuYjmfeZgXeEBr7xDqFzSi4pIXAVUyYSE5qCFDTH4ggNKWcM5yBg8NuDPEGjGFeEUChBDhGe2qc315rX68x9OtO1deOxDfXW-SzuB7VfZlUTsge91afouNLr6M5-6hi93E6fJ3d4_ji7n9zMsWFUtrjgxhUGQFDGwXLgmjgHTHILIrdWVtoCL21hmday5DkpDVsIa-yikrSwmo3RRb93E5qPzsVWrZou-HRS5VRSmRCQSSV6lQlNjMFVytSt3v2gDbpeK0rUzhzVm6OSOWpvjhIJzf-hm1C_6_B1GGI9FJPYL134e9UB6hvvN3ez |
CitedBy_id | crossref_primary_10_1109_TSE_2020_2979701 crossref_primary_10_1016_j_sysarc_2020_101936 crossref_primary_10_3390_sym12122076 crossref_primary_10_1007_s10009_019_00515_5 crossref_primary_10_3390_computers9020027 |
Cites_doi | 10.1145/566172.566191 10.1145/321420.321422 10.1007/s10009-012-0249-7 10.1145/2786805.2786811 10.1109/FMCAD.2013.6679385 10.1109/ASE.2000.873645 10.1145/1368088.1368222 10.1145/1806799.1806833 10.1145/263699.263717 10.1145/1706299.1706339 10.1145/2884781.2884807 10.1109/ASE.2013.6693094 10.1007/978-3-319-46520-3_29 10.1145/1062455.1062491 10.1007/978-3-642-19835-9_15 10.1145/3236024.3264594 10.1145/1101908.1101949 10.1109/ASE.2009.92 10.1145/2635868.2635929 10.1007/978-3-642-39799-8_67 |
ContentType | Journal Article |
Copyright | Springer-Verlag GmbH Germany, part of Springer Nature 2019 International Journal on Software Tools for Technology Transfer is a copyright of Springer, (2019). All Rights Reserved. |
Copyright_xml | – notice: Springer-Verlag GmbH Germany, part of Springer Nature 2019 – notice: International Journal on Software Tools for Technology Transfer is a copyright of Springer, (2019). All Rights Reserved. |
DBID | AAYXX CITATION 3V. 7SC 7XB 8AL 8AO 8FD 8FE 8FG 8FK 8G5 ABJCF ABUWG AFKRA ARAPS AZQEC BENPR BGLVJ CCPQU DWQXO GNUQQ GUQSH HCIFZ JQ2 K7- L6V L7M L~C L~D M0N M2O M7S MBDVC P5Z P62 PADUT PHGZM PHGZT PKEHL PQEST PQGLB PQQKQ PQUKI PRINS PTHSS Q9U |
DOI | 10.1007/s10009-019-00512-8 |
DatabaseName | CrossRef ProQuest Central (Corporate) Computer and Information Systems Abstracts ProQuest Central (purchase pre-March 2016) Computing Database (Alumni Edition) ProQuest Pharma Collection Technology Research Database ProQuest SciTech Collection ProQuest Technology Collection ProQuest Central (Alumni) (purchase pre-March 2016) ProQuest Research Library Materials Science & Engineering Collection ProQuest Central (Alumni) ProQuest Central UK/Ireland Advanced Technologies & Aerospace Collection ProQuest Central Essentials ProQuest Central Technology Collection (ProQuest) ProQuest One Community College ProQuest Central Korea ProQuest Central Student ProQuest Research Library SciTech Premium Collection ProQuest Computer Science Collection Computer Science Database ProQuest Engineering Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional Computing Database Research Library Engineering Database Research Library (Corporate) AAdvanced Technologies & Aerospace Database (subscription) ProQuest Advanced Technologies & Aerospace Collection Research Library China ProQuest Central Premium ProQuest One Academic (New) ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition (DO NOT USE) ProQuest One Applied & Life Sciences ProQuest One Academic ProQuest One Academic UKI Edition ProQuest Central China Engineering Collection ProQuest Central Basic |
DatabaseTitle | CrossRef Research Library Prep Computer Science Database ProQuest Central Student Technology Collection Technology Research Database Computer and Information Systems Abstracts – Academic ProQuest One Academic Middle East (New) ProQuest Advanced Technologies & Aerospace Collection ProQuest Central Essentials ProQuest Computer Science Collection Computer and Information Systems Abstracts ProQuest Central (Alumni Edition) SciTech Premium Collection ProQuest One Community College Research Library (Alumni Edition) ProQuest Pharma Collection ProQuest Central China ProQuest Central ProQuest One Applied & Life Sciences ProQuest Engineering Collection ProQuest Central Korea ProQuest Research Library Research Library China ProQuest Central (New) Advanced Technologies Database with Aerospace Engineering Collection Advanced Technologies & Aerospace Collection ProQuest Computing Engineering Database ProQuest Central Basic ProQuest Computing (Alumni Edition) ProQuest One Academic Eastern Edition ProQuest Technology Collection ProQuest SciTech Collection Computer and Information Systems Abstracts Professional Advanced Technologies & Aerospace Database ProQuest One Academic UKI Edition Materials Science & Engineering Collection ProQuest One Academic ProQuest One Academic (New) ProQuest Central (Alumni) |
DatabaseTitleList | Research Library Prep |
Database_xml | – sequence: 1 dbid: 8FG name: ProQuest Technology Collection url: https://search.proquest.com/technologycollection1 sourceTypes: Aggregation Database |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISSN | 1433-2787 |
EndPage | 265 |
ExternalDocumentID | 10_1007_s10009_019_00512_8 |
GroupedDBID | -59 -5G -BR -EM -~C .86 .DC .VR 06D 0R~ 0VY 1N0 203 29J 2J2 2JN 2JY 2KG 2KM 2LR 2~H 30V 4.4 406 408 409 40D 40E 5GY 67Z 6NX 8AO 8FE 8FG 8FW 8G5 8TC 95- 95. 95~ 96X AAAVM AABHQ AACDK AAHNG AAIAL AAJBT AAJKR AANZL AARTL AASML AATNV AATVU AAUYE AAWCG AAYIU AAYQN AAYTO AAYZH ABAKF ABBBX ABBXA ABDZT ABECU ABFTD ABFTV ABHLI ABHQN ABJCF ABJNI ABJOX ABKCH ABKTR ABMNI ABMQK ABNWP ABQBU ABSXP ABTEG ABTHY ABTKH ABTMW ABUWG ABWNU ABXPI ACAOD ACDTI ACGFS ACHSB ACHXU ACIWK ACKNC ACMDZ ACMLO ACOKC ACOMO ACPIV ACSNA ACZOJ ADHHG ADHIR ADINQ ADKNI ADKPE ADRFC ADTPH ADURQ ADYFF ADZKW AEFQL AEGAL AEGNC AEJHL AEJRE AEMSY AEOHA AEPYU AESKC AETLH AEVLU AEXYK AFBBN AFKRA AFLOW AFQWF AFWTZ AFZKB AGAYW AGDGC AGJBK AGMZJ AGQEE AGQMX AGRTI AGWIL AGWZB AGYKE AHAVH AHBYD AHKAY AHYZX AIAKS AIGIU AIIXL AILAN AITGF AJRNO AJZVZ ALMA_UNASSIGNED_HOLDINGS ALWAN AMKLP AMXSW AMYLF AMYQR AOCGG ARAPS ARMRJ ASPBG AVWKF AXYYD AYJHY AZFZN AZQEC B-. BA0 BDATZ BENPR BGLVJ BGNMA BPHCQ BSONS CCPQU CS3 CSCUP DDRTE DL5 DNIVK DPUIP DU5 DWQXO EBLON EBS EIOEI EJD ESBYG FEDTE FERAY FFXSO FIGPU FINBP FNLPD FRRFC FSGXE FWDCC GGCAI GGRSB GJIRD GNUQQ GNWQR GQ6 GQ7 GQ8 GUQSH GXS HCIFZ HF~ HG5 HG6 HMJXF HQYDN HRMNR HVGLF I09 IHE IJ- IKXTQ ITM IWAJR IXC IZIGR IZQ I~X I~Z J-C J0Z JBSCW JCJTX JZLTJ K6V K7- KDC KOV L6V LAS LLZTM M0N M2O M4Y M7S MA- NB0 NPVJJ NQJWS NU0 O93 O9J OAM P62 P9O PADUT PF0 PQQKQ PROAC PT4 PT5 PTHSS Q2X QOS R89 R9I ROL RPX RSV S16 S27 S3B SAP SCO SDH SHX SISQX SJYHP SNE SNPRN SNX SOHCF SOJ SPISZ SRMVM SSLCW STPWE SZN T13 TSG TSK TSV TUC U2A UG4 UOJIU UTJUX UZXMN VC2 VFIZW W23 W48 WK8 YLTOR Z45 Z7R Z7X Z7Z Z83 Z88 ZMTXR -Y2 .4S 1SB 2P1 2VQ 5VS AAPKM AARHV AAYXX ABBRH ABDBE ABFSG ABQSL ABULA ACBXY ACSTC ADHKG AEBTG AEKMD AEZWR AFDZB AFGCZ AFHIU AFOHR AGGDS AGQPQ AHPBZ AHSBF AHWEU AIXLP AJBLW ARCSS ATHPR AYFIA CAG CITATION COF EDO H13 HZ~ I-F MK~ ML~ N2Q O9- PHGZM PHGZT RIG RNI RZK S1Z TUS 3V. 7SC 7XB 8AL 8FD 8FK ABRTQ JQ2 L7M L~C L~D MBDVC PKEHL PQEST PQGLB PQUKI PRINS Q9U |
ID | FETCH-LOGICAL-c319t-54ce5c7781347d474a0ee7394d782dd9fad746d5d3aa964206c3b8dcdbf915da3 |
IEDL.DBID | 8FG |
ISSN | 1433-2779 |
IngestDate | Sat Aug 23 14:45:31 EDT 2025 Thu Apr 24 23:10:33 EDT 2025 Tue Jul 01 01:52:19 EDT 2025 Fri Feb 21 02:33:57 EST 2025 |
IsPeerReviewed | true |
IsScholarly | true |
Issue | 3 |
Keywords | Program sketching Execution-driven synthesis Backtracking search |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-c319t-54ce5c7781347d474a0ee7394d782dd9fad746d5d3aa964206c3b8dcdbf915da3 |
Notes | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
PQID | 2191942079 |
PQPubID | 46652 |
PageCount | 17 |
ParticipantIDs | proquest_journals_2191942079 crossref_citationtrail_10_1007_s10009_019_00512_8 crossref_primary_10_1007_s10009_019_00512_8 springer_journals_10_1007_s10009_019_00512_8 |
ProviderPackageCode | CITATION AAYXX |
PublicationCentury | 2000 |
PublicationDate | 20190601 2019-6-00 |
PublicationDateYYYYMMDD | 2019-06-01 |
PublicationDate_xml | – month: 6 year: 2019 text: 20190601 day: 1 |
PublicationDecade | 2010 |
PublicationPlace | Berlin/Heidelberg |
PublicationPlace_xml | – name: Berlin/Heidelberg – name: Heidelberg |
PublicationTitle | International journal on software tools for technology transfer |
PublicationTitleAbbrev | Int J Softw Tools Technol Transfer |
PublicationYear | 2019 |
Publisher | Springer Berlin Heidelberg Springer Nature B.V |
Publisher_xml | – name: Springer Berlin Heidelberg – name: Springer Nature B.V |
References | Solar-Lezama (CR1) 2013; 15 CR19 CR17 CR39 CR16 CR37 CR14 CR13 CR35 CR12 CR34 CR11 CR33 CR10 CR32 CR31 CR30 Cormen, Leiserson, Rivest, Stein (CR15) 2009 Jackson (CR36) 2006 CR2 Boyapati, Khurshid, Marinov (CR18) 2002; 2002 CR4 CR3 CR6 CR5 CR8 CR7 CR29 Floyd (CR38) 1967; 14 CR28 CR9 CR27 CR26 CR25 CR47 CR24 CR46 CR23 CR45 CR22 CR44 CR21 CR43 CR20 CR42 CR41 CR40 512_CR37 512_CR16 512_CR17 512_CR39 C Boyapati (512_CR18) 2002; 2002 512_CR11 512_CR33 D Jackson (512_CR36) 2006 512_CR12 512_CR34 512_CR13 512_CR35 512_CR14 512_CR4 512_CR5 512_CR30 512_CR6 512_CR31 512_CR7 512_CR10 512_CR32 512_CR2 512_CR3 RW Floyd (512_CR38) 1967; 14 TH Cormen (512_CR15) 2009 512_CR26 512_CR27 512_CR28 512_CR29 512_CR22 512_CR44 512_CR23 512_CR45 512_CR24 512_CR46 512_CR25 512_CR47 512_CR40 512_CR41 512_CR20 512_CR42 512_CR21 512_CR43 A Solar-Lezama (512_CR1) 2013; 15 512_CR8 512_CR9 512_CR19 |
References_xml | – ident: CR45 – ident: CR22 – ident: CR43 – ident: CR47 – ident: CR4 – ident: CR14 – ident: CR39 – ident: CR2 – ident: CR16 – ident: CR37 – ident: CR12 – ident: CR30 – ident: CR10 – ident: CR33 – ident: CR35 – ident: CR6 – ident: CR29 – year: 2006 ident: CR36 publication-title: Software Abstractions: Logic, Language, and Analysis – ident: CR8 – ident: CR40 – year: 2009 ident: CR15 publication-title: Introduction to Algorithms – ident: CR25 – ident: CR27 – ident: CR42 – ident: CR23 – ident: CR21 – ident: CR46 – ident: CR19 – ident: CR44 – volume: 2002 start-page: 123 year: 2002 end-page: 133 ident: CR18 article-title: Korat: automated testing based on Java predicates publication-title: ISSTA doi: 10.1145/566172.566191 – volume: 14 start-page: 4 year: 1967 ident: CR38 article-title: Nondeterministic algorithms publication-title: J. ACM doi: 10.1145/321420.321422 – volume: 15 start-page: 475 issue: 5–6 year: 2013 end-page: 495 ident: CR1 article-title: Program sketching publication-title: STTT doi: 10.1007/s10009-012-0249-7 – ident: CR3 – ident: CR17 – ident: CR31 – ident: CR13 – ident: CR11 – ident: CR9 – ident: CR32 – ident: CR34 – ident: CR5 – ident: CR7 – ident: CR28 – ident: CR41 – ident: CR26 – ident: CR24 – ident: CR20 – ident: 512_CR34 – ident: 512_CR11 – ident: 512_CR45 doi: 10.1145/2786805.2786811 – ident: 512_CR9 – ident: 512_CR28 – ident: 512_CR4 doi: 10.1109/FMCAD.2013.6679385 – ident: 512_CR7 doi: 10.1109/ASE.2000.873645 – ident: 512_CR12 doi: 10.1145/1368088.1368222 – ident: 512_CR30 – ident: 512_CR32 doi: 10.1145/1806799.1806833 – ident: 512_CR8 doi: 10.1145/263699.263717 – ident: 512_CR19 doi: 10.1145/1706299.1706339 – ident: 512_CR20 – ident: 512_CR46 doi: 10.1145/2884781.2884807 – ident: 512_CR22 – ident: 512_CR24 – ident: 512_CR5 – ident: 512_CR3 – ident: 512_CR26 – ident: 512_CR44 doi: 10.1109/ASE.2013.6693094 – ident: 512_CR47 doi: 10.1007/978-3-319-46520-3_29 – ident: 512_CR41 doi: 10.1145/1062455.1062491 – ident: 512_CR43 doi: 10.1007/978-3-642-19835-9_15 – volume: 15 start-page: 475 issue: 5–6 year: 2013 ident: 512_CR1 publication-title: STTT doi: 10.1007/s10009-012-0249-7 – ident: 512_CR10 – ident: 512_CR33 – volume-title: Introduction to Algorithms year: 2009 ident: 512_CR15 – ident: 512_CR35 doi: 10.1145/3236024.3264594 – ident: 512_CR31 – ident: 512_CR37 – volume-title: Software Abstractions: Logic, Language, and Analysis year: 2006 ident: 512_CR36 – ident: 512_CR16 – ident: 512_CR17 doi: 10.1145/1101908.1101949 – ident: 512_CR14 – ident: 512_CR42 doi: 10.1109/ASE.2009.92 – ident: 512_CR23 – ident: 512_CR29 doi: 10.1145/2635868.2635929 – ident: 512_CR21 – ident: 512_CR25 – volume: 14 start-page: 4 year: 1967 ident: 512_CR38 publication-title: J. ACM doi: 10.1145/321420.321422 – ident: 512_CR2 – ident: 512_CR13 doi: 10.1007/978-3-642-39799-8_67 – ident: 512_CR6 – volume: 2002 start-page: 123 year: 2002 ident: 512_CR18 publication-title: ISSTA doi: 10.1145/566172.566191 – ident: 512_CR27 – ident: 512_CR39 – ident: 512_CR40 |
SSID | ssj0017679 |
Score | 2.2214048 |
Snippet | Sketching is a synthesis approach that allows users to provide high-level insights into a synthesis problem and let synthesis tools complete low-level details.... |
SourceID | proquest crossref springer |
SourceType | Aggregation Database Enrichment Source Index Database Publisher |
StartPage | 249 |
SubjectTerms | Computer Science Data structures Domains Java Libraries Pruning Reflection Searching Sketches Software Engineering Software Engineering/Programming and Operating Systems Solvers Spin 2017 Synthesis Theory of Computation |
SummonAdditionalLinks | – databaseName: SpringerLINK - Czech Republic Consortium dbid: AGYKE link: http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlR1NT8Iw9EXh4kX8jCiaHbxpyba26-qNGJBg9KIkeFq6trtg0MAwxl_v69hAiZp4btd277vv9b0HcG4szVIlI2K5xAsKDTVBLZcRP9MW9QMi2jqH_t191B-ywYiPyqSwWfXavQpJFpL6S7Jb4ch3STdIScjHm1DnQSzjGtQ7N0-33WX0QERFjT00BSgJhZBlsszPq3xXSCsrcy0wWuibXgOG1UkXz0zG7XmetvXHWhHH__7KDmyXBqjXWVDMLmzYyR40quYOXsnr-0C65mHscHrl2XerC_okZuqEozcrBnBHD01eb6De1AEMe93H6z4peysQjUyXE8605VqI2KWSGiaY8q0VVDKDJoMxMlNGsMhwQxVikoV-pGkaG23STAbcKHoItcnLxB6BxxmzUhuUmhllymqllKBGGo4b-IEVTQgqACe6LDzu-l88J6uSyQ4eCcIjKeCRxE24WH7zuii78efsVoW3pGTBWYKiOJB4cCGbcFmhYTX8-2rH_5t-AlthgUnnmWlBLZ_O7SkaKnl6VtLlJyZ727Q priority: 102 providerName: Springer Nature |
Title | EdSketch: execution-driven sketching for Java |
URI | https://link.springer.com/article/10.1007/s10009-019-00512-8 https://www.proquest.com/docview/2191942079 |
Volume | 21 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwfV3NT8IwFG8ULl78NqJIdvCmjbB2K_ViwAwIRmJUEj0tpa-7aAABjX--r6Vj0UROPXTrkt_77Ht77xFyDoZlIyVjaiKJFxQWaopWLqP1TBu0D0hoYwP694O4N-T9l-jFB9zm_rfKXCc6RQ0TbWPkVyhZeN8O60LeTD-onRpls6t-hMYmKTfQ0lg-b3a6qyyCiF2vPXQJGA2FkL5oxpfOubSALeFBvkSt8NswFd7mnwSpszudXbLtHcagtaTwHtkw432ykw9jCLxsHhCawNObpcF1YL6NdvxEYWaVWTB3G3h8gC5q0Fdf6pAMO8nzbY_6WQhUo5AsaMS1ibQQTVv6CVxwVTdGMMkBTTyAzBQIHkMETCHyiFOs2agJGkaZbESg2BEpjSdjc0yCiHMjNaCWyxhXRiulBAMJEX6g3jCiQho5EKn2jcLtvIr3tGhxbMFLEbzUgZc2K-Ri9c502SZj7dPVHN_Ui8w8LQhcIZc55sX2_6edrD_tlGyFjsw2clIlpcXs05yhI7EY1Ry31Ei51Wm3B3btvt4luLaTwcMj7g7D1g9AQ8dy |
linkProvider | ProQuest |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3JTsMwEB2VcoALO6JQIAc4gUUaO3GNhBBLq7JViEXiFlyPcwEVaMv2U3wj4zQhAglunJ2MlTerPZkZgDW0POloFTEbKjqg8MAw8nIJ8xNjyT8Qo6270D9rR61rcXwT3pTgI6-Fcb9V5jYxNdT4YNwd-RZpFp23A1-q3ccn5qZGuexqPkJjKBYn9v2Vjmz9naND4u96EDQbVwctlk0VYIbEbcBCYWxopKy7IkoUUmjfWsmVQHKWiCrRKEWEIXJN30A7RoZ36miwk6haiJoT3REYFa6itQyj-432-cVX3kJGaXc_CkI4C6RUWZlOVqyXJiJc0RBpAtmh766wiG9_pGRTT9ecgoksRPX2hjI1DSXbnYHJfPyDl1mDWWANvLxzXN_27Js1qQQz7Dnz6fXTBSLvUVDsHesXPQfX_4LTPJS7D127AF4ohFUGya4mXGhrtNaSo8KQNvBrVlaglgMRm6w1uZuQcR8XTZUdeDGBF6fgxfUKbHy98zhszPHn09Uc3zhT0n5ciFQFNnPMi-XfqS3-TW0VxlpXZ6fx6VH7ZAnGg5Tl7t6mCuVB79kuUxgz6KxksuPB7X-L6ydtLwDx |
linkToPdf | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1ZT8MwDLY4JMQLN2KcfYAniLY1abMgIYSAwriEBJP2VrI4fQGNY-P6a_w6nKzdBBJ747mto9pffMSxDbCJlmctrWJmI0UBCg8NIyuXsUpmLNkHErR1B_qXV_FpQ5w1o-YIfBW1MO5aZaETvaLGR-POyMu0syjeDitSlbP8WsT1UbL_9MzcBCmXaS3GafQgcm4_3yl86-zVj0jWW2GYHN8enrJ8wgAzBL0ui4SxkZGy5goqUUihK9ZKrgSS4URUmUYpYoyQa_ofWj02vFVDg61MVSPUnOiOwrjkUrnAr5ac9DMYMvZ9_sgd4SyUUuUFO3nZnk9JuPIh2hOkkX4axYGn-ys5621eMgNTubMaHPTQNQsjtj0H08UgiCDXC_PAjvHm3sl_N7Af1ngsM3xxijTo-AdEPiD3ODjTb3oBGv_CpUUYaz-27RIEkRBWGSQNm3GhrdFaS44KI1qgUrWyBNWCEanJm5S7WRkP6aC9smNeSsxLPfPSWgm2-9889Vp0DH17teBvmm_XTjoAVwl2Cp4PHv9NbXk4tQ2YIJCmF_Wr8xWYDL3E3QHOKox1X17tGvkz3da6B04Ad_-N1G_hGAPB |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=EdSketch%3A+execution-driven+sketching+for+Java&rft.jtitle=International+journal+on+software+tools+for+technology+transfer&rft.au=Hua%2C+Jinru&rft.au=Zhang%2C+Yushan&rft.au=Zhang%2C+Yuqun&rft.au=Khurshid%2C+Sarfraz&rft.date=2019-06-01&rft.pub=Springer+Nature+B.V&rft.issn=1433-2779&rft.eissn=1433-2787&rft.volume=21&rft.issue=3&rft.spage=249&rft.epage=265&rft_id=info:doi/10.1007%2Fs10009-019-00512-8&rft.externalDBID=HAS_PDF_LINK |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1433-2779&client=summon |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1433-2779&client=summon |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1433-2779&client=summon |