{"id":"https://openalex.org/W3184068421","doi":"https://doi.org/10.1142/s0218194021500327","title":"An Extensible Compiler for Implementing Software Design Patterns as Concise Language Constructs","display_name":"An Extensible Compiler for Implementing Software Design Patterns as Concise Language Constructs","publication_year":2021,"publication_date":"2021-07-01","ids":{"openalex":"https://openalex.org/W3184068421","doi":"https://doi.org/10.1142/s0218194021500327","mag":"3184068421"},"language":"en","primary_location":{"is_oa":false,"landing_page_url":"https://doi.org/10.1142/s0218194021500327","pdf_url":null,"source":{"id":"https://openalex.org/S131442419","display_name":"International Journal of Software Engineering and Knowledge Engineering","issn_l":"0218-1940","issn":["0218-1940","1793-6403"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319815","host_organization_name":"World Scientific","host_organization_lineage":["https://openalex.org/P4310319815"],"host_organization_lineage_names":["World Scientific"],"type":"journal"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false},"type":"article","type_crossref":"journal-article","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/A5054956944","display_name":"Taher Ahmed Ghaleb","orcid":"https://orcid.org/0000-0001-9336-7298"},"institutions":[{"id":"https://openalex.org/I204722609","display_name":"Queen's University","ror":"https://ror.org/02y72wh86","country_code":"CA","type":"education","lineage":["https://openalex.org/I204722609"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Taher Ahmed Ghaleb","raw_affiliation_strings":["School of Computing, Queen's University, Kingston, Canada"],"affiliations":[{"raw_affiliation_string":"School of Computing, Queen's University, Kingston, Canada","institution_ids":["https://openalex.org/I204722609"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5066275505","display_name":"Khalid Aljasser","orcid":null},"institutions":[{"id":"https://openalex.org/I134085113","display_name":"King Fahd University of Petroleum and Minerals","ror":"https://ror.org/03yez3163","country_code":"SA","type":"education","lineage":["https://openalex.org/I134085113"]}],"countries":["SA"],"is_corresponding":false,"raw_author_name":"Khalid Aljasser","raw_affiliation_strings":["Information and Computer Science Department, King Fahd University of Petroleum and Minerals, Dhahran 31261, Saudi Arabia"],"affiliations":[{"raw_affiliation_string":"Information and Computer Science Department, King Fahd University of Petroleum and Minerals, Dhahran 31261, Saudi Arabia","institution_ids":["https://openalex.org/I134085113"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5077191937","display_name":"Musab A. Alturki","orcid":"https://orcid.org/0000-0001-7957-1081"},"institutions":[{"id":"https://openalex.org/I4210161168","display_name":"Runtime Verification (United States)","ror":"https://ror.org/04gmecg65","country_code":"US","type":"company","lineage":["https://openalex.org/I4210161168"]},{"id":"https://openalex.org/I134085113","display_name":"King Fahd University of Petroleum and Minerals","ror":"https://ror.org/03yez3163","country_code":"SA","type":"education","lineage":["https://openalex.org/I134085113"]}],"countries":["SA","US"],"is_corresponding":false,"raw_author_name":"Musab A. Alturki","raw_affiliation_strings":["King Fahd University of Petroleum and Minerals, Dhahran 31261, Saudi Arabia","Runtime Verification Inc., Urbana IL 61801, USA"],"affiliations":[{"raw_affiliation_string":"Runtime Verification Inc., Urbana IL 61801, USA","institution_ids":["https://openalex.org/I4210161168"]},{"raw_affiliation_string":"King Fahd University of Petroleum and Minerals, Dhahran 31261, Saudi Arabia","institution_ids":["https://openalex.org/I134085113"]}]}],"institution_assertions":[],"countries_distinct_count":3,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.559,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.768257,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":67,"max":72},"biblio":{"volume":"31","issue":"07","first_page":"1043","last_page":"1067"},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997,"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.9997,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9984,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T12127","display_name":"Software System Performance and Reliability","score":0.9977,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/software-design-pattern","display_name":"Software design pattern","score":0.84457314},{"id":"https://openalex.org/keywords/structural-pattern","display_name":"Structural pattern","score":0.7451761},{"id":"https://openalex.org/keywords/design-pattern","display_name":"Design pattern","score":0.67568934}],"concepts":[{"id":"https://openalex.org/C146054899","wikidata":"https://www.wikidata.org/wiki/Q181156","display_name":"Software design pattern","level":3,"score":0.84457314},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8331901},{"id":"https://openalex.org/C164202143","wikidata":"https://www.wikidata.org/wiki/Q635280","display_name":"Structural pattern","level":5,"score":0.7451761},{"id":"https://openalex.org/C14501506","wikidata":"https://www.wikidata.org/wiki/Q5253831","display_name":"Design pattern","level":2,"score":0.67568934},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.59491533},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5480332},{"id":"https://openalex.org/C52913732","wikidata":"https://www.wikidata.org/wiki/Q857102","display_name":"Software design","level":4,"score":0.46784222},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.45229873},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.3327884},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.3181429}],"mesh":[],"locations_count":1,"locations":[{"is_oa":false,"landing_page_url":"https://doi.org/10.1142/s0218194021500327","pdf_url":null,"source":{"id":"https://openalex.org/S131442419","display_name":"International Journal of Software Engineering and Knowledge Engineering","issn_l":"0218-1940","issn":["0218-1940","1793-6403"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319815","host_organization_name":"World Scientific","host_organization_lineage":["https://openalex.org/P4310319815"],"host_organization_lineage_names":["World Scientific"],"type":"journal"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false}],"best_oa_location":null,"sustainable_development_goals":[],"grants":[],"datasets":[],"versions":[],"referenced_works_count":25,"referenced_works":["https://openalex.org/W1562942180","https://openalex.org/W1599469082","https://openalex.org/W1649645444","https://openalex.org/W1812582761","https://openalex.org/W1910673522","https://openalex.org/W1993242759","https://openalex.org/W2006938743","https://openalex.org/W2016967861","https://openalex.org/W2064121350","https://openalex.org/W2089367047","https://openalex.org/W2095927543","https://openalex.org/W2097964082","https://openalex.org/W2121984483","https://openalex.org/W2122568363","https://openalex.org/W2136033258","https://openalex.org/W2494770211","https://openalex.org/W2556034692","https://openalex.org/W2561527288","https://openalex.org/W27099710","https://openalex.org/W2793523475","https://openalex.org/W2794355565","https://openalex.org/W2806449260","https://openalex.org/W2942796967","https://openalex.org/W3019213264","https://openalex.org/W3115295924"],"related_works":["https://openalex.org/W91433896","https://openalex.org/W4232547548","https://openalex.org/W3147928400","https://openalex.org/W3123088576","https://openalex.org/W2989649103","https://openalex.org/W2350603686","https://openalex.org/W2348497170","https://openalex.org/W221126613","https://openalex.org/W2183981186","https://openalex.org/W2160323296"],"abstract_inverted_index":{"Design":[0,9],"patterns":[1,10,21,62,93,132,151,164,198],"are":[2],"generic":[3],"solutions":[4],"to":[5,24,38,56,74,87,125,142,148],"common":[6],"programming":[7,29],"problems.":[8],"represent":[11],"a":[12,122,200],"typical":[13],"example":[14],"of":[15,43,59,91,129,162,216],"design":[16,20,44,61,81,92,115,131,150,163,176,190,197,208,217],"reuse.":[17],"However,":[18],"implementing":[19,196],"can":[22,193],"lead":[23],"several":[25,36],"problems,":[26],"such":[27],"as":[28,133],"overhead":[30],"and":[31,53,76,181,203,213],"traceability.":[32],"Existing":[33],"research":[34],"introduced":[35],"approaches":[37,48,67,84,98],"alleviate":[39],"the":[40,69,105,127,160],"implementation":[41,51,83,101,128],"issues":[42],"patterns.":[45,116,218],"Nevertheless,":[46],"existing":[47,80],"pose":[49],"different":[50,166],"restrictions":[52,108],"require":[54,99],"programmers":[55,86],"be":[57,64],"aware":[58],"how":[60,188],"should":[63],"implemented.":[65],"Such":[66,107],"make":[68],"source":[70],"code":[71,102],"more":[72],"prone":[73],"faults":[75],"defects.":[77],"In":[78,117,155],"addition,":[79,156],"pattern":[82,191,209],"limit":[85],"apply":[88,149],"specific":[89],"scenarios":[90],"(e.g.":[94],"class-level),":[95],"while":[96],"other":[97],"scattering":[100],"snippets":[103],"throughout":[104],"program.":[106],"negatively":[109],"impact":[110],"understanding,":[111],"tracing,":[112],"or":[113],"reusing":[114],"this":[118],"paper,":[119],"we":[120],"propose":[121],"novel":[123],"approach":[124,139,158,171],"support":[126],"software":[130],"an":[134],"extensible":[135],"Java":[136],"compiler.":[137],"Our":[138],"allows":[140,159],"developers":[141],"use":[143],"concise,":[144],"easy-to-use":[145],"language":[146],"constructs":[147,192,210],"in":[152,165,199],"their":[153],"code.":[154],"our":[157,170,189,207],"application":[161],"scenarios.":[167],"We":[168,183],"illustrate":[169],"using":[172],"three":[173],"commonly":[174],"used":[175],"patterns,":[177],"namely":[178],"Singleton,":[179],"Observer":[180],"Decorator.":[182],"show,":[184],"through":[185],"illustrative":[186],"examples,":[187],"significantly":[194],"simplify":[195],"flexible,":[201],"reusable":[202],"traceable":[204],"manner.":[205],"Moreover,":[206],"allow":[211],"class-level":[212],"instance-level":[214],"implementations":[215]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W3184068421","counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1}],"updated_date":"2025-01-05T12:34:19.095197","created_date":"2021-08-02"}