Reasonably-Most-General Clients for JavaScript Library Analysis
A well-known approach to statically analyze libraries without having access to their client code is to model all possible clients abstractly using a most-general client. In dynamic languages, however, a most-general client would be too general: it may interact with the library in ways that are not i...
Uloženo v:
| Vydáno v: | Proceedings / International Conference on Software Engineering s. 83 - 93 |
|---|---|
| Hlavní autoři: | , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
IEEE
01.05.2019
|
| Témata: | |
| ISSN: | 1558-1225 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | A well-known approach to statically analyze libraries without having access to their client code is to model all possible clients abstractly using a most-general client. In dynamic languages, however, a most-general client would be too general: it may interact with the library in ways that are not intended by the library developer and are not realistic in actual clients, resulting in useless analysis results. In this work, we explore the concept of a reasonably-most-general client, in the context of a new static analysis tool REAGENT that aims to detect errors in TypeScript declaration files for JavaScript libraries. By incorporating different variations of reasonably-most-general clients into an existing static analyzer for JavaScript, we use REAGENT to study how different assumptions of client behavior affect the analysis results. We also show how REAGENT is able to find type errors in real-world TypeScript declaration files, and, once the errors have been corrected, to guarantee that no remaining errors exist relative to the selected assumptions. |
|---|---|
| AbstractList | A well-known approach to statically analyze libraries without having access to their client code is to model all possible clients abstractly using a most-general client. In dynamic languages, however, a most-general client would be too general: it may interact with the library in ways that are not intended by the library developer and are not realistic in actual clients, resulting in useless analysis results. In this work, we explore the concept of a reasonably-most-general client, in the context of a new static analysis tool REAGENT that aims to detect errors in TypeScript declaration files for JavaScript libraries. By incorporating different variations of reasonably-most-general clients into an existing static analyzer for JavaScript, we use REAGENT to study how different assumptions of client behavior affect the analysis results. We also show how REAGENT is able to find type errors in real-world TypeScript declaration files, and, once the errors have been corrected, to guarantee that no remaining errors exist relative to the selected assumptions. |
| Author | Moller, Anders Kristensen, Erik Krogh |
| Author_xml | – sequence: 1 givenname: Erik Krogh surname: Kristensen fullname: Kristensen, Erik Krogh organization: Aarhus University – sequence: 2 givenname: Anders surname: Moller fullname: Moller, Anders organization: Aarhus University |
| BookMark | eNotjk1Lw0AUAFdRsK09e_CSP5D43ibZj5OUUGslIlg9l5fkLazETckGIf_egp7mMgyzFFdhCCzEHUKGCPZhXx22mQS0GQBIdSHWVhvU0iAYZc2lWGBZmhSlLG_EMsavs6YKaxfi8Z0pDoGafk5fhzilOw48Up9UvecwxcQNY_JCP3RoR3-akto3I41zsgnUz9HHW3HtqI-8_udKfD5tP6rntH7b7atNnZI0Zko7KIuiA8uqdMigtCsbq2XDutPUcevIKa0bKDrCIs9b2xoNpBGdtAaaLl-J-7-uZ-bjafTf54ujMSgRdP4L9q9KuA |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IH CBEJK RIE RIO |
| DOI | 10.1109/ICSE.2019.00026 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Xplore IEEE Proceedings Order Plans (POP) 1998-present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9781728108698 1728108691 |
| EISSN | 1558-1225 |
| EndPage | 93 |
| ExternalDocumentID | 8812107 |
| Genre | orig-research |
| GroupedDBID | -~X .4S .DC 123 23M 29O 5VS 6IE 6IF 6IH 6IK 6IL 6IM 6IN 8US AAJGR AAWTH ABLEC ADZIZ AFFNX ALMA_UNASSIGNED_HOLDINGS APO ARCSS AVWKF BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO EDO FEDTE I-F I07 IEGSK IJVOP IPLJI M43 OCL RIE RIL RIO RNS XOL |
| ID | FETCH-LOGICAL-a288t-d0544d09e65f1e067f5b972be7d7adecfaf677b04da1433c9c870a711f2980bd3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 13 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000560373200008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 02:46:33 EDT 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a288t-d0544d09e65f1e067f5b972be7d7adecfaf677b04da1433c9c870a711f2980bd3 |
| OpenAccessLink | https://pure.au.dk/portal/en/publications/6cfdaeb2-114c-47a8-9865-2a0394c49e88 |
| PageCount | 11 |
| ParticipantIDs | ieee_primary_8812107 |
| PublicationCentury | 2000 |
| PublicationDate | 2019-May |
| PublicationDateYYYYMMDD | 2019-05-01 |
| PublicationDate_xml | – month: 05 year: 2019 text: 2019-May |
| PublicationDecade | 2010 |
| PublicationTitle | Proceedings / International Conference on Software Engineering |
| PublicationTitleAbbrev | ICSE |
| PublicationYear | 2019 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| SSID | ssj0006499 |
| Score | 2.168394 |
| Snippet | A well-known approach to statically analyze libraries without having access to their client code is to model all possible clients abstractly using a... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 83 |
| SubjectTerms | Analytical models Contracts Libraries most general client program analysis Semantics Static analysis Testing TypeScript |
| Title | Reasonably-Most-General Clients for JavaScript Library Analysis |
| URI | https://ieeexplore.ieee.org/document/8812107 |
| WOSCitedRecordID | wos000560373200008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NSwMxEB1q8eCpait-k4NHY3e32U1y8lBaVLQUq9BbyccEhNJKuy34703SbfXgxVtYAoEJM-_t7rw3ADfacg-y_k2VFShpgFyqGM9oagrhZJ6blEeh8DMfDMR4LIc1uN1pYRAxNp_hXVjGf_l2blbhU1lbiGB3xfdgj_Nio9XaVd3CU_fKuidNZPuxO-qFxq3gRhmdE37NTonQ0W_879BDaP1o8Mhwhy5HUMPZMTS2QxhIlZNNuH9FFei0nn7Rl_mypJWRNOlOg9RxSTwrJU9qrUaxPpBKqEC2biQteO_33roPtJqKQFUmREmtJ1nMJhKL3KXowcblWvJMI7dcWTROuYJznTCrPBfqGGl8Siqepi6TItG2cwL12XyGp0B8gmDGrd-fJcwFK68M_U4rEqc7jLkzaIZ4TD43xheTKhTnfz--gIMQ8E034CXUy8UKr2DfrMuP5eI63tY3WIaV8Q |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NTwIxEJ0gmugJFYzf9uDRym7pbtuTB4IBBUIEE26ku50mJgQMLCT-e9tlQQ9evDWbJk2mmXlvd-e9AbhPjHAg695UeYyKesilmgtGwzSWVkVRGopcKNwV_b4cj9WgBA87LQwi5s1n-OiX-b98M09X_lNZXUpvdyX2YD_inAUbtdau7saOvBfmPWGg6p3msOVbt7wfZe6d8Gt6Sg4ez5X_HXsMtR8VHhns8OUESjg7hcp2DAMpsrIKT2-oPaFOpl-0N19mtLCSJs2pFzsuieOl5EWv9TCvEKSQKpCtH0kN3p9bo2abFnMRqGZSZtQ4msVNoDCObIgObmyUKMESFEZog6nVNhYiCbjRjg01UpW6pNQiDC1TMkhM4wzKs_kMz4G4FEEmjNvPAm69mRdDt9PIwCYNzu0FVH08Jp8b64tJEYrLvx_fwWF71OtOup3-6xUc-eBvegOvoZwtVngDB-k6-1gubvOb-wZVEpk4 |
| 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%3Abook&rft.genre=proceeding&rft.title=Proceedings+%2F+International+Conference+on+Software+Engineering&rft.atitle=Reasonably-Most-General+Clients+for+JavaScript+Library+Analysis&rft.au=Kristensen%2C+Erik+Krogh&rft.au=Moller%2C+Anders&rft.date=2019-05-01&rft.pub=IEEE&rft.eissn=1558-1225&rft.spage=83&rft.epage=93&rft_id=info:doi/10.1109%2FICSE.2019.00026&rft.externalDocID=8812107 |