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...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings / International Conference on Software Engineering pp. 83 - 93
Main Authors: Kristensen, Erik Krogh, Moller, Anders
Format: Conference Proceeding
Language:English
Published: IEEE 01.05.2019
Subjects:
ISSN:1558-1225
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
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 Electronic Library (IEL)
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.1682901
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/eLvHCXMwlV1LTwIxEJ4A8eAJFYzv9ODRynbZ7ePkgUDUREJEE26kj2liQsDAQuK_t10W9ODFW9NLk2lm5pt2vm8AbpUViMxwiom1NMsTpCrUIZRhyozSIjdMl8MmxHAoJxM1qsHdnguDiGXzGd7HZfmX7xZ2HZ_KOlJGuStRh7oQfMvV2kddHqB7Jd3DEtV56o37sXErqlGWygm_ZqeUqWPQ_N-hR9D-4eCR0T67HEMN5yfQ3A1hIJVPtuDhFXWE02b2RV8Wq4JWQtKkN4tUxxUJqJQ8640el_GBVEQFslMjacP7oP_We6TVVASqUykL6gLIylyikOeeYUg2PjdKpAaFE9qh9dpzIUySOR2wUNcqG1xSC8Z8qmRiXPcUGvPFHM-AeC5zhwrzUHRk2krNPHa50z7V0hidnkMr2mP6uRW-mFamuPh7-xIOo8G33YBX0CiWa7yGA7spPlbLm_K2vgGSDpgD
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NTwIxEJ0gmugJFYzf9uDRynbZ3bYnDwQDCoQIJtxIP2YTEwIGFhL_ve2yoAcv3ppemkwzM2_aeW8A7qXhiEwnFANjaBQHSKWrQyjDkGmpeKyZyodN8H5fjMdyUIKHHRcGEfPmM3z0y_wv387Nyj-V1YXwcld8D_bjKAqDDVtrF3cTB94L8R4WyHqnOWz51i2vR5lrJ_yanpInj-fK_449htoPC48MdvnlBEo4O4XKdgwDKbyyCk9vqDyg1tMv2psvM1pISZPm1JMdl8ThUvKi1mqYRwhSUBXIVo-kBu_PrVGzTYu5CFSFQmTUOpgV2UBiEqcMXbpJYy15qJFbriyaVKUJ5zqIrHJoqGGkcU6pOGNpKEWgbeMMyrP5DM-BpImILUqMXdkRKSMUS7GRWJWGSmitwguoentMPjfSF5PCFJd_b9_BYXvU6066nf7rFRx54296A6-hnC1WeAMHZp19LBe3-c19A6kom0o
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