WYSIWIB: exploiting fine-grained program structure in a scriptable API-usage protocol-finding process

SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing c...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Software, practice & experience Ročník 43; číslo 1; s. 67 - 92
Hlavní autoři: Lawall, Julia L., Brunel, Julien, Palix, Nicolas, Hansen, René Rydhof, Stuart, Henrik, Muller, Gilles
Médium: Journal Article
Jazyk:angličtina
Vydáno: Chichester, UK John Wiley & Sons, Ltd 01.01.2013
Wiley Subscription Services, Inc
Wiley
Témata:
ISSN:0038-0644, 1097-024X
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 SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd.
AbstractList SUMMARY Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd. [PUBLICATION ABSTRACT]
SUMMARY Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright [copy 2012 John Wiley & Sons, Ltd.
Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd.
Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions.
SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible specifications, strategies for inferring specifications have been proposed. These strategies obtain probable specifications by observing common characteristics of code or execution traces, typically focusing on sequences of function calls. To counter the observed high rate of false positives, heuristics have been proposed for ranking or pruning the results. These heuristics, however, can result in false negatives, especially for rarely used functions. In this paper, we propose an alternate approach to specification inference, in which the user guides the inference process using patterns of code that reflect the user's understanding of the conventions and design of the targeted software project. We focus on specifications describing the correct usage of API functions, which we refer to as API protocols. Our approach builds on the Coccinelle program matching and transformation tool, which allows a user to construct patterns that reflect the structure of the code to be matched. We evaluate our approach on the source code of the Linux kernel, which defines a very large number of API functions with varying properties. Linux is also critical software, implying that fixing even bugs involving rarely used protocols is essential. In our experiments, we use our approach to find over 3000 potential API protocols, with an estimated false positive rate of under 15% and use these protocols to find over 360 bugs in the use of API functions. Copyright © 2012 John Wiley & Sons, Ltd.
Author Palix, Nicolas
Brunel, Julien
Muller, Gilles
Lawall, Julia L.
Hansen, René Rydhof
Stuart, Henrik
Author_xml – sequence: 1
  givenname: Julia L.
  surname: Lawall
  fullname: Lawall, Julia L.
  email: julia@diku.dk, Julia L. Lawall, DIKU, University of Copenhagen, Copenhagen, Denmark., julia@diku.dk
  organization: DIKU, University of Copenhagen, Copenhagen, Denmark
– sequence: 2
  givenname: Julien
  surname: Brunel
  fullname: Brunel, Julien
  organization: DIKU, University of Copenhagen, Copenhagen, Denmark
– sequence: 3
  givenname: Nicolas
  surname: Palix
  fullname: Palix, Nicolas
  organization: DIKU, University of Copenhagen, Copenhagen, Denmark
– sequence: 4
  givenname: René Rydhof
  surname: Hansen
  fullname: Hansen, René Rydhof
  organization: Aalborg University, Aalborg, Denmark
– sequence: 5
  givenname: Henrik
  surname: Stuart
  fullname: Stuart, Henrik
  organization: DIKU, University of Copenhagen, Copenhagen, Denmark
– sequence: 6
  givenname: Gilles
  surname: Muller
  fullname: Muller, Gilles
  organization: INRIA/LIP6, Paris, France
BackLink https://hal.science/hal-00940320$$DView record in HAL
BookMark eNp10VFv0zAQAGALDYluIPETIvECDylnx4lj3so01ooKKgYqPFmOcy0eaRxsB7Z_j6PCEAhefNbp8-nOd0pOetcjIY8pzCkAex4GnDMK7B6ZUZAiB8Y_npAZQFHnUHH-gJyGcA1AacmqGcHtp6vVdvXyRYY3Q-dstP0-29ke873XKbTZ4F26HrIQ_Wji6DGzfaazYLwdom46zBabVT4GvcfJRmdcl6cK7VQpJQyG8JDc3-ku4KOf8Yx8eHXx_nyZr99ers4X69wUsmZ5K0otRSVRcCl2tS6xEuloRGtMxY2odCNLU-tW04ZSxlpoGAcjKTYllEYXZ-TZse5n3anB24P2t8ppq5aLtZpyAJJDweAbTfbp0aYev44YojrYYLDrdI9uDIpWgnLOpawTffIXvXaj79MkirJClnVVM5bU_KiMdyF43Cljo47W9TF9ZacoqGlDKm1ITRv63cHdg18t_4PmR_rddnj7X6euNhd_ehsi3tx57b-oShSiVNs3l0rUm_LdkhXqdfEDdTuvlw
CitedBy_id crossref_primary_10_1145_2619090
Cites_doi 10.1109/DSN.2009.5270354
10.1145/1950365.1950401
10.1007/978-3-540-31980-1_30
10.1109/MS.2008.130
10.1145/1352592.1352618
10.1007/978-3-642-00768-2_26
10.1145/1217935.1217943
10.1145/1480881.1480897
ContentType Journal Article
Copyright Copyright © 2012 John Wiley & Sons, Ltd.
licence_http://creativecommons.org/publicdomain/zero
Copyright_xml – notice: Copyright © 2012 John Wiley & Sons, Ltd.
– notice: licence_http://creativecommons.org/publicdomain/zero
DBID BSCLL
AAYXX
CITATION
7SC
8FD
F28
FR3
JQ2
L7M
L~C
L~D
1XC
DOI 10.1002/spe.2102
DatabaseName Istex
CrossRef
Computer and Information Systems Abstracts
Technology Research Database
ANTE: Abstracts in New Technology & Engineering
Engineering Research Database
ProQuest Computer Science Collection
Advanced Technologies Database with Aerospace
Computer and Information Systems Abstracts – Academic
Computer and Information Systems Abstracts Professional
Hyper Article en Ligne (HAL)
DatabaseTitle CrossRef
Technology Research Database
Computer and Information Systems Abstracts – Academic
ProQuest Computer Science Collection
Computer and Information Systems Abstracts
Engineering Research Database
Advanced Technologies Database with Aerospace
ANTE: Abstracts in New Technology & Engineering
Computer and Information Systems Abstracts Professional
DatabaseTitleList Technology Research Database
Technology Research Database
CrossRef


DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 1097-024X
EndPage 92
ExternalDocumentID oai:HAL:hal-00940320v1
2844391661
10_1002_spe_2102
SPE2102
ark_67375_WNG_78P5RH23_K
Genre article
GroupedDBID -~X
.3N
.4S
.DC
.GA
.Y3
05W
0R~
10A
123
1L6
1OB
1OC
31~
33P
3EH
3R3
3SF
3WU
4.4
4ZD
50Y
50Z
51W
51X
52M
52N
52O
52P
52S
52T
52U
52W
52X
5VS
66C
702
7PT
8-0
8-1
8-3
8-4
8-5
85S
8UM
8WZ
930
9M8
A03
A6W
AAESR
AAEVG
AAHQN
AAMMB
AAMNL
AANHP
AANLZ
AAONW
AASGY
AAXRX
AAYCA
AAZKR
ABCQN
ABCUV
ABDPE
ABEFU
ABEML
ABIJN
ABLJU
ACAHQ
ACBWZ
ACCZN
ACFBH
ACGFS
ACIWK
ACNCT
ACPOU
ACRPL
ACSCC
ACXBN
ACXQS
ACYXJ
ADBBV
ADEOM
ADIZJ
ADKYN
ADMGS
ADMLS
ADMXK
ADNMO
ADOZA
ADXAS
ADZMN
AEFGJ
AEIGN
AEIMD
AENEX
AEUYR
AEYWJ
AFBPY
AFFPM
AFGKR
AFWVQ
AFZJQ
AGHNM
AGQPQ
AGXDD
AGYGG
AHBTC
AIDQK
AIDYY
AIQQE
AITYG
AIURR
AJXKR
ALAGY
ALMA_UNASSIGNED_HOLDINGS
ALUQN
ALVPJ
AMBMR
AMYDB
ARCSS
ASPBG
ATUGU
AUFTA
AVWKF
AZBYB
AZFZN
AZVAB
BAFTC
BDRZF
BFHJK
BHBCM
BMNLL
BNHUX
BROTX
BRXPI
BSCLL
BY8
CS3
CWDTD
D-E
D-F
D0L
DCZOG
DPXWK
DR2
DRFUL
DRSTM
DU5
EBS
EJD
F00
F01
F04
FEDTE
G-S
G.N
GNP
GODZA
H.T
H.X
HBH
HF~
HGLYW
HHY
HVGLF
HZ~
IX1
J0M
JPC
KQQ
LATKE
LAW
LC2
LC3
LEEKS
LH4
LITHE
LOXES
LP6
LP7
LUTES
LW6
LYRES
M61
MEWTI
MK4
MRFUL
MRSTM
MSFUL
MSSTM
MXFUL
MXSTM
N04
N05
N9A
NF~
NNB
O66
O9-
OIG
P2P
P2W
P2X
P4D
PALCI
PQQKQ
PZZ
Q.N
Q11
QB0
QRW
R.K
RIWAO
RJQFR
ROL
RX1
RXW
RYL
S10
SAMSI
SUPJJ
TAE
TUS
TWZ
UB1
V2E
W8V
W99
WBKPD
WH7
WIB
WIH
WIK
WOHZO
WQJ
WXSBR
WYISQ
WZISG
XG1
XPP
XV2
YYP
ZCA
ZY4
ZZTAW
~02
~IA
~WT
AAHHS
ABTAH
ACCFJ
AEEZP
AEQDE
AEUQT
AFPWT
AIWBW
AJBDE
RWI
WRC
WWW
AAYXX
ABUFD
CITATION
O8X
7SC
8FD
F28
FR3
JQ2
L7M
L~C
L~D
1XC
ID FETCH-LOGICAL-c3982-d75a9769e7497f8a5e67a5eb7dcc64c76ab95c8ada1b1122d0b240c91eb505ca3
IEDL.DBID DRFUL
ISICitedReferencesCount 8
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000312653300003&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0038-0644
IngestDate Sat Nov 22 06:21:18 EST 2025
Wed Oct 01 14:25:25 EDT 2025
Fri Jul 25 12:17:43 EDT 2025
Sat Nov 29 04:02:35 EST 2025
Tue Nov 18 22:43:27 EST 2025
Wed Jan 22 16:41:04 EST 2025
Sun Sep 21 06:17:56 EDT 2025
IsPeerReviewed true
IsScholarly true
Issue 1
Keywords Linux
bug finding
program analysis
Language English
License http://onlinelibrary.wiley.com/termsAndConditions#vor
licence_http://creativecommons.org/publicdomain/zero/: http://creativecommons.org/publicdomain/zero
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c3982-d75a9769e7497f8a5e67a5eb7dcc64c76ab95c8ada1b1122d0b240c91eb505ca3
Notes This is an extended version of the article 'WYSIWIB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code' that was presented at the 2009 IEEE/IFIP International Conference on Dependable Systems and Networks.
ArticleID:SPE2102
istex:3147194B8E9F5B02960E7325CCF445DD58EF24CB
ark:/67375/WNG-78P5RH23-K
This is an extended version of the article ‘WYSIWIB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code’ that was presented at the 2009 IEEE/IFIP International Conference on Dependable Systems and Networks.
Julien Brunel's current address: ONERA, Toulouse, France
ObjectType-Article-1
SourceType-Scholarly Journals-1
content type line 14
ObjectType-Feature-2
content type line 23
ORCID 0000-0002-1684-1264
0000-0001-8873-281X
PQID 1239586822
PQPubID 1046349
PageCount 26
ParticipantIDs hal_primary_oai_HAL_hal_00940320v1
proquest_miscellaneous_1671444998
proquest_journals_1239586822
crossref_citationtrail_10_1002_spe_2102
crossref_primary_10_1002_spe_2102
wiley_primary_10_1002_spe_2102_SPE2102
istex_primary_ark_67375_WNG_78P5RH23_K
PublicationCentury 2000
PublicationDate 2013-01
January 2013
2013-01-00
20130101
PublicationDateYYYYMMDD 2013-01-01
PublicationDate_xml – month: 01
  year: 2013
  text: 2013-01
PublicationDecade 2010
PublicationPlace Chichester, UK
PublicationPlace_xml – name: Chichester, UK
– name: Bognor Regis
PublicationSubtitle Practice & Experience
PublicationTitle Software, practice & experience
PublicationTitleAlternate Softw. Pract. Exper
PublicationYear 2013
Publisher John Wiley & Sons, Ltd
Wiley Subscription Services, Inc
Wiley
Publisher_xml – name: John Wiley & Sons, Ltd
– name: Wiley Subscription Services, Inc
– name: Wiley
References Ayewah N, Hovemeyer D, Morgenthaler JD, Penix J, Pugh W. Using static analysis to find bugs. IEEE Software 2008; 25(5):22-29.
MacKenzie D, Eggert P, Stallman R. Comparing and Merging Files with GNU Diff and Patch. Network Theory Ltd. UK, Jan. 2003. Unified Format section, (Available from: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html).
2008; 25
2009
2008
2007
2006
2005
2003
2001
2000
2011
2010
Kremenek T (e_1_2_13_7_1) 2006
Ball T (e_1_2_13_3_1) 2006
e_1_2_13_15_1
MacKenzie D (e_1_2_13_13_1) 2003
e_1_2_13_16_1
e_1_2_13_11_1
e_1_2_13_22_1
e_1_2_13_9_1
Engler DR (e_1_2_13_5_1) 2000
e_1_2_13_8_1
Ramanathan MK (e_1_2_13_17_1) 2007
Lo D (e_1_2_13_12_1) 2008
Tan L (e_1_2_13_20_1) 2007
Olesen MC (e_1_2_13_14_1) 2010
Stuart H (e_1_2_13_19_1) 2007
Brunel J (e_1_2_13_4_1) 2009
Yang J (e_1_2_13_23_1) 2006
e_1_2_13_2_1
Tan L (e_1_2_13_21_1) 2008
Engler DR (e_1_2_13_6_1) 2001
Li Z (e_1_2_13_10_1) 2005
e_1_2_13_18_1
References_xml – reference: Ayewah N, Hovemeyer D, Morgenthaler JD, Penix J, Pugh W. Using static analysis to find bugs. IEEE Software 2008; 25(5):22-29.
– reference: MacKenzie D, Eggert P, Stallman R. Comparing and Merging Files with GNU Diff and Patch. Network Theory Ltd. UK, Jan. 2003. Unified Format section, (Available from: http://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html).
– start-page: 292
  year: 2009
  end-page: 306
– start-page: 240
  year: 2007
  end-page: 250
– start-page: 50
  year: 2008
  end-page: 56
– start-page: 379
  year: 2008
  end-page: 394
– start-page: 114
  year: 2009
  end-page: 126
– year: 2008
– year: 2007
– year: 2003
– start-page: 305
  year: 2011
  end-page: 318
– start-page: 247
  year: 2008
  end-page: 260
– start-page: 43
  year: 2009
  end-page: 52
– start-page: 145
  year: 2007
  end-page: 158
– start-page: 461
  year: 2005
  end-page: 476
– start-page: 73
  year: 2006
  end-page: 85
– start-page: 306
  year: 2005
  end-page: 315
– start-page: 57
  year: 2001
  end-page: 72
– start-page: 282
  year: 2006
  end-page: 291
– start-page: 1
  year: 2000
  end-page: 16
– volume: 25
  start-page: 22
  issue: 5
  year: 2008
  end-page: 29
  article-title: Using static analysis to find bugs
  publication-title: IEEE Software
– start-page: 161
  year: 2006
  end-page: 176
– year: 2010
– ident: e_1_2_13_8_1
  doi: 10.1109/DSN.2009.5270354
– start-page: 240
  volume-title: 29th International Conference on Software Engineering
  year: 2007
  ident: e_1_2_13_17_1
– volume-title: 4th Workshop on Programming Languages and Operating Systems (PLOS 2007)
  year: 2007
  ident: e_1_2_13_19_1
– start-page: 282
  volume-title: 28th International Conference on Software Engineering (ICSE)
  year: 2006
  ident: e_1_2_13_23_1
– start-page: 57
  volume-title: Proceedings of the 18th ACM Symposium on Operating System Principles
  year: 2001
  ident: e_1_2_13_6_1
– ident: e_1_2_13_16_1
  doi: 10.1145/1950365.1950401
– start-page: 50
  volume-title: International Workshop on Dynamic Analysis
  year: 2008
  ident: e_1_2_13_12_1
– start-page: 1
  volume-title: Fourth USENIX Symposium on Operating Systems Design and Implementation (OSDI)
  year: 2000
  ident: e_1_2_13_5_1
– ident: e_1_2_13_22_1
  doi: 10.1007/978-3-540-31980-1_30
– ident: e_1_2_13_11_1
– start-page: 145
  volume-title: Proceedings of the 21st ACM Symposium on Operating System Principles
  year: 2007
  ident: e_1_2_13_20_1
– ident: e_1_2_13_2_1
  doi: 10.1109/MS.2008.130
– ident: e_1_2_13_18_1
– start-page: 161
  volume-title: OSDI
  year: 2006
  ident: e_1_2_13_7_1
– volume-title: 4th International Workshop on Foundations and Techniques for Open Source Software Certification
  year: 2010
  ident: e_1_2_13_14_1
– ident: e_1_2_13_15_1
  doi: 10.1145/1352592.1352618
– start-page: 306
  volume-title: Proceedings of the 10th European Software Engineering Conference held jointly with the 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering
  year: 2005
  ident: e_1_2_13_10_1
– ident: e_1_2_13_9_1
  doi: 10.1007/978-3-642-00768-2_26
– start-page: 73
  volume-title: The first ACM SIGOPS EuroSys conference (EuroSys 2006)
  year: 2006
  ident: e_1_2_13_3_1
  doi: 10.1145/1217935.1217943
– volume-title: Comparing and Merging Files with GNU Diff and Patch
  year: 2003
  ident: e_1_2_13_13_1
– start-page: 379
  volume-title: USENIX Security Symposium
  year: 2008
  ident: e_1_2_13_21_1
– start-page: 114
  volume-title: The 36th Annual ACM SIGPLAN‐SIGACT Symposium on Principles of Programming Languages
  year: 2009
  ident: e_1_2_13_4_1
  doi: 10.1145/1480881.1480897
SSID ssj0011526
Score 2.0412414
Snippet SUMMARY Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all...
Bug‐finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible...
SUMMARY Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all...
Bug-finding tools rely on specifications of what is correct or incorrect code. As it is difficult for a tool developer or user to anticipate all possible...
SourceID hal
proquest
crossref
wiley
istex
SourceType Open Access Repository
Aggregation Database
Enrichment Source
Index Database
Publisher
StartPage 67
SubjectTerms API
bug finding
Computer programs
Computer Science
Construction equipment
Heuristic
Inference
Linux
Operating Systems
program analysis
Software
Software Engineering
Specifications
Strategy
Title WYSIWIB: exploiting fine-grained program structure in a scriptable API-usage protocol-finding process
URI https://api.istex.fr/ark:/67375/WNG-78P5RH23-K/fulltext.pdf
https://onlinelibrary.wiley.com/doi/abs/10.1002%2Fspe.2102
https://www.proquest.com/docview/1239586822
https://www.proquest.com/docview/1671444998
https://hal.science/hal-00940320
Volume 43
WOSCitedRecordID wos000312653300003&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
journalDatabaseRights – providerCode: PRVWIB
  databaseName: Wiley Online Library Full Collection 2020
  customDbUrl:
  eissn: 1097-024X
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0011526
  issn: 0038-0644
  databaseCode: DRFUL
  dateStart: 19960101
  isFulltext: true
  titleUrlDefault: https://onlinelibrary.wiley.com
  providerName: Wiley-Blackwell
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1Lb9swDCbaZIdd2u6Fpi9ow7CdvMaOZVm7pY8swYIgaFekOwmSLG9BCydImmLH_YT9xv6Skn6tBTZgwC42YNOWIJLmJ4v6CPBWCtMOrUg9gbHDC6Mo8LTgvucbqzGgO-5MXrVkKEaj-PJSjsusStoLU_BD1D_cyDPy7zU5uDbLw9-kocu5-0DzlXVoBmi2YQOaJ2e9i2G9hoCRKSpIGWMPA29YUc-2g8Pq2UfBaP07pUI2aXR_PMKbD1FrHnZ6m__T4S3YKMEm6xbW8QzWXPYcNqtCDqz06xdwNfl6PpgMjj4yRyl5U0qFZik2ePfz1zeqIeESViZysYJwdrVwbJoxzYqvDu2_Yt3xAOVXlKlG0jcztDG8kK-K4_vmxZaEl3DRO_1y3PfKKgye7UiE34ngGjGLdCKUIo01d5HAgxGJtRGqOdJGchvrRPsGwVuQtA2iBCt91HKbW915BY1slrltYIidEp4KFHNpqLWUaZKKVHdwiu4cl6YF7yt1KFtSlFOljGtVkCsHCsdQ0Ri24HUtOS9oOf4g8wY1Wt8mHu1-d6joGuVTUuX4W78F73KF12J6cUW5boKryeiTEvGYn_WDjvrcgr3KIlTp5kuFYV_yOEKQhR2qb6OD0qqLztxshTKRwEkrTixjbCu3j7_2WJ2PT-m886-Cu_A0yMtz0C-hPWigBbh9eGJvb6bLxUHpEPdQpBFc
linkProvider Wiley-Blackwell
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1fb9MwED9tLRK8MAZMKwwwCMFTWJPGcbw9lW1dq4Wq2h91PFmO40A1lFbtOvG4j7DPuE-yu_yDSSAh8ZJIySWxfHe5n-3z7wDeSxG3fSNSR2DscPwg8BwtuOu4sdEY0C23cV61JBLDYXh-LkcrsFvthSn4IeoJN_KM_H9NDk4T0tu_WEMXM_uJBiyr0PTRingDmvvHvbOoXkTA0BQUrIyhg5HXr7hn29529ey9aLT6nXIhm9S9P-8Bzt9hax53emv_1eIn8LiEm6xb2Mc6rNjsKaxVpRxY6dnP4GL89WQwHnzeYZaS8iaUDM1S_OLt9c03qiJhE1amcrGCcnY5t2ySMc2K_w7twGLd0QDll5SrRtKXU7QyvJCvi-P7ZsWmhOdw1js43es7ZR0Gx3QkAvBEcI2oRVrhS5GGmttA4CEWiTEBKjrQseQm1Il2Y4RvXtKOEScY6aKe29zozgY0smlmN4Ehekp4KlDMpr7WUqZJKlLdwUG6tVzGLfhY6UOZkqScamX8UAW9sqewDxX1YQve1pKzgpjjDzLvUKX1bWLS7ncjRdcoo5Jqx1-5LfiQa7wW0_MLynYTXI2Hh0qEI37c9zrqqAVblUmo0tEXCgO_5GGAMAsbVN9GF6V1F53Z6RJlAoHDVhxahvit3ED-2mJ1Mjqg84t_FXwDD_unXyIVDYZHL-GRlxfroAmiLWigNdhX8MBcXU4W89eld9wBmZ8VTA
linkToPdf http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1fb9MwED9tK0K8MP5NFAYYhOApW5PGcQxPha20WlVFG1O3J8tx7K0aSqt2nfa4j8Bn5JNwl38wCSQkXhIpucSW7y73c3z-HcBbKdJOaITzBMYOL4yiwNOC-56fGo0B3XKbFlVLRmI8jk9OZLIGH-u9MCU_RPPDjTyj-F6Tg9t55nZ_sYYu53aHJizr0Aq5jNArW3uH_eNRs4iAoSkqWRljDyNvWHPPdoLd-tlb0Wj9nHIhWzS817cA5--wtYg7_c3_6vEDuF_BTdYr7eMhrNn8EWzWpRxY5dmP4WJyejScDD99YJaS8qaUDM0ctvjj5vsZVZGwGatSuVhJObtaWDbNmWbld4d2YLFeMkT5FeWqkfTlDK0MLxTr4vi-ebkp4Qkc9_e_fh54VR0Gz3QlAvBMcI2oRVoRSuFizW0k8JCKzJgIFR3pVHIT60z7KcK3IOukiBOM9FHPHW50dws28llunwJD9JRxJ1DMulBrKV3mhNNdnKRby2Xahve1PpSpSMqpVsY3VdIrBwrHUNEYtuF1IzkviTn-IPMGVdrcJibtQW-k6BplVFLt-Cu_De8KjTdienFB2W6Cq8n4ixJxwg8HQVcdtGG7NglVOfpSYeCXPI4QZmGHmtvoorTuonM7W6FMJHDailPLGNsqDOSvPVZHyT6dn_2r4Cu4m-z11Wg4PngO94KiVgf9H9qGDTQG-wLumKvL6XLxsnKOnwdxFMc
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=WYSIWIB%3A+exploiting+fine-grained+program+structure+in+a+scriptable+API-usage+protocol-finding+process&rft.jtitle=Software%2C+practice+%26+experience&rft.au=Lawall%2C+Julia+L&rft.au=Brunel%2C+Julien&rft.au=Palix%2C+Nicolas&rft.au=Hansen%2C+Ren%C3%A9+Rydhof&rft.date=2013-01-01&rft.pub=Wiley+Subscription+Services%2C+Inc&rft.issn=0038-0644&rft.eissn=1097-024X&rft.volume=43&rft.issue=1&rft.spage=67&rft_id=info:doi/10.1002%2Fspe.2102&rft.externalDBID=NO_FULL_TEXT&rft.externalDocID=2844391661
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0038-0644&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0038-0644&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0038-0644&client=summon