{"id":"https://openalex.org/W76723318","doi":null,"title":"GJ: Extending the Java programming language with type parameters","display_name":"GJ: Extending the Java programming language with type parameters","publication_year":1999,"publication_date":"1999-01-01","ids":{"openalex":"https://openalex.org/W76723318","mag":"76723318"},"language":"en","primary_location":{"id":"pmh:oai:CiteSeerX.psu:10.1.1.19.5977","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.5977","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.research.avayalabs.com/user/wadler/topics/../papers/gj-tutorial/gj-tutorial-a4.ps.gz","raw_type":"text"},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"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/A5031071954","display_name":"Gilad Bracha","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Gilad Bracha","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5048418481","display_name":"David Stoutamire","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"David Stoutamire","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.5517,"has_fulltext":false,"cited_by_count":7,"citation_normalized_percentile":{"value":0.84265051,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":1.0,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":1.0,"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/T10260","display_name":"Software Engineering Research","score":0.0,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.0,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/java-generics","display_name":"Java generics","score":0.652999997138977},{"id":"https://openalex.org/keywords/type-parameters","display_name":"type parameters","score":0.9679999947547913},{"id":"https://openalex.org/keywords/type-variables","display_name":"type variables","score":0.5109999775886536},{"id":"https://openalex.org/keywords/parametric-polymorphism","display_name":"parametric polymorphism","score":0.8069999814033508},{"id":"https://openalex.org/keywords/bridge-method","display_name":"bridge method","score":0.777999997138977},{"id":"https://openalex.org/keywords/typecasting","display_name":"type casting","score":0.4099999964237213},{"id":"https://openalex.org/keywords/collections","display_name":"collections","score":0.5389999747276306},{"id":"https://openalex.org/keywords/binary-compatibility","display_name":"binary compatibility","score":0.4359999895095825},{"id":"https://openalex.org/keywords/java-virtual-machine","display_name":"Java Virtual Machine","score":0.6859999895095825}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8233189582824707},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8069978952407837},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.7612765431404114},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.715404748916626},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.6833807229995728},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.5613890290260315},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.5552300810813904},{"id":"https://openalex.org/C174954855","wikidata":"https://www.wikidata.org/wiki/Q7623626","display_name":"strictfp","level":4,"score":0.5099483728408813},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.4448195993900299}],"mesh":[],"locations_count":4,"locations":[{"id":"pmh:oai:CiteSeerX.psu:10.1.1.19.5977","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.5977","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.research.avayalabs.com/user/wadler/topics/../papers/gj-tutorial/gj-tutorial-a4.ps.gz","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.22.302","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.302","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cis.unisa.edu.au/~pizza/gj/Documents/gj-tutorial-a4.ps","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.40.8613","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.8613","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cse.ogi.edu/cse509/papers/gj-tutorial.pdf","raw_type":"text"},{"id":"mag:76723318","doi":null,"is_oa":false,"landing_page_url":"http://homepages.inf.ed.ac.uk/wadler/gj/Documents/gj-tutorial.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":5,"referenced_works":["https://openalex.org/W1499113706","https://openalex.org/W1564310313","https://openalex.org/W2117534212","https://openalex.org/W2133546079","https://openalex.org/W2783482882"],"related_works":["https://openalex.org/W7057963571","https://openalex.org/W2126571933","https://openalex.org/W7098378807","https://openalex.org/W7095745145","https://openalex.org/W7098495920","https://openalex.org/W7095278262","https://openalex.org/W7101174531","https://openalex.org/W7097089709","https://openalex.org/W1956307306","https://openalex.org/W7100898439"],"abstract_inverted_index":{"Say":[0],"you":[1,33,55,65,73,81,88,232],"wish":[2],"to":[3,34,50,58,92,116,158],"process":[4],"collections.":[5],"Some":[6],"may":[7,43,294],"be":[8,295],"collections":[9,13,19,21],"of":[10,14,20,22,38,61,69,77,113,188,302,320],"bytes,":[11,78],"others":[12,18],"strings,":[15],"and":[16,79,141,144,183,216,317],"yet":[17],"strings.":[23],"The":[24,186,200,225,239],"Java":[25,106,160,175,197,252,309,322],"programming":[26,161,198],"language":[27,53,162],"supports":[28,164],"such":[29],"variation":[30],"by":[31,192,208,275],"allowing":[32],"form":[35],"a":[36,75,193,269],"collection":[37,76,87,114],"Object,":[39],"so":[40,220,243],"the":[41,52,62,70,86,105,111,159,173,196,256,276,287,321],"elements":[42],"have":[44,74,179],"any":[45],"reference":[46],"type.":[47],"In":[48],"order":[49],"keep":[51,67],"simple,":[54],"are":[56,258,324],"forced":[57],"do":[59],"some":[60],"work":[63,249],"yourself:":[64],"must":[66,89],"track":[68],"fact":[71],"that":[72,163,221,244],"when":[80,255],"extract":[82],"an":[83,156,290],"element":[84],"from":[85],"cast":[90,273],"it":[91,129,136,146],"class":[93,263],"Byte":[94],"before":[95],"further":[96],"processing.":[97],"This":[98,152],"situation":[99],"is":[100,130,137,147,190,228,241,284],"becoming":[101],"more":[102,180],"common":[103],"as":[104],"platform":[107,323],"evolves,":[108],"notably":[109],"with":[110,132,139,149,166,250,268],"addition":[112],"classes":[115],"JDK":[117],"1.2.":[118],"Other":[119],"languages":[120],"provide":[121],"additional":[122],"support":[123],"for":[124,300],"this":[125,282,327],"situation:":[126],"in":[127,134,142,261,297,332],"C++,":[128],"supported":[131,138,148],"templates;":[133],"Ada,":[135],"generics;":[140],"ML":[143],"Haskell,":[145],"parametric":[150],"polymorphism.":[151],"note":[153],"proposes":[154],"GJ,":[155],"extension":[157],"types":[165],"parameters.":[167],"GJ":[168,189,246,266,306],"programs":[169],"look":[170],"much":[171,230],"like":[172],"equivalent":[174],"programs,":[176],"except":[177],"they":[178],"type":[181,203,206,211],"information":[182],"fewer":[184],"casts.":[185],"semantics":[187],"given":[191],"translation":[194,201,240],"into":[195,308],"language.":[199],"erases":[202],"parameters,":[204],"replaces":[205],"variables":[207],"their":[209],"bounding":[210],"(typically":[212],"Object),":[213],"adds":[214],"casts,":[215],"inserts":[217],"bridge":[218],"methods":[219],"overriding":[222],"works":[223],"properly.":[224],"resulting":[226],"program":[227],"pretty":[229],"what":[231],"would":[233],"write":[234],"if":[235,286],"generics":[236],"weren\u2019t":[237],"available.":[238],"designed":[242],"new":[245],"code":[247],"will":[248,278],"existing":[251],"libraries,":[253],"even":[254,331],"libraries":[257],"available":[259],"only":[260],"binary":[262],"file":[264],"form.":[265],"comes":[267],"cast-iron":[270],"guarantee:":[271],"no":[272],"inserted":[274],"compiler":[277,288],"ever":[279],"fail.":[280],"(Caveat:":[281],"guarantee":[283,329],"void":[285],"generates":[289],"unchecked":[291],"warning,":[292],"which":[293],"necessary":[296],"certain":[298],"cases":[299],"purposes":[301],"compatibility.)":[303],"Furthermore,":[304],"since":[305],"translates":[307],"virtual":[310],"machine":[311],"(JVM)":[312],"byte":[313],"codes,":[314],"all":[315],"safety":[316],"security":[318],"properties":[319],"preserved.":[325],"(Reassurance:":[326],"second":[328],"holds":[330]},"counts_by_year":[],"updated_date":"2026-08-26T07:47:46.906454","created_date":"2016-06-24T00:00:00"}
