{"id":"https://openalex.org/W2795753518","doi":"https://doi.org/10.1109/saner.2018.8330219","title":"Syntax and sensibility: Using language models to detect and correct syntax errors","display_name":"Syntax and sensibility: Using language models to detect and correct syntax errors","publication_year":2018,"publication_date":"2018-03-01","ids":{"openalex":"https://openalex.org/W2795753518","doi":"https://doi.org/10.1109/saner.2018.8330219","mag":"2795753518"},"language":"en","primary_location":{"id":"doi:10.1109/saner.2018.8330219","is_oa":false,"landing_page_url":"https://doi.org/10.1109/saner.2018.8330219","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5048601698","display_name":"Eddie Antonio Santos","orcid":"https://orcid.org/0000-0001-5337-715X"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Eddie Antonio Santos","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5079340620","display_name":"Joshua Charles Campbell","orcid":null},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Joshua Charles Campbell","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5063522527","display_name":"Dhvani Patel","orcid":null},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Dhvani Patel","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5070785370","display_name":"Abram Hindle","orcid":"https://orcid.org/0000-0002-4373-4958"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Abram Hindle","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5048554669","display_name":"Jos\u00e9 Nelson Amaral","orcid":"https://orcid.org/0000-0002-9943-1809"},"institutions":[{"id":"https://openalex.org/I154425047","display_name":"University of Alberta","ror":"https://ror.org/0160cpw27","country_code":"CA","type":"education","lineage":["https://openalex.org/I154425047"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Jose Nelson Amaral","raw_affiliation_strings":["Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada","institution_ids":["https://openalex.org/I154425047"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I154425047"],"apc_list":null,"apc_paid":null,"fwci":8.5088,"has_fulltext":false,"cited_by_count":86,"citation_normalized_percentile":{"value":0.98225998,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":97,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"311","last_page":"322"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10533","display_name":"Teaching and Learning Programming","score":0.9948999881744385,"subfield":{"id":"https://openalex.org/subfields/1706","display_name":"Computer Science Applications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.899454653263092},{"id":"https://openalex.org/keywords/syntax-error","display_name":"Syntax error","score":0.8731237053871155},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.8208831548690796},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6400421857833862},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.5694224834442139},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.5455044507980347},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5354303121566772},{"id":"https://openalex.org/keywords/abstract-syntax","display_name":"Abstract syntax","score":0.5284751653671265},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.515915036201477},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.48425814509391785},{"id":"https://openalex.org/keywords/language-model","display_name":"Language model","score":0.4784398376941681},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.47163769602775574},{"id":"https://openalex.org/keywords/security-token","display_name":"Security token","score":0.4535958170890808},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4133298397064209}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.899454653263092},{"id":"https://openalex.org/C11742125","wikidata":"https://www.wikidata.org/wiki/Q1195374","display_name":"Syntax error","level":4,"score":0.8731237053871155},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.8208831548690796},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6400421857833862},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.5694224834442139},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.5455044507980347},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5354303121566772},{"id":"https://openalex.org/C114408938","wikidata":"https://www.wikidata.org/wiki/Q333373","display_name":"Abstract syntax","level":3,"score":0.5284751653671265},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.515915036201477},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.48425814509391785},{"id":"https://openalex.org/C137293760","wikidata":"https://www.wikidata.org/wiki/Q3621696","display_name":"Language model","level":2,"score":0.4784398376941681},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.47163769602775574},{"id":"https://openalex.org/C48145219","wikidata":"https://www.wikidata.org/wiki/Q1335365","display_name":"Security token","level":2,"score":0.4535958170890808},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4133298397064209},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1109/saner.2018.8330219","is_oa":false,"landing_page_url":"https://doi.org/10.1109/saner.2018.8330219","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.8399999737739563,"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[{"id":"https://openalex.org/F4320309480","display_name":"Nvidia","ror":"https://ror.org/03jdj4y14"},{"id":"https://openalex.org/F4320322675","display_name":"Mitacs","ror":"https://ror.org/00cjrc276"},{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":58,"referenced_works":["https://openalex.org/W1522301498","https://openalex.org/W1530314747","https://openalex.org/W1563966208","https://openalex.org/W1574901103","https://openalex.org/W1644882639","https://openalex.org/W1647671624","https://openalex.org/W1922655562","https://openalex.org/W1971916043","https://openalex.org/W1972386298","https://openalex.org/W1979507906","https://openalex.org/W1989479444","https://openalex.org/W2009908982","https://openalex.org/W2013831574","https://openalex.org/W2018389835","https://openalex.org/W2036955327","https://openalex.org/W2049216468","https://openalex.org/W2050968492","https://openalex.org/W2057833160","https://openalex.org/W2060384944","https://openalex.org/W2071213761","https://openalex.org/W2072750798","https://openalex.org/W2081868109","https://openalex.org/W2085971503","https://openalex.org/W2117370600","https://openalex.org/W2117968587","https://openalex.org/W2123633968","https://openalex.org/W2125900270","https://openalex.org/W2126460775","https://openalex.org/W2143417137","https://openalex.org/W2143861926","https://openalex.org/W2154464718","https://openalex.org/W2165747537","https://openalex.org/W2193413348","https://openalex.org/W2281618752","https://openalex.org/W2308618763","https://openalex.org/W2384495648","https://openalex.org/W2405351955","https://openalex.org/W2497764072","https://openalex.org/W2531756803","https://openalex.org/W2605202003","https://openalex.org/W2740130862","https://openalex.org/W2906926620","https://openalex.org/W2950862646","https://openalex.org/W2963074569","https://openalex.org/W2963235525","https://openalex.org/W2964121744","https://openalex.org/W3002225268","https://openalex.org/W3020721369","https://openalex.org/W4232691406","https://openalex.org/W4245415816","https://openalex.org/W4248027902","https://openalex.org/W4294560978","https://openalex.org/W6631632864","https://openalex.org/W6633981719","https://openalex.org/W6636915900","https://openalex.org/W6678136986","https://openalex.org/W6736413285","https://openalex.org/W6758076146"],"related_works":["https://openalex.org/W1625533892","https://openalex.org/W2077104824","https://openalex.org/W2613250302","https://openalex.org/W1988370859","https://openalex.org/W2005927140","https://openalex.org/W2390632043","https://openalex.org/W2070761870","https://openalex.org/W203914360","https://openalex.org/W2536864162","https://openalex.org/W2387926336"],"abstract_inverted_index":{"Syntax":[0],"errors":[1,36,50,70],"are":[2,29,89,100,166],"made":[3],"by":[4,71,91],"novice":[5,11],"and":[6,37,52,111,196,200],"experienced":[7],"programmers":[8,12],"alike;":[9],"however,":[10],"lack":[13],"the":[14,57,63,93,104,142,148,152,179,183,188],"years":[15],"of":[16,30,86,127,160,209],"experience":[17],"that":[18,46,60,83,141,182,193],"help":[19],"them":[20],"quickly":[21],"resolve":[22,187],"these":[23],"frustrating":[24],"errors.":[25,205,226],"Standard":[26],"LR":[27],"parsers":[28],"little":[31],"help,":[32],"typically":[33],"resolving":[34],"syntax":[35,49,69,204,225],"their":[38],"precise":[39],"location":[40],"poorly.":[41],"We":[42,108,155],"propose":[43],"a":[44,124,158,170],"methodology":[45,67,137,197,207],"locates":[47],"where":[48],"occur,":[51],"suggests":[53],"possible":[54],"changes":[55],"to":[56,80,96,168,186,212,220],"token":[58],"stream":[59],"can":[61,198],"fix":[62,172,181],"error":[64,106],"identified.":[65],"This":[66],"finds":[68],"using":[72],"language":[73,94,116],"models":[74,95,117],"trained":[75,122],"on":[76,123],"correct":[77],"source":[78,144],"code":[79,129,145],"find":[81,169],"tokens":[82,99],"seem":[84],"out":[85],"place.":[87],"Fixes":[88],"synthesized":[90],"consulting":[92],"determine":[97],"what":[98],"more":[101],"likely":[102],"at":[103],"estimated":[105],"location.":[107],"compare":[109],"n-gram":[110],"LSTM":[112],"(long":[113],"short-term":[114],"memory)":[115],"for":[118,203],"this":[119,194],"task,":[120],"each":[121],"large":[125],"corpus":[126],"Java":[128],"collected":[130],"from":[131,147],"GitHub.":[132],"Unlike":[133],"prior":[134],"work,":[135],"our":[136],"does":[138],"not":[139],"rely":[140],"problem":[143],"comes":[146],"same":[149],"domain":[150],"as":[151],"training":[153],"data.":[154],"evaluated":[156],"against":[157],"repository":[159],"real":[161],"student":[162,184],"mistakes.":[163],"Our":[164,206],"tools":[165],"able":[167],"syntactically-valid":[171],"within":[173],"its":[174],"top-2":[175],"suggestions,":[176],"often":[177],"producing":[178],"exact":[180],"used":[185],"error.":[189],"The":[190],"results":[191],"show":[192],"tool":[195],"locate":[199],"suggest":[201],"corrections":[202],"is":[208],"practical":[210],"use":[211],"all":[213],"programmers,":[214],"but":[215],"will":[216],"be":[217],"especially":[218],"useful":[219],"novices":[221],"frustrated":[222],"with":[223],"incomprehensible":[224]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":10},{"year":2023,"cited_by_count":14},{"year":2022,"cited_by_count":14},{"year":2021,"cited_by_count":13},{"year":2020,"cited_by_count":12},{"year":2019,"cited_by_count":12},{"year":2018,"cited_by_count":4}],"updated_date":"2026-07-29T14:22:42.915294","created_date":"2025-10-10T00:00:00"}
