{"id":"https://openalex.org/W2112138644","doi":"https://doi.org/10.1145/1146841.1146846","title":"Compile-time meta-programming in a dynamically typed OO language","display_name":"Compile-time meta-programming in a dynamically typed OO language","publication_year":2005,"publication_date":"2005-01-01","ids":{"openalex":"https://openalex.org/W2112138644","doi":"https://doi.org/10.1145/1146841.1146846","mag":"2112138644"},"language":"en","primary_location":{"id":"doi:10.1145/1146841.1146846","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1146841.1146846","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2005 conference on Dynamic languages symposium  - DLS '05","raw_type":"proceedings-article"},"type":"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/A5005368647","display_name":"Laurence Tratt","orcid":"https://orcid.org/0000-0002-5258-3805"},"institutions":[{"id":"https://openalex.org/I183935753","display_name":"King's College London","ror":"https://ror.org/0220mzb33","country_code":"GB","type":"education","lineage":["https://openalex.org/I124357947","https://openalex.org/I183935753"]},{"id":"https://openalex.org/I4210119896","display_name":"King's College School","ror":"https://ror.org/02bbqcn27","country_code":"GB","type":"education","lineage":["https://openalex.org/I4210119896"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Laurence Tratt","raw_affiliation_strings":["King's College London, Strand, London, U.K"],"affiliations":[{"raw_affiliation_string":"King's College London, Strand, London, U.K","institution_ids":["https://openalex.org/I183935753","https://openalex.org/I4210119896"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5005368647"],"corresponding_institution_ids":["https://openalex.org/I183935753","https://openalex.org/I4210119896"],"apc_list":null,"apc_paid":null,"fwci":1.8283,"has_fulltext":false,"cited_by_count":33,"citation_normalized_percentile":{"value":0.87845014,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"49","last_page":"63"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9997000098228455,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9997000098228455,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9965000152587891,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9950000047683716,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.8675085306167603},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8661913275718689},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.8497081995010376},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8309932351112366},{"id":"https://openalex.org/keywords/lisp","display_name":"Lisp","score":0.7726350426673889},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7138907313346863},{"id":"https://openalex.org/keywords/metaprogramming","display_name":"Metaprogramming","score":0.5753690004348755},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5354881882667542},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.47021225094795227},{"id":"https://openalex.org/keywords/second-generation-programming-language","display_name":"Second-generation programming language","score":0.41731345653533936},{"id":"https://openalex.org/keywords/fifth-generation-programming-language","display_name":"Fifth-generation programming language","score":0.4164067804813385}],"concepts":[{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.8675085306167603},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8661913275718689},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8497081995010376},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8309932351112366},{"id":"https://openalex.org/C190883126","wikidata":"https://www.wikidata.org/wiki/Q132874","display_name":"Lisp","level":2,"score":0.7726350426673889},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7138907313346863},{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.5753690004348755},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5354881882667542},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.47021225094795227},{"id":"https://openalex.org/C11164408","wikidata":"https://www.wikidata.org/wiki/Q18657800","display_name":"Second-generation programming language","level":4,"score":0.41731345653533936},{"id":"https://openalex.org/C199305712","wikidata":"https://www.wikidata.org/wiki/Q3205914","display_name":"Fifth-generation programming language","level":3,"score":0.4164067804813385}],"mesh":[],"locations_count":5,"locations":[{"id":"doi:10.1145/1146841.1146846","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1146841.1146846","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2005 conference on Dynamic languages symposium  - DLS '05","raw_type":"proceedings-article"},{"id":"pmh:oai:eprints.mdx.ac.uk:5919","is_oa":false,"landing_page_url":null,"pdf_url":null,"source":{"id":"https://openalex.org/S4306400025","display_name":"Middlesex University Research Repository (Middlesex University Of London)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I60488453","host_organization_name":"Middlesex University","host_organization_lineage":["https://openalex.org/I60488453"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":"","raw_type":"Book Section"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.102.5546","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.5546","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.tratt.net/laurie/research/publications/papers/tratt__compile-time_meta-programming_in_a_dynamically_typed_oo_language.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.59.8423","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.8423","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://tratt.net/laurie/research/publications/papers/tratt__compile-time_meta-programming_in_a_dynamically_typed_oo_language.pdf","raw_type":"text"},{"id":"pmh:oai:kclpure.kcl.ac.uk:publications/5fef0ee1-486c-44c3-90dc-6b05c635d07c","is_oa":false,"landing_page_url":"https://kclpure.kcl.ac.uk/portal/en/publications/5fef0ee1-486c-44c3-90dc-6b05c635d07c","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Tratt , L 2005 , Compiletime metaprogramming in a dynamically typed OO language . in DLS 2005 - Symposium Proceedings: Dynamic Languages Symposium 2005 . pp. 49-63 , 1st Dynamic Languages Symposium, DLS 2005 , San Diego , United States , 18/10/2005 . https://doi.org/10.1145/1146841.1146846","raw_type":"contributionToPeriodical"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":36,"referenced_works":["https://openalex.org/W94820440","https://openalex.org/W1498739950","https://openalex.org/W1527793496","https://openalex.org/W1532750793","https://openalex.org/W1544633123","https://openalex.org/W1567927032","https://openalex.org/W1587194799","https://openalex.org/W1783388813","https://openalex.org/W1944501883","https://openalex.org/W1963538417","https://openalex.org/W2009775190","https://openalex.org/W2012301138","https://openalex.org/W2029786195","https://openalex.org/W2036134187","https://openalex.org/W2041042116","https://openalex.org/W2047058869","https://openalex.org/W2050613794","https://openalex.org/W2065428406","https://openalex.org/W2066583243","https://openalex.org/W2067004633","https://openalex.org/W2080725101","https://openalex.org/W2080878462","https://openalex.org/W2108945841","https://openalex.org/W2110001365","https://openalex.org/W2126549362","https://openalex.org/W2129364310","https://openalex.org/W2133675710","https://openalex.org/W2134762177","https://openalex.org/W2152608870","https://openalex.org/W2159400269","https://openalex.org/W2161550557","https://openalex.org/W2168775768","https://openalex.org/W2171433297","https://openalex.org/W2176580510","https://openalex.org/W3012857658","https://openalex.org/W3145454088"],"related_works":["https://openalex.org/W1757338326","https://openalex.org/W2129129872","https://openalex.org/W4246781209","https://openalex.org/W2088006200","https://openalex.org/W4205481509","https://openalex.org/W2521268368","https://openalex.org/W4244888611","https://openalex.org/W2041555632","https://openalex.org/W1521556077","https://openalex.org/W2112138644"],"abstract_inverted_index":{"Compile-time":[0],"meta-programming":[1,59,73,98],"allows":[2,57],"programs":[3],"to":[4,82,112],"be":[5,123],"constructed":[6],"by":[7,88],"the":[8,36,49,61,83,89,113],"user":[9],"at":[10],"compile-time.":[11],"Although":[12],"LISP":[13],"derived":[14],"languages":[15,23],"have":[16],"long":[17],"had":[18],"such":[19,119],"facilities,":[20,99],"few":[21,80],"modern":[22],"are":[24,39],"capable":[25],"of":[26,30,35,63,101],"compile-time":[27,58,72,97],"meta-programming,":[28],"and":[29],"those":[31],"that":[32,68],"do":[33],"many":[34],"most":[37],"powerful":[38],"statically":[40],"typed":[41,51],"functional":[42],"languages.":[43,127],"In":[44,91],"this":[45,92],"paper":[46,93],"I":[47,94,116],"present":[48],"dynamically":[50],"object":[52],"orientated":[53],"language":[54,78],"Converge":[55,66],"which":[56,102],"in":[60],"spirit":[62],"Template":[64,106],"Haskell.":[65],"demonstrates":[67],"integrating":[69],"powerful,":[70],"safe":[71],"features":[74,110],"into":[75,125],"a":[76,120],"dynamic":[77],"requires":[79],"restrictions":[81],"flexible":[84],"development":[85],"style":[86],"facilitated":[87],"paradigm.":[90,114],"detail":[95],"Converge's":[96],"much":[100],"is":[103],"adapted":[104],"from":[105],"Haskell,":[107],"contain":[108],"several":[109],"new":[111],"Finally":[115],"explain":[117],"how":[118],"facility":[121],"might":[122],"integrated":[124],"similar":[126]},"counts_by_year":[{"year":2020,"cited_by_count":2},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":5},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":7},{"year":2012,"cited_by_count":2}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
