@Preamble{"\input bibnames.sty " #
"\input path.sty " #
"\ifx \undefined \booktitle \def \booktitle #1{{{\em #1}}} \fi" #
"\ifx \undefined \circled \def \circled #1{(#1)} \fi" #
"\ifx \undefined \Dbar \def \Dbar {\leavevmode\raise0.2ex\hbox{--}\kern-0.5emD} \fi" #
"\ifx \undefined \k \let \k = \c \fi" #
"\ifx \undefined \pkg \def \pkg #1{{{\tt #1}}} \fi" #
"\ifx \undefined \reg \def \reg {\circled{R}} \fi" #
"\ifx \undefined \TM \def \TM {${}^{\sc TM}$} \fi" #
"\hyphenation{
Aero-space
Gur-e-wich
Horst-mann
ROAST-ER
Rich-ard
Sep-tem-ber
data-bases
roast-er
}"
}
@String{ack-nhfb = "Nelson H. F. Beebe,
University of Utah,
Department of Mathematics, 110 LCB,
155 S 1400 E RM 233,
Salt Lake City, UT 84112-0090, USA,
Tel: +1 801 581 5254,
FAX: +1 801 581 4148,
e-mail: \path|beebe@math.utah.edu|,
\path|beebe@acm.org|,
\path|beebe@computer.org| (Internet),
URL: \path|http://www.math.utah.edu/~beebe/|"}
@String{inst-CSC = "Center for Scientific Computing, Department
of Mathematics, University of Utah"}
@String{inst-CSC:adr = "Salt Lake City, UT 84112, USA"}
@String{j-ACM-COMM-COMP-ALGEBRA = "ACM Communications in Computer Algebra"}
@String{j-ADA-USER-J = "Ada User Journal"}
@String{j-ADV-ENG-SOFTWARE = "Advances in Engineering Software"}
@String{j-ADV-EXP-MED-BIO = "Advances in experimental medicine and
biology"}
@String{j-ADV-IMAGING = "Advanced Imaging"}
@String{j-AMER-STAT = "The American Statistician"}
@String{j-APL-QUOTE-QUAD = "APL Quote Quad"}
@String{j-APPL-MATH-COMP = "Applied Mathematics and Computation"}
@String{j-BIOINFORMATICS = "Bioinformatics"}
@String{j-BUSINESS-WEEK = "Business week"}
@String{j-CACM = "Communications of the ACM"}
@String{j-CCCUJ = "C/C++ Users Journal"}
@String{j-CCPE = "Concurrency and Computation: Prac\-tice and
Experience"}
@String{j-CHEMO-INTELL-LAB = "Chemometrics and Intelligent Laboratory
Systems"}
@String{j-COMP-ARCH-NEWS = "ACM SIGARCH Computer Architecture News"}
@String{j-COMP-CIVIL-ENG = "Journal of Computing in Civil Engineering"}
@String{j-COMP-EDU-J = "Computers in education journal"}
@String{j-COMP-GEOSCI = "Computers and Geosciences"}
@String{j-COMP-J = "The Computer Journal"}
@String{j-COMP-LANGS = "Computer Languages"}
@String{j-COMP-LANGS-SYS-STRUCT = "Computer Languages, Systems and Structures"}
@String{j-COMP-MATH-APPL = "Computers and Mathematics with
Applications"}
@String{j-COMP-NET-AMSTERDAM = "Computer Networks (Amsterdam, Netherlands:
1999)"}
@String{j-COMP-PHYS-COMM = "Computer Physics Communications"}
@String{j-COMP-STANDARDS-INTERFACES = "Computer Standards and Interfaces"}
@String{j-COMP-STAT = "Computational Statistics"}
@String{j-COMP-STRUCTURES = "Computers and Structures"}
@String{j-COMP-SURV = "ACM Computing Surveys"}
@String{j-COMPUT-APPL-ENG-EDUC = "Computer Applications in Engineering
Education"}
@String{j-COMPUT-MATH-APPL = "Computers and Mathematics with Applications"}
@String{j-COMPUT-BULL = "The Computer Bulletin"}
@String{j-COMPUT-HUM-BEHAV = "Computers in Human Behavior"}
@String{j-COMPUT-METH-PROG-BIOMED = "Computer Methods and Programs in
Biomedicine"}
@String{j-COMPUT-SCI-ENG = "Computing in Science and Engineering"}
@String{j-COMPUT-SECUR = "Computers and Security"}
@String{j-COMPUTER = "Computer"}
@String{j-COMPUTERS-AND-GRAPHICS = "Computers and Graphics"}
@String{j-COMPUTING = "Computing"}
@String{j-CONTROL-ENG = "Control Engineering"}
@String{j-CPE = "Concurrency: Prac\-tice and Experience"}
@String{j-DDJ = "Dr. Dobb's Journal of Software Tools"}
@String{j-EDN = "EDN"}
@String{j-ELECT-NOTES-THEOR-COMP-SCI = "Electronic Notes in Theoretical
Computer Science"}
@String{j-ELECTRONIC-DESIGN = "Electronic Design"}
@String{j-ELECTRONIC-ENG-TIMES = "Electronic Engineering Times"}
@String{j-ELECTRONIC-LIBRARY = "Electronic Library"}
@String{j-ELECTRONIK = "Elektronik"}
@String{j-ELETTRONICA-OGGI = "Elettronica Oggi"}
@String{j-EMBED-SYS-PROG = "Embedded Systems Programming"}
@String{j-EMBEDDED-LINUX-J = "Embedded Linux Journal"}
@String{j-EMPIR-SOFTWARE-ENG = "Empirical Software Engineering"}
@String{j-FORM-METHODS-SYST-DES = "Formal Methods in System Design"}
@String{j-FORM-ASP-COMPUT = "Formal Aspects of Computing"}
@String{j-FRONTIERS-EDU-CONF = "Frontiers in Education Conference"}
@String{j-FUND-INFO = "Fundamenta Informaticae"}
@String{j-FUT-GEN-COMP-SYS = "Future Generation Computer Systems"}
@String{j-FUTURE-INTERNET = "Future Internet"}
@String{j-HIGHER-ORDER-SYMB-COMPUT = "Higher-Order and Symbolic Computation"}
@String{j-IBM-JRD = "IBM Journal of Research and Development"}
@String{j-IBM-SYS-J = "IBM Systems Journal"}
@String{j-IEE-PROC-COMPUT-DIGIT-TECH = "IEE Proceedings. Computers and Digital
Techniques"}
@String{j-IEEE-CGA = "IEEE Computer Graphics and Applications"}
@String{j-IEEE-COMPUT-ARCHIT-LETT = "IEEE Computer Architecture Letters"}
@String{j-IEEE-CONCURR = "IEEE Concurrency"}
@String{j-IEEE-DISTRIB-SYST-ONLINE = "IEEE Distributed Systems Online"}
@String{j-IEEE-MICRO = "IEEE Micro"}
@String{j-IEEE-MULTIMEDIA = "IEEE MultiMedia"}
@String{j-IEEE-SEC-PRIV = "IEEE Security \& Privacy"}
@String{j-IEEE-SIGNAL-PROCESS-MAG = "IEEE signal processing magazine"}
@String{j-IEEE-SOFTWARE = "IEEE Software"}
@String{j-IEEE-SPECTRUM = "IEEE Spectrum"}
@String{j-IEEE-TRANS-BIG-DATA = "IEEE Transactions on Big Data"}
@String{j-IEEE-TRANS-CONSUMER-ELECTRONICS = "IEEE Transactions on Consumer
Electronics"}
@String{j-IEEE-TRANS-COMPUT = "IEEE Transactions on Computers"}
@String{j-IEEE-TRANS-EDUC = "IEEE transactions on education"}
@String{j-IEEE-TRANS-PAR-DIST-SYS = "IEEE Transactions on Parallel and
Distributed Systems"}
@String{j-IEEE-TRANS-SOFTW-ENG = "IEEE Transactions on Software Engineering"}
@String{j-IETE-TECH-REV = "IETE Technical Review"}
@String{j-IJHPCA = "The International Journal of High Performance
Computing Applications"}
@String{j-INF-CONTROL = "Information and Control"}
@String{j-INFO-PROC-LETT = "Information Processing Letters"}
@String{j-INFO-RETRIEVAL-LIB-AUTO = "Information Retrieval and Library
Automation"}
@String{j-INFO-SOFTWARE-TECH = "Information and Software Technology"}
@String{j-INFORMATION-WEEK = "Information Week"}
@String{j-INFOWORLD = "InfoWorld"}
@String{j-INT-J-COMPUT-SYST-SCI-ENG = "International Journal of Computer Systems
Science and Engineering"}
@String{j-INT-J-ENG-EDUC = "International Journal of Engineering
Education"}
@String{j-INT-J-INFO-SEC = "International Journal of Information
Security"}
@String{j-INT-J-PARALLEL-PROG = "International Journal of Parallel
Programming"}
@String{j-INT-J-ROBOTICS-AUTOMATION = "International Journal of Robotics and
Automation"}
@String{j-INT-J-SOFTW-TOOLS-TECHNOL-TRANSFER = "International Journal on
Software Tools for Technology Transfer
(STTT)"}
@String{j-INT-J-SYST-SCI = "International Journal of Systems Science"}
@String{j-INTEL-TECH-J = "Intel Technology Journal"}
@String{j-J-ACM = "Journal of the ACM"}
@String{j-J-AUTOM-REASON = "Journal of Automated Reasoning"}
@String{j-J-COMP-INFO-SYS = "The Journal of Computer Information
Systems"}
@String{j-J-COMP-SCI-TECH = "Journal of Computer Science and Technology"}
@String{j-J-COMP-SECUR = "Journal of Computer Security"}
@String{j-J-COMP-SYS-SCI = "Journal of Computer and System Sciences"}
@String{j-J-COMPUT-APPL-MATH = "Journal of Computational and Applied
Mathematics"}
@String{j-J-COMPUT-BIOL = "Journal of Computational Biology"}
@String{j-J-COMPUT-GRAPH-STAT = "Journal of Computational and Graphical
Statistics"}
@String{j-COMPUT-SECUR = "Computers \& Security"}
@String{j-J-CRYPTO-ENG = "Journal of Cryptographic Engineering"}
@String{j-J-DIGITAL-IMAGING = "Journal of Digital Imaging"}
@String{j-J-FUNCT-PROGRAM = "Journal of Functional Programming"}
@String{j-J-GEOPHYS-RES = "Journal of Geophysical Research"}
@String{j-J-GRID-COMP = "Journal of Grid Computing"}
@String{j-J-INFO-SEC-APPL = "Journal of Information Security and
Applications (JISA)"}
@String{j-J-INFO-SCI-ENG = "Journal of Information Science and
Engineering"}
@String{j-J-LOGIC-ALG-PROG = "Journal of Logic and Algebraic Programming"}
@String{j-J-NETW-COMPUT-APPL = "Journal of Network and Computer
Applications"}
@String{j-J-OPEN-RES-SOFT = "Journal of Open Research Software"}
@String{j-J-OPEN-SOURCE-SOFT = "Journal of Open Source Software"}
@String{j-J-OPER-RES-SOC = "OR: the journal of the Operational Research
Society"}
@String{j-J-PAR-DIST-COMP = "Journal of Parallel and Distributed
Computing"}
@String{j-J-SOFTW-EVOL-PROC = "Journal of Software: Evolution and Process"}
@String{j-J-SOFTW-MAINT-EVOL = "Journal of Software Maintenance and
Evolution: Research and Practice"}
@String{j-J-STAT-SOFT = "Journal of Statistical Software"}
@String{j-J-SUPERCOMPUTING = "The Journal of Supercomputing"}
@String{j-J-SYST-SOFTW = "The Journal of systems and software"}
@String{j-J-UCS = "J.UCS: Journal of Universal Computer
Science"}
@String{j-JERIC = "ACM Journal on Educational Resources in
Computing (JERIC)"}
@String{j-LECT-NOTES-COMP-SCI = "Lecture Notes in Computer Science"}
@String{j-LINUX-J = "Linux Journal"}
@String{j-LIT-LING-COMP = "Literary and Linguistic Computing"}
@String{j-LOGIN = ";login: the USENIX Association newsletter"}
@String{j-LOPLAS = "ACM Letters on Programming Languages and
Systems"}
@String{j-MAGMA = "Magma"}
@String{j-MARKUP-LANG = "Markup languages: theory \& practice"}
@String{j-MATH-COMP-EDU = "Mathematics and computer education"}
@String{j-MICROPROC-MICROSYS = "Microprocessors and Microsystems"}
@String{j-MICROPROC-REP = "Microprocessor report"}
@String{j-MINI-MICRO-SYSTEMS = "Mini-Micro Systems"}
@String{j-MOL-SIM = "Molecular simulation"}
@String{j-MULTIMEDIA-SYSTEMS = "Multimedia Systems"}
@String{j-MULTIMEDIA-TOOLS-APPLIC = "Multimedia Tools and Applications"}
@String{j-NETWORK-COMPUTING = "Network Computing"}
@String{j-NETWORK-SECURITY = "Network Security"}
@String{j-NEUROIMAGE = "NeuroImage"}
@String{j-NORDIC-J-COMPUT = "Nordic Journal of Computing"}
@String{j-OPER-SYS-REV = "Operating Systems Review"}
@String{j-PACMHCI = "Proceedings of the ACM on Human-Computer
Interaction (PACMHCI)"}
@String{j-PACMPL = "Proceedings of the ACM on Programming
Languages (PACMPL)"}
@String{j-PARALLEL-ALGORITHMS-APPL = "Parallel Algorithms and Applications"}
@String{j-PARALLEL-COMPUTING = "Parallel Computing"}
@String{j-PARALLEL-DIST-COMP-PRACT = "Parallel and Distributed Computing
Practices"}
@String{j-PARALLEL-PROCESS-LETT = "Parallel Processing Letters"}
@String{j-PC-MAGAZINE = "PC Magazine"}
@String{j-PERF-EVAL = "Performance evaluation"}
@String{j-PERS-COMPUT-WORLD = "Personal computer world"}
@String{j-PRIMUS = "PRIMUS (Problems Resources and Issues in
Mathematics Undergraduate Studies)"}
@String{j-PROC-AM-CONTROL-CONF = "Proceedings of the American Control
Conference"}
@String{j-PROC-IEEE = "Proceedings of the IEEE"}
@String{j-PROC-SPIE = "Proceedings of the SPIE --- The
International Society for Optical
Engineering"}
@String{j-PROC-VLDB-ENDOWMENT = "Proceedings of the VLDB Endowment"}
@String{j-PROG-COMP-SOFT = "Programming and Computer Software;
translation of Programmirovaniye (Moscow,
USSR) Plenum"}
@String{j-QUEUE = "ACM Queue: Tomorrow's Computing Today"}
@String{j-REAL-TIME-SYST = "Real-Time Systems"}
@String{j-REV-ESP-ELECT = "Revista espa{\~n}ola de electronica"}
@String{j-SCI-COMPUT-PROGRAM = "Science of Computer Programming"}
@String{j-SCI-PROG = "Scientific Programming"}
@String{j-SCPE = "Scalable Computing: Practice and Experience"}
@String{j-SIGADA-LETTERS = "ACM SIGADA Ada Letters"}
@String{j-SIGAPP = "ACM SIGAPP Applied Computing Review"}
@String{j-SIGCSE = "SIGCSE Bulletin (ACM Special Interest Group
on Computer Science Education)"}
@String{j-SIGMETRICS = "ACM SIGMETRICS Perform. Eval. Rev."}
@String{j-SIGMOD = "SIGMOD Record (ACM Special Interest Group
on Management of Data)"}
@String{j-SIGPLAN = "ACM SIG{\-}PLAN Notices"}
@String{j-SIGSAM = "SIGSAM Bulletin (ACM Special Interest Group
on Symbolic and Algebraic Manipulation)"}
@String{j-SIGSOFT = "ACM SIGSOFT Software Engineering Notes"}
@String{j-SIM-SERIES = "Simulation series"}
@String{j-SIMULATION = "Simulation"}
@String{j-SOFTWAREX = "SoftwareX"}
@String{j-SPE = "Soft\-ware\emdash Prac\-tice and
Experience"}
@String{j-SYS-ADMIN = "SysAdmin"}
@String{j-SYS-COMP-JAPAN = "Systems and computers in Japan"}
@String{j-SYST-CONTROL-INFO = "Systems, Control and Information =
Shisutemu Seigyo Joho Gakkai shi"}
@String{j-TAAS = "ACM Transactions on Autonomous and
Adaptive Systems (TAAS)"}
@String{j-TACO = "ACM Transactions on Architecture and Code
Optimization"}
@String{j-TALG = "ACM Transactions on Algorithms"}
@String{j-TAP = "ACM Transactions on Applied Perception"}
@String{j-TCBB = "IEEE/ACM Transactions on Computational
Biology and Bioinformatics"}
@String{j-TECHNIQUE-SCI-INFORMATIQUES = "Technique et science informatiques :
TSI"}
@String{j-TECS = "ACM Transactions on Embedded Computing
Systems"}
@String{j-THEOR-COMP-SCI = "Theoretical Computer Science"}
@String{j-TISSEC = "ACM Transactions on Information and System
Security"}
@String{j-TIST = "ACM Transactions on Intelligent Systems and
Technology (TIST)"}
@String{j-TMIS = "ACM Transactions on Management Information
Systems (TMIS)"}
@String{j-TOCE = "ACM Transactions on Computing Education"}
@String{j-TOCHI = "ACM Transactions on Computer-Human
Interaction"}
@String{j-TOCL = "ACM Transactions on Computational Logic"}
@String{j-TOCS = "ACM Transactions on Computer Systems"}
@String{j-TODAES = "ACM Transactions on Design Automation of
Electronic Systems"}
@String{j-TOIT = "ACM Transactions on Internet Technology (TOIT)"}
@String{j-TOMACS = "ACM Transactions on Modeling and
Computer Simulation"}
@String{j-TOMPECS = "ACM Transactions on Modeling and Performance
Evaluation of Computing Systems (TOMPECS)"}
@String{j-TOMS = "ACM Transactions on Mathematical Software"}
@String{j-TOPC = "ACM Transactions on Parallel Computing
(TOPC)"}
@String{j-TOPLAS = "ACM Transactions on Programming Languages
and Systems"}
@String{j-TOPS = "ACM Transactions on Privacy and Security
(TOPS)"}
@String{j-TOS = "ACM Transactions on Storage"}
@String{j-TOSEM = "ACM Transactions on Software Engineering
and Methodology"}
@String{j-TWEB = "ACM Transactions on the Web (TWEB)"}
@String{j-VLDB-J = "VLDB Journal: Very Large Data Bases"}
@String{j-WIRTSCHAFTSINFORMATIK = "Wirtschaftsinformatik"}
@String{pub-ACM = "ACM Press"}
@String{pub-ACM:adr = "New York, NY 10036, USA"}
@String{pub-AIP = "American Institute of Physics"}
@String{pub-AIP:adr = "Woodbury, NY, USA"}
@String{pub-APRESS = "Apress"}
@String{pub-APRESS:adr = "Berkeley, CA, USA"}
@String{pub-ARTECH = "Artech House Inc."}
@String{pub-ARTECH:adr = "Norwood, MA, USA"}
@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr = "Reading, MA, USA"}
@String{pub-AW-LONGMAN = "Ad{\-d}i{\-s}on-Wes{\-l}ey Longman"}
@String{pub-AW-LONGMAN:adr = "Reading, MA, USA"}
@String{pub-BIRKHAUSER = "Birkh{\"a}user Verlag"}
@String{pub-BIRKHAUSER:adr = "Basel, Switzerland"}
@String{pub-BROOKS-COLE = "Brooks\slash Cole"}
@String{pub-BROOKS-COLE:adr = "Pacific Grove, CA, USA"}
@String{pub-CAMBRIDGE = "Cambridge University Press"}
@String{pub-CAMBRIDGE:adr = "Cambridge, UK"}
@String{pub-CHAPMAN-HALL-CRC = "Chapman and Hall/CRC"}
@String{pub-CHAPMAN-HALL-CRC:adr = "Boca Raton, FL, USA"}
@String{pub-CHARLES-RIVER-MEDIA = "Charles River Media, Inc."}
@String{pub-CHARLES-RIVER-MEDIA:adr = "403 VFW Drive, PO Box 417, Rockland, MA
02370, USA"}
@String{pub-CORIOLIS = "Coriolis Group Books"}
@String{pub-CORIOLIS:adr = "Scottsdale, AZ, USA"}
@String{pub-COURSE-TECHNOLOGY = "Course Technology"}
@String{pub-COURSE-TECHNOLOGY:adr = "Cambridge, MA, USA"}
@String{pub-CRC = "CRC Press"}
@String{pub-CRC:adr = "2000 N.W. Corporate Blvd., Boca Raton, FL
33431-9868, USA"}
@String{pub-HUNGRY-MINDS = "Hungry Minds"}
@String{pub-HUNGRY-MINDS:adr = "909 Third Avenue, New York, NY 10022, USA"}
@String{pub-HUNGRY-MINDS-IN = "Hungry Minds"}
@String{pub-HUNGRY-MINDS-IN:adr = "Indianapolis, IN, USA"}
@String{pub-IBM-PRESS = "IBM Press"}
@String{pub-IBM-PRESS:adr = ""}
@String{pub-IDG = "IDG Books"}
@String{pub-IDG:adr = "San Mateo, CA, USA"}
@String{pub-IDG-WORLDWIDE = "I D G Books Worldwide"}
@String{pub-IDG-WORLDWIDE:adr = "Indianapolis, IN, USA"}
@String{pub-IEEE = "IEEE Computer Society Press"}
@String{pub-IEEE:adr = "1109 Spring Street, Suite 300, Silver
Spring, MD 20910, USA"}
@String{pub-IOS = "IOS Press"}
@String{pub-IOS:adr = "Amsterdam, The Netherlands"}
@String{pub-IRWIN-MCGRAW-HILL = "Irwin\slash McGraw Hill"}
@String{pub-IRWIN-MCGRAW-HILL:adr = "Boston, MA, USA"}
@String{pub-ISO = "International Organization for Standardization"}
@String{pub-ISO:adr = "Geneva, Switzerland"}
@String{pub-ITP = "International Thomson Publishing"}
@String{pub-ITP:adr = "London, New York, Boston, Madrid,
\\ldots{}"}
@String{pub-JONES-BARTLETT = "Jones and Bartlett"}
@String{pub-JONES-BARTLETT:adr = "Boston, MA, USA"}
@String{pub-KLUWER = "Kluwer Academic Publishers Group"}
@String{pub-KLUWER:adr = "Norwell, MA, USA, and Dordrecht, The
Netherlands"}
@String{pub-MANNING = "Manning Publications"}
@String{pub-MANNING:adr = "Greenwich, CT, USA"}
@String{pub-MCGRAW-HILL = "Mc{\-}Graw-Hill"}
@String{pub-MCGRAW-HILL:adr = "New York, NY, USA"}
@String{pub-MIT = "MIT Press"}
@String{pub-MIT:adr = "Cambridge, MA, USA"}
@String{pub-MORGAN-KAUFMANN = "Morgan Kaufmann Publishers"}
@String{pub-MORGAN-KAUFMANN:adr = "Los Altos, CA 94022, USA"}
@String{pub-MT = "M\&T Books"}
@String{pub-MT:adr = "M\&T Publishing, Inc., 501 Galveston Drive,
Redwood City, CA 94063, USA"}
@String{pub-NASA = "National Aeronautics and Space
Administration"}
@String{pub-NASA:adr = "Washington, DC, USA"}
@String{pub-NEW-RIDERS = "New Riders Publishing"}
@String{pub-NEW-RIDERS:adr = "Carmel, IN, USA"}
@String{pub-NIST = "National Institute for Standards and
Technology"}
@String{pub-NIST:adr = "Gaithersburg, MD, USA"}
@String{pub-NO-STARCH = "No Starch Press"}
@String{pub-NO-STARCH:adr = "San Francisco, CA, USA"}
@String{pub-NORTON = "W. W. Norton \& Co."}
@String{pub-NORTON:adr = "New York, NY, USA"}
@String{pub-ORA = "O'Reilly \& {Associates, Inc.}"}
@String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"}
@String{pub-ORA-MEDIA = "O'Reilly Media, Inc."}
@String{pub-ORA-MEDIA:adr = "1005 Gravenstein Highway North, Sebastopol,
CA 95472, USA"}
@String{pub-OSBORNE = "Osborne/McGraw-Hill"}
@String{pub-OSBORNE:adr = "Berkeley, CA, USA"}
@String{pub-PACKT = "Packt Publishing"}
@String{pub-PACKT:adr = "Birmingham"}
@String{pub-PEACHPIT = "Peachpit Press, Inc."}
@String{pub-PEACHPIT:adr = "1085 Keith Avenue, Berkeley, CA 94708, USA"}
@String{pub-PEARSON-EDUCATION = "Pearson Education"}
@String{pub-PEARSON-EDUCATION:adr = "Upper Saddle River, NJ, USA"}
@String{pub-PH = "Pren{\-}tice-Hall"}
@String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"}
@String{pub-PHPTR = "P T R Pren{\-}tice-Hall"}
@String{pub-PHPTR:adr = "Englewood Cliffs, NJ 07632, USA"}
@String{pub-PRAGMATIC-BOOKSHELF = "Pragmatic Bookshelf"}
@String{pub-PRAGMATIC-BOOKSHELF:adr = "Raleigh, NC, USA"}
@String{pub-PRINCETON = "Princeton University Press"}
@String{pub-PRINCETON:adr = "Princeton, NJ, USA"}
@String{pub-QUE = "Que Corporation"}
@String{pub-QUE:adr = "Indianapolis, IN, USA"}
@String{pub-R-D-BOOKS = "R\&D Books"}
@String{pub-R-D-BOOKS:adr = "Lawrence, KS, USA; Berkeley, CA, USA"}
@String{pub-SAE = "Society of Automotive Engineers"}
@String{pub-SAE:adr = "Warrendale, PA, USA"}
@String{pub-SAMS = "Howard W. Sams"}
@String{pub-SAMS:adr = "Indianapolis, IN 46268, USA"}
@String{pub-SCOTT-JONES = "Scott\slash Jones"}
@String{pub-SCOTT-JONES:adr = "El Granada, CA, USA"}
@String{pub-SIAM = "SIAM Press"}
@String{pub-SIAM:adr = "Philadelphia, PA, USA"}
@String{pub-SITEPOINT = "SitePoint Pty. Ltd."}
@String{pub-SITEPOINT:adr = "Collingwood, VIC, Australia"}
@String{pub-SPIE = "SPIE Optical Engineering Press"}
@String{pub-SPIE:adr = "Bellingham, WA, USA"}
@String{pub-SUN-MICROSYSTEMS-PRESS = "Sun Microsystems Press"}
@String{pub-SUN-MICROSYSTEMS-PRESS:adr = "Palo Alto, CA, USA"}
@String{pub-SUNSOFT = "SunSoft Press"}
@String{pub-SUNSOFT:adr = "2550 Garcia Avenue, Mountain View, CA
94043-1100, USA"}
@String{pub-SV = "Spring{\-}er-Ver{\-}lag"}
@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg, Germany~/
London, UK~/ etc."}
@String{pub-SYBEX = "Sybex, Inc."}
@String{pub-SYBEX:adr = "2021 Challenger Driver, Suite 100, Alameda,
CA 94501, USA"}
@String{pub-USENIX = "USENIX Association"}
@String{pub-USENIX:adr = "Berkeley, CA, USA"}
@String{pub-WILEY = "John Wiley and Sons"}
@String{pub-WILEY:adr = "New York, NY, USA; London, UK; Sydney,
Australia"}
@String{pub-WILEY-COMPUTER = "Wiley Computer Publishers"}
@String{pub-WILEY-COMPUTER:adr = "New York, NY, USA"}
@String{pub-WROX = "Wrox Press"}
@String{pub-WROX:adr = "Chicago, IL, USA"}
@String{ser-LNCS = "Lecture Notes in Computer Science"}
@String{ser-LNCSE = "Lecture Notes in Computational
Science and Engineering"}
@Book{Stark:2001:JJV,
author = "Robert F. St{\"a}rk and Joachim Schmid and Egon
B{\"o}rger",
title = "{Java} and the {Java Virtual Machine}: definition,
verification, validation",
publisher = pub-SV,
address = pub-SV:adr,
pages = "x + 381",
year = "2001",
ISBN = "3-540-42088-6",
ISBN-13 = "978-3-540-42088-0",
LCCN = "QA76.73.J38 S785 2001",
bibdate = "Mon May 6 06:26:30 MDT 2002",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/mathcw.bib",
note = "Includes CD-ROM with the entire text of the book and
numerous examples and exercises.",
price = "US\$49.95",
acknowledgement = ack-nhfb,
keywords = "Java (computer program language); virtual computer
systems",
}
@Article{Akai:2010:EAS,
author = "Shumpei Akai and Shigeru Chiba",
title = "Extending {AspectJ} for separating regions",
journal = j-SIGPLAN,
volume = "45",
number = "2",
pages = "45--54",
month = feb,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1837852.1621616",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:37:56 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Synchronization is a good candidate for an aspect in
aspect-oriented programming (AOP) since programmers
have to choose the best granularity of synchronization
for the underlying hardware to obtain the best
execution performance. If synchronization is an aspect,
programmers can change the synchronization code
independently of the rest of the program when the
program runs on different hardware. However, existing
AOP languages such as AspectJ have problems. They
cannot select an arbitrary code region as a join point.
Moreover, they cannot enforce weaving of a
synchronization aspect. Since it is an alternative
feature in feature modeling, at least one of available
synchronization aspects must be woven. Otherwise, the
program would be thread-unsafe. Since an aspect in
AspectJ is inherently optional, programmers must be
responsible for weaving it. To solve these problems,
this paper proposes two new constructs for AspectJ,
{\em regioncut\/} and {\em assertions for advice}.
Regioncut selects arbitrary code region as a join point
and assertion for advice enforces weaving a mandatory
advice. We implemented these constructs by extending
the AspectBench compiler. We evaluated the design of
our constructs by applying them to two open-source
software products, Javassist and Hadoop.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "aspect-oriented programming; feature-oriented
programming; region; synchronization",
}
@Article{Albert:2010:PIM,
author = "Elvira Albert and Samir Genaim and Miguel
G{\'o}mez-Zamalloa",
title = "Parametric inference of memory requirements for
garbage collected languages",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "121--130",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806651.1806671",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The accurate prediction of program's memory
requirements is a critical component in software
development. Existing heap space analyses either do not
take deallocation into account or adopt specific models
of garbage collectors which do not necessarily
correspond to the actual memory usage. We present a
novel approach to inferring upper bounds on memory
requirements of Java-like programs which is {\em
parametric\/} on the notion of {\em object lifetime},
i.e., on when objects become collectible. If objects
lifetimes are inferred by a reachability analysis, then
our analysis infers accurate upper bounds on the memory
consumption for a {\em reachability\/} -based garbage
collector. Interestingly, if objects lifetimes are
inferred by a {\em heap liveness\/} analysis, then we
approximate the program minimal memory requirement,
i.e., the peak memory usage when using an optimal
garbage collector which frees objects as soon as they
become dead. The key idea is to integrate information
on objects lifetimes into the process of generating the
{\em recurrence equations\/} which capture the memory
usage at the different program states. If the heap size
limit is set to the memory requirement inferred by our
analysis, it is ensured that execution will not exceed
the memory limit with the only assumption that garbage
collection works when the limit is reached. Experiments
on Java bytecode programs provide evidence of the
feasibility and accuracy of our analysis.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "garbage collection; java bytecode; live heap space
analysis; low-level languages; peak memory
consumption",
}
@Article{Ali:2010:DJB,
author = "Mohammed F. M. Ali and Mohammed I. Younis and Kamal Z.
Zamli and Widad Ismail",
title = "Development of {Java} based {RFID} application
programmable interface for heterogeneous {RFID}
system",
journal = j-J-SYST-SOFTW,
volume = "83",
number = "11",
pages = "2322--2331",
month = nov,
year = "2010",
CODEN = "JSSODM",
ISSN = "0164-1212 (print), 1873-1228 (electronic)",
ISSN-L = "0164-1212",
bibdate = "Mon Nov 1 11:40:40 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01641212",
acknowledgement = ack-nhfb,
fjournal = "The Journal of systems and software",
journal-URL = "http://www.sciencedirect.com/science/journal/01641212",
}
@Article{Altman:2010:OTJ,
author = "E. Altman and M. Arnold and R. Bordawekar and R. M.
Delmonico and N. Mitchell and P. F. Sweeney",
title = "Observations on tuning a {Java} enterprise application
for performance and scalability",
journal = j-IBM-JRD,
volume = "54",
number = "5",
pages = "2:1--2:12",
month = "????",
year = "2010",
CODEN = "IBMJAE",
DOI = "https://doi.org/10.1147/JRD.2010.2057090",
ISSN = "0018-8646 (print), 2151-8556 (electronic)",
ISSN-L = "0018-8646",
bibdate = "Sun Feb 20 14:29:19 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.research.ibm.com/journal/",
acknowledgement = ack-nhfb,
fjournal = "IBM Journal of Research and Development",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
}
@Article{Apel:2010:CUF,
author = "Sven Apel and Delesley Hutchins",
title = "A calculus for uniform feature composition",
journal = j-TOPLAS,
volume = "32",
number = "5",
pages = "19:1--19:33",
month = may,
year = "2010",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/1745312.1745316",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Fri May 21 12:28:30 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The goal of {\em feature-oriented programming\/} (FOP)
is to modularize software systems in terms of features.
A {\em feature\/} refines the content of a base
program. Both base programs and features may contain
various kinds of software artifacts, for example,
source code in different languages, models, build
scripts, and documentation. We and others have noticed
that when composing features, different kinds of
software artifacts can be refined in a uniform way,
regardless of what they represent. We present gDeep, a
core calculus for feature composition, which captures
the language independence of FOP; it can be used to
compose features containing many different kinds of
artifact in a type-safe way. The calculus allows us to
gain insight into the principles of FOP and to define
general algorithms for feature composition and
validation. We provide the formal syntax, operational
semantics, and type system of gDeep and outline how
languages like Java, Haskell, Bali, and XML can be
plugged in.",
acknowledgement = ack-nhfb,
articleno = "19",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
keywords = "feature composition; Feature-oriented programming;
principle of uniformity; type systems",
}
@Article{Auerbach:2010:LJC,
author = "Joshua Auerbach and David F. Bacon and Perry Cheng and
Rodric Rabbah",
title = "{Lime}: a {Java}-compatible and synthesizable language
for heterogeneous architectures",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "89--108",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869469",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Barabash:2010:TGC,
author = "Katherine Barabash and Erez Petrank",
title = "Tracing garbage collection on highly parallel
platforms",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "1--10",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1837855.1806653",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The pervasiveness of multiprocessor and multicore
hardware and the rising level of available parallelism
are radically changing the computing landscape. Can
software deal with tomorrow's potential higher
parallelism? In this paper we study this issue from the
garbage collection perspective. In particular, we
investigate the scalability of parallel heap tracing,
which stands at the core of the garbage collection
activity. Heap shapes can be sequential in nature, and
prevent the collector from scaling the trace. We start
by proposing the idealized trace utilization as a
scalability measure for evaluating the scalability of a
given heap shape. We then examine standard Java
benchmarks and evaluate the existence of non-scalable
object-graph shapes in their execution. Next, we
propose and implement a prototype of garbage collection
techniques that attempt to ameliorate the object-graph
shape problem. Finally, we measure and report their
efficacy.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "garbage collection; memory management; parallel
garbage collection; runtime systems",
}
@Article{Barbuti:2010:AIA,
author = "Roberto Barbuti and Nicoletta {De Francesco} and Luca
Tesei",
title = "An Abstract Interpretation Approach for Enhancing the
{Java Bytecode Verifier}",
journal = j-COMP-J,
volume = "53",
number = "6",
pages = "679--700",
month = jul,
year = "2010",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/bxp031",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Tue Aug 3 15:52:17 MDT 2010",
bibsource = "http://comjnl.oxfordjournals.org/content/vol53/issue6/index.dtl;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "This article is the winner of The Computer Journal
Wilkes Award for 2010.",
URL = "http://comjnl.oxfordjournals.org/cgi/content/abstract/53/6/679;
http://comjnl.oxfordjournals.org/cgi/reprint/53/6/679;
http://www.oxfordjournals.org/our_journals/computer_journal/wilkes_award.html",
acknowledgement = ack-nhfb,
fjournal = "The Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
}
@Article{Basanta-Val:2010:NHR,
author = "Pablo Basanta-Val and Marisol Garc{\'\i}a-Valls and
Iria Est{\'e}vez-Ayres",
title = "{No-Heap Remote Objects} for distributed real-time
{Java}",
journal = j-TECS,
volume = "10",
number = "1",
pages = "7:1--7:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814546",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "This article presents an approach to providing
real-time support for Java's Remote Method Invocation
(RMI) and its integration with the RTSJ memory model in
order to leave out garbage collection. A new construct
for remote objects, called {\em No-heap Remote
object\/} ({\em NhRo\/}), is introduced. The use of a
NhRo guarantees that memory required to perform a
remote invocation (at the server side) does not use
heap memory. Thus, the aim is to avoid garbage
collection in the remote invocation process, improving
predictability and memory isolation of distributed
Java-based real-time applications. The article presents
the bare model and the main programming patterns that
are associated with the NhRo model. Sun RMI
implementation has been modified to integrate the NhRo
model in both static and dynamic environments.",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "distributed real-time Java; DRTSJ; Real-time Java;
real-time remote objects; region-based memory
management; RTSJ",
}
@Article{Basanta-Val:2010:SSS,
author = "Pablo Basanta-Val and Iria Estevez-Ayres and Marisol
Garcia-Valls and Luis Almeida",
title = "A Synchronous Scheduling Service for Distributed
Real-Time {Java}",
journal = j-IEEE-TRANS-PAR-DIST-SYS,
volume = "21",
number = "4",
pages = "506--519",
month = apr,
year = "2010",
CODEN = "ITDSEO",
DOI = "https://doi.org/10.1109/TPDS.2009.95",
ISSN = "1045-9219 (print), 1558-2183 (electronic)",
ISSN-L = "1045-9219",
bibdate = "Thu May 13 12:06:56 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Transactions on Parallel and Distributed
Systems",
journal-URL = "http://www.computer.org/tpds/archives.htm",
}
@Article{Bebenita:2010:STB,
author = "Michael Bebenita and Florian Brandner and Manuel
Fahndrich and Francesco Logozzo and Wolfram Schulte and
Nikolai Tillmann and Herman Venter",
title = "{SPUR}: a trace-based {JIT} compiler for {CIL}",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "708--725",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869517",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Bodden:2010:AOR,
author = "E. Bodden and K. Havelund",
title = "Aspect-Oriented Race Detection in {Java}",
journal = j-IEEE-TRANS-SOFTW-ENG,
volume = "36",
number = "4",
pages = "509--527",
month = jul # "\slash " # aug,
year = "2010",
CODEN = "IESEDJ",
DOI = "https://doi.org/10.1109/TSE.2010.25",
ISSN = "0098-5589 (print), 1939-3520 (electronic)",
ISSN-L = "0098-5589",
bibdate = "Thu Feb 1 19:49:24 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5406531",
acknowledgement = ack-nhfb,
fjournal = "IEEE Transactions on Software Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}
@Article{Ceccato:2010:MLD,
author = "Mariano Ceccato and Thomas Roy Dean and Paolo Tonella
and Davide Marchignoli",
title = "Migrating legacy data structures based on variable
overlay to {Java}",
journal = j-J-SOFTW-MAINT-EVOL,
volume = "22",
number = "3",
pages = "211--237",
month = apr,
year = "2010",
CODEN = "JSMECT",
DOI = "https://doi.org/10.1002/smr.418",
ISSN = "1532-060X (print), 1532-0618 (electronic)",
ISSN-L = "1532-060X",
bibdate = "Wed Jan 31 10:00:28 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jsoftwmaintevol.bib",
acknowledgement = ack-nhfb,
fjournal = "Journal of Software Maintenance and Evolution:
Research and Practice",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
}
@Article{Chalin:2010:TIG,
author = "Patrice Chalin and Robby and Perry R. James and
Jooyong Lee and George Karabotsos",
title = "Towards an industrial grade {IVE} for {Java} and next
generation research platform for {JML}",
journal = j-INT-J-SOFTW-TOOLS-TECHNOL-TRANSFER,
volume = "12",
number = "6",
pages = "429--446",
month = nov,
year = "2010",
CODEN = "????",
ISSN = "1433-2779 (print), 1433-2787 (electronic)",
ISSN-L = "1433-2779",
bibdate = "Tue Sep 6 22:15:47 MDT 2011",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1433-2779&volume=12&issue=6;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=1433-2779&volume=12&issue=6&spage=429",
acknowledgement = ack-nhfb,
fjournal = "International Journal on Software Tools for Technology
Transfer: STTT",
}
@Article{Chambers:2010:FEE,
author = "Craig Chambers and Ashish Raniwala and Frances Perry
and Stephen Adams and Robert R. Henry and Robert
Bradshaw and Nathan Weizenbaum",
title = "{FlumeJava}: easy, efficient data-parallel pipelines",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "363--375",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1809028.1806638",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "MapReduce and similar systems significantly ease the
task of writing data-parallel code. However, many
real-world computations require a pipeline of
MapReduces, and programming and managing such pipelines
can be difficult. We present FlumeJava, a Java library
that makes it easy to develop, test, and run efficient
data-parallel pipelines. At the core of the FlumeJava
library are a couple of classes that represent
immutable parallel collections, each supporting a
modest number of operations for processing them in
parallel. Parallel collections and their operations
present a simple, high-level, uniform abstraction over
different data representations and execution
strategies. To enable parallel operations to run
efficiently, FlumeJava defers their evaluation, instead
internally constructing an execution plan dataflow
graph. When the final results of the parallel
operations are eventually needed, FlumeJava first
optimizes the execution plan, and then executes the
optimized operations on appropriate underlying
primitives (e.g., MapReduces). The combination of
high-level abstractions for parallel data and
computation, deferred evaluation and optimization, and
efficient parallel primitives yields an easy-to-use
system that approaches the efficiency of hand-optimized
pipelines. FlumeJava is in active use by hundreds of
pipeline developers within Google.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "data-parallel programming; java; mapreduce",
}
@Article{Costa:2010:RMN,
author = "Gabriele Costa and Fabio Martinelli and Paolo Mori and
Christian Schaefer and Thomas Walter",
title = "Runtime monitoring for next generation {Java ME}
platform",
journal = j-COMPUT-SECUR,
volume = "29",
number = "1",
pages = "74--87",
month = feb,
year = "2010",
CODEN = "CPSEDU",
ISSN = "0167-4048 (print), 1872-6208 (electronic)",
ISSN-L = "0167-4048",
bibdate = "Mon Sep 23 09:46:19 MDT 2019",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computsecur2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "https://www.sciencedirect.com/science/article/pii/S0167404809000790",
acknowledgement = ack-nhfb,
fjournal = "Computers \& Security",
journal-URL = "https://www.sciencedirect.com/science/journal/01674048",
}
@Article{Curley:2010:RDT,
author = "Edward Curley and Binoy Ravindran and Jonathan
Anderson and E. Douglas Jensen",
title = "Recovering from distributable thread failures in
distributed real-time {Java}",
journal = j-TECS,
volume = "10",
number = "1",
pages = "8:1--8:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814547",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "We consider the problem of recovering from the
failures of distributable threads (``threads'') in
distributed real-time systems that operate under
runtime uncertainties including those on thread
execution times, thread arrivals, and node failure
occurrences. When a thread experiences a node failure,
the result is a broken thread having an orphan. Under a
termination model, the orphans must be detected and
aborted, and exceptions must be delivered to the
farthest, contiguous surviving thread segment for
resuming thread execution. Our application/scheduling
model includes the proposed distributable thread
programming model for the emerging Distributed
Real-Time Specification for Java (DRTSJ), together with
an exception-handler model. Threads are subject to
time/utility function (TUF) time constraints and an
utility accrual (UA) optimality criterion. A key
underpinning of the TUF/UA scheduling paradigm is the
notion of ``best-effort'' where higher importance
threads are always favored over lower importance ones,
irrespective of thread urgency as specified by their
time constraints. We present a thread scheduling
algorithm called HUA and a thread integrity protocol
called TPR. We show that HUA and TPR bound the orphan
cleanup and recovery time with bounded loss of the
best-effort property. Our implementation experience for
HUA/TPR in the Reference Implementation of the proposed
programming model for the DRTSJ demonstrates the
algorithm/protocol's effectiveness.",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "distributable thread; Distributed; distributed
scheduling; Java; real-time; thread integrity",
}
@Article{Dam:2010:PCI,
author = "Mads Dam and Bart Jacobs and Andreas Lundblad and
Frank Piessens",
title = "Provably correct inline monitoring for multithreaded
{Java}-like programs",
journal = j-J-COMP-SECUR,
volume = "18",
number = "1",
pages = "37--59",
month = "????",
year = "2010",
CODEN = "JCSIET",
DOI = "https://doi.org/10.3233/JCS-2010-0365",
ISSN = "0926-227X (print), 1875-8924 (electronic)",
ISSN-L = "0926-227X",
bibdate = "Tue May 24 06:24:34 MDT 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jcompsecur.bib",
acknowledgement = ack-nhfb,
fjournal = "Journal of Computer Security",
journal-URL = "http://content.iospress.com/journals/journal-of-computer-security",
}
@Article{DeFrancesco:2010:UAI,
author = "Nicoletta {De Francesco} and Giuseppe Lettieri and
Luca Martini",
title = "Using abstract interpretation to add type checking for
interfaces in {Java} bytecode verification",
journal = j-THEOR-COMP-SCI,
volume = "411",
number = "22--24",
pages = "2174--2201",
day = "17",
month = may,
year = "2010",
CODEN = "TCSCDI",
ISSN = "0304-3975 (print), 1879-2294 (electronic)",
ISSN-L = "0304-3975",
bibdate = "Mon Mar 28 17:10:32 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/03043975",
abstract = "Java interface types support multiple inheritance.
Because of this, the standard bytecode verifier ignores
them, since it is not able to model the class hierarchy
as a lattice. Thus, type checks on interfaces are
performed at run time. We propose a verification
methodology that removes the need for run-time checks.
The methodology consists of: (1) an augmented verifier
that is very similar to the standard one, but is also
able to check for interface types in most cases; (2)
for all other cases, a set of additional simpler
verifiers, each one specialized for a single interface
type. We obtain these verifiers in a systematic way by
using abstract interpretation techniques. Finally, we
describe an implementation of the methodology and
evaluate it on a large set of benchmarks.",
acknowledgement = ack-nhfb,
fjournal = "Theoretical Computer Science",
journal-URL = "http://www.sciencedirect.com/science/journal/03043975",
}
@Article{Deitcher:2010:JEJ,
author = "Avi Deitcher",
title = "{JSormdb} --- an embedded {JavaScript} database",
journal = j-LINUX-J,
volume = "2010",
number = "192",
pages = "4:1--4:??",
month = apr,
year = "2010",
CODEN = "LIJOFX",
ISSN = "1075-3583 (print), 1938-3827 (electronic)",
ISSN-L = "1075-3583",
bibdate = "Tue Nov 23 11:41:54 MST 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Linux Journal",
journal-URL = "http://portal.acm.org/citation.cfm?id=J508",
}
@Article{Dietrich:2010:POD,
author = "K. Dietrich and F. R{\"o}ck",
title = "Performance Optimizations for {DAA} Signatures on
{Java} enabled Platforms",
journal = j-J-UCS,
volume = "16",
number = "4",
pages = "519--??",
month = "????",
year = "2010",
CODEN = "????",
ISSN = "0948-6968",
ISSN-L = "0948-6968",
bibdate = "Wed Aug 25 21:53:00 MDT 2010",
bibsource = "http://www.jucs.org/jucs;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.jucs.org/jucs_16_4/performance_optimizations_for_daa",
acknowledgement = ack-nhfb,
fjournal = "J.UCS: Journal of Universal Computer Science",
journal-URL = "http://www.jucs.org/jucs",
}
@Article{DosSantos:2010:MPB,
author = "Osmar Marchi {Dos Santos} and Andy Wellings",
title = "Measuring and policing blocking times in real-time
systems",
journal = j-TECS,
volume = "10",
number = "1",
pages = "2:1--2:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814541",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "In real-time systems, the execution-time overrun of a
thread may lead to a deadline being missed by the
thread or even others threads in the system. From a
fault tolerance perspective, both execution time
overruns and deadline misses can be considered timing
errors that could potentially cause a failure in the
system's ability to deliver its services in a timely
manner. In this context, the ideal is to detect the
error in the system as soon as possible, so that the
propagation of the error can be limited and error
recovery strategies can take place with more accurate
information. The run-time support mechanism usually
deployed for monitoring the timing requirements of
real-time systems is based on deadline monitoring, that
is, the system calls specific application code whenever
a deadline is violated. Recognizing that deadline
monitoring may not be enough for providing an adequate
level of fault tolerance for timing errors, major
real-time programming standards, like Ada, POSIX and
the Real-Time Specification for Java (RTSJ), have
proposed different mechanisms for monitoring the
execution time of threads. Nevertheless, in order to
provide a complete fault tolerance approach for timing
errors, the potential blocking time of threads also has
to be monitored. In this article, we propose mechanisms
for measuring and policing the blocking time of threads
in the context of both {\em basic priority
inheritance\/} and {\em priority ceiling protocols}.
The notion of {\em blocking-time clocks and timers\/}
for the POSIX standard is proposed, implemented and
evaluated in the open-source real-time operating system
MaRTE OS. Also, a {\em blocking time monitoring
model\/} for measuring and policing blocking times in
the RTSJ framework is specified. This model is
implemented and evaluated in the (RTSJ-compliant)
open-source middleware jRate, running on top of MaRTE
OS.",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "error detection; POSIX standard; Real-time
specification for Java; timing errors",
}
@Article{Egbring:2010:POS,
author = "Marco Egbring and Gerd A. Kullak-Ublick and Stefan
Russmann",
title = "{Phynx}: an open source software solution supporting
data management and web-based patient-level data review
for drug safety studies in the general practice
research database and other health care databases",
journal = "Pharmacoepidemiology and Drug Safety",
volume = "19",
number = "1",
pages = "38--44",
year = "2010",
DOI = "https://doi.org/10.1002/pds.1860",
ISSN = "1053-8569 (print), 1099-1557 (electronic)",
ISSN-L = "1053-8569",
bibdate = "Tue Jan 30 07:39:48 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/gnu.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
keywords = "Adobe Flex 3, Apache Tomcat, claims databases,
Eclipse, electronic medical records, general practice
research database (GPRD), Internet, Java, MySQL,
pharmacoepidemiology, Talend Open Studio, validation",
}
@Article{Elmas:2010:GRA,
author = "Tayfun Elmas and Shaz Qadeer and Serdar Tasiran",
title = "{Goldilocks}: a race-aware {Java} runtime",
journal = j-CACM,
volume = "53",
number = "11",
pages = "85--92",
month = nov,
year = "2010",
CODEN = "CACMA2",
DOI = "https://doi.org/10.1145/1839676.1839698",
ISSN = "0001-0782 (print), 1557-7317 (electronic)",
ISSN-L = "0001-0782",
bibdate = "Fri Oct 29 17:02:13 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/cacm/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Communications of the ACM",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J79",
}
@Article{Flanagan:2010:AMD,
author = "Cormac Flanagan and Stephen N. Freund",
title = "Adversarial memory for detecting destructive races",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "244--254",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806625",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Multithreaded programs are notoriously prone to race
conditions, a problem exacerbated by the widespread
adoption of multi-core processors with complex memory
models and cache coherence protocols. Much prior work
has focused on static and dynamic analyses for race
detection, but these algorithms typically are unable to
distinguish destructive races that cause erroneous
behavior from benign races that do not. Performing this
classification manually is difficult, time consuming,
and error prone.\par
This paper presents a new dynamic analysis technique
that uses {\em adversarial memory\/} to classify race
conditions as destructive or benign on systems with
relaxed memory models. Unlike a typical language
implementation, which may only infrequently exhibit
non-sequentially consistent behavior, our adversarial
memory implementation exploits the full freedom of the
memory model to return older, unexpected, or stale
values for memory reads whenever possible, in an
attempt to crash the target program (that is, to force
the program to behave erroneously). A crashing
execution provides concrete evidence of a destructive
bug, and this bug can be strongly correlated with a
specific race condition in the target
program.\par
Experimental results with our Jumble prototype for Java
demonstrate that adversarial memory is highly effective
at identifying destructive race conditions, and in
distinguishing them from race conditions that are real
but benign. Adversarial memory can also reveal
destructive races that would not be detected by
traditional testing (even after thousands of runs) or
by model checkers that assume sequential consistency.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "concurrency; dynamic analysis; race conditions;
relaxed memory models",
}
@Article{Gama:2010:SAA,
author = "Kiev Gama and Didier Donsez",
title = "A survey on approaches for addressing dependability
attributes in the {OSGi} service platform",
journal = j-SIGSOFT,
volume = "35",
number = "3",
pages = "1--8",
month = may,
year = "2010",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/1764810.1764818",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:15:53 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "The OSGi service platform is being used in software
industry as the de facto middleware for developing and
deploying modular Java applications, using SOA
principles in centralized solutions. OSGi provides a
dynamic platform where components and services can be
deployed and undeployed at runtime, attracting the
attention of both commercial and research projects.
Although the platform is used in fields with different
purposes (e.g. experimentally used in healthcare,
commercially used in application servers) but where
dependability should be a pre-requisite for
applications, it is a fact that the OSGi technology
does not provide a dependable platform for executing
applications with such needs. Different research
efforts try to address dependability attributes
(availability, integrity, maintainability, reliability,
safety, and confidentiality) in the OSGi service
platform, but not necessarily all of these attributes
are completely covered or explicitly addressed in the
textual references. We provide a brief survey on recent
research efforts that try to improve dependability in
the OSGi service platform. We analyze and identify
which attributes are addressed on each approach, and
provide a discussion on the employed techniques,
similarities and results achieved on such approaches.
Al-though this survey remains limited to one technology
(OSGi), the problematic as well as all the employed
techniques in the analyzed efforts are pertinent to
other service and component-based systems.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Geoffray:2010:VSM,
author = "Nicolas Geoffray and Ga{\"e}l Thomas and Julia Lawall
and Gilles Muller and Bertil Folliot",
title = "{VMKit}: a substrate for managed runtime
environments",
journal = j-SIGPLAN,
volume = "45",
number = "7",
pages = "51--62",
month = jul,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1735997.1736006",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:01 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Managed Runtime Environments (MREs), such as the JVM
and the CLI, form an attractive environment for program
execution, by providing portability and safety, via the
use of a bytecode language and automatic memory
management, as well as good performance, via
just-in-time (JIT) compilation. Nevertheless,
developing a fully featured MRE, including e.g. a
garbage collector and JIT compiler, is a herculean
task. As a result, new languages cannot easily take
advantage of the benefits of MREs, and it is difficult
to experiment with extensions of existing MRE based
languages.\par
This paper describes and evaluates VMKit, a first
attempt to build a common substrate that eases the
development of high-level MREs. We have successfully
used VMKit to build two MREs: a Java Virtual Machine
and a Common Language Runtime. We provide an extensive
study of the lessons learned in developing this
infrastructure, and assess the ease of implementing new
MREs or MRE extensions and the resulting performance.
In particular, it took one of the authors only one
month to develop a Common Language Runtime using VMKit.
VMKit furthermore has performance comparable to the
well-established open-source MREs Cacao, Apache Harmony
and Mono, and is 1.2 to 3 times slower than JikesRVM on
most of the Dacapo benchmarks.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "just in time compiler; virtual machine; vmkit",
}
@Article{Gill:2010:MDP,
author = "Nasib Singh Gill and Pradeep Tomar",
title = "Modified development process of component-based
software engineering",
journal = j-SIGSOFT,
volume = "35",
number = "2",
pages = "1--6",
month = mar,
year = "2010",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/1734103.1734120",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:15:52 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Component-based software engineering (CBSE) is a
branch of software engineering, the priority of which
is the separation of concerns in respect of the
wide-ranging functionality available throughout a given
software system. CBSE emphasizes on building system by
reusing high quality configurable software components.
This reduces its development cost as well as
time-to-market and ensures higher reliability, better
maintainability and quality by exploiting reusability.
In the traditional approach, when a software system is
going to be developed, the implementation has to be
done from scratch. With the advent of Object-Oriented
Technology (OOT), reusable software components have
become an indispensable part of programming knowledge.
In addition to those classes and methods included in
standard libraries of programming languages, such as
the Java API library, many reusable software components
are developed by software development organizations
specifically for reuse or repackaged from previously
developed systems. We propose here a modified
development process of CBSE and present our modified
development process of CBSE for increasing reusability
in different abstraction levels: architecture level,
modular design level and framework level. This modified
development process of CBSE change the reusability
approach into two different approaches
composition-based approach and generation-based. Lastly
on the basis of these two approaches we divide
component reuse into two different processes. First one
is process of development of reusable components which
is composition-based approach and second one is process
of development with reusable components which is based
on the generation-based according X model with the
benefits of reusable components in programming",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Book{Goodrich:2010:DSA,
author = "Michael T. Goodrich and Roberto Tamassia",
title = "Data Structures and Algorithms in {Java}",
publisher = pub-WILEY,
address = pub-WILEY:adr,
edition = "Fifth",
pages = "xxii + 714",
year = "2010",
ISBN = "0-470-38326-7 (hardcover), 0-470-39880-9 (paperback)",
ISBN-13 = "978-0-470-38326-1 (hardcover), 978-0-470-39880-7
(paperback)",
LCCN = "QA76.73.J38 G66 2010",
bibdate = "Thu Mar 22 12:04:32 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigact.bib;
z3950.loc.gov:7090/Voyager",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language); Data structures
(Computer science); Computer algorithms",
}
@Article{Haubl:2010:CES,
author = "Christian H{\"a}ubl and Christian Wimmer and Hanspeter
M{\"o}ssenb{\"o}ck",
title = "Compact and efficient strings for {Java}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "75",
number = "11",
pages = "1077--1094",
day = "1",
month = nov,
year = "2010",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Fri Apr 1 18:39:38 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Heidenreich:2010:GST,
author = "Florian Heidenreich and Jendrik Johannes and Mirko
Seifert and Christian Wende and Marcel B{\"o}hme",
title = "Generating safe template languages",
journal = j-SIGPLAN,
volume = "45",
number = "2",
pages = "99--108",
month = feb,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1621607.1621624",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:37:56 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Template languages are widely used within generative
programming, because they provide intuitive means to
generate software artefacts expressed in a specific
object language. However, most template languages
perform template instantiation on the level of string
literals, which allows neither syntax checks nor
semantics analysis. To make sure that generated
artefacts always conform to the object language, we
propose to perform static analysis at template design
time. In addition, the increasing popularity of
domainspecific languages (DSLs) demands an approach
that allows to reuse both the concepts of template
languages and the corresponding tools.\par
In this paper we address the issues mentioned above by
presenting how existing languages can be automatically
extended with generic template concepts (e.g.,
placeholders, loops, conditions) to obtain safe
template languages. These languages provide means for
syntax checking and static semantic analysis w.r.t. the
object language at template design time. We discuss the
prerequisites for this extension, analyse the types of
correctness properties that can be assured at template
design time, and exemplify the key benefits of this
approach on a textual DSL and Java.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "generative programming; language extension; safe
authoring; template language",
}
@Article{Hellyer:2010:LCW,
author = "Laurence Hellyer and Richard Jones and Antony L.
Hosking",
title = "The locality of concurrent write barriers",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "83--92",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806651.1806666",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Concurrent and incremental collectors require barriers
to ensure correct synchronisation between mutator and
collector. The overheads imposed by particular barriers
on particular systems have been widely studied.
Somewhat fewer studies have also compared barriers in
terms of their termination properties or the volume of
floating garbage they generate. Until now, the
consequences for locality of different barrier choices
has not been studied, although locality will be of
increasing importance for emerging architectures. This
paper provides a study of the locality of concurrent
write barriers, independent of the processor
architecture, virtual machine, compiler or garbage
collection algorithm.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "garbage collection; java; language implementation;
memory management",
}
@Article{Higuera-Toledano:2010:ISI,
author = "M. Teresa Higuera-Toledano and Doug Locke and Angelo
Corsaro",
title = "Introduction to special issue on {Java} technologies
for real-time and embedded systems",
journal = j-TECS,
volume = "10",
number = "1",
pages = "1:1--1:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814540",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
}
@Article{Hsiao:2010:EST,
author = "Chun-Feng Hsiao and Chih-Ping Chu",
title = "Enhancing {SCORM} through creating a reusable {Java}
class repository",
journal = j-SPE,
volume = "40",
number = "10",
pages = "865--881",
month = sep,
year = "2010",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.979",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Tue Jun 21 17:09:49 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "7 May 2010",
}
@Article{James:2010:FMC,
author = "Perry R. James and Patrice Chalin",
title = "Faster and More Complete Extended Static Checking for
the {Java} Modeling Language",
journal = j-J-AUTOM-REASON,
volume = "44",
number = "1--2",
pages = "??--??",
month = feb,
year = "2010",
CODEN = "JAREEW",
DOI = "https://doi.org/10.1007/s10817-009-9134-9",
ISSN = "0168-7433 (print), 1573-0670 (electronic)",
ISSN-L = "0168-7433",
bibdate = "Sat Apr 2 11:10:16 MDT 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://link.springer.com/article/10.1007/s10817-009-9134-9",
acknowledgement = ack-nhfb,
ajournal = "J. Autom. Reason.",
articleno = "145",
fjournal = "Journal of Automated Reasoning",
journal-URL = "http://link.springer.com/journal/10817",
}
@Article{Joseph:2010:PII,
author = "Damien Joseph and Soon Ang and Roger H. L. Chang and
Sandra A. Slaughter",
title = "Practical intelligence in {IT}: assessing soft skills
of {IT} professionals",
journal = j-CACM,
volume = "53",
number = "2",
pages = "149--154",
month = feb,
year = "2010",
CODEN = "CACMA2",
DOI = "https://doi.org/10.1145/1646353.1646391",
ISSN = "0001-0782 (print), 1557-7317 (electronic)",
ISSN-L = "0001-0782",
bibdate = "Thu Feb 4 17:13:32 MST 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/cacm/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "What qualities make a successful it professional?
Certainty strong technical skills are sine qua non. As
a result, the technology geek remains the stereotype of
an information technology (IT) professional. Indeed,
when companies hire IT professionals, their focus is
often on the 'hard' skills needed to perform the work,
such as years of Java programming
experience.\par
However, there is a growing (and gnawing) awareness
that technical skills alone are insufficient for
success in IT, particularly in today's dynamic,
distributed and complex workplace. Companies are
exploring outsourcing and offshoring to become more
flexible and contain costs while strategically
leveraging IT. Consequently, IT professionals (whether
onsite or offshore, in-house or outsourced) must
acquire a broader set of skills beyond their
traditional technical skills. These broader managerial
or interpersonal skills are generically labeled 'soft
skills.'\par
Despite the increasing importance of soft skills, very
little systematic research has conceptualized such
skills and even less has measured these skills. Given
this gap in the literature, this article introduces
'practical intelligence' as the overarching concept
that could provide a better understanding of this
broader set of skills required of IT professionals. We
describe the development of the SoftSkills for IT
(SSIT) instrument for assessing an IT professional's
level of practical intelligence, and report the results
of a study that validates this instrument by comparing
the practical intelligence of experienced IT
professionals versus novices. We conclude by drawing
out implications of our study for IT recruitment,
training and development, and suggest future research
directions.",
acknowledgement = ack-nhfb,
fjournal = "Communications of the ACM",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J79",
}
@Article{Kienle:2010:ATT,
author = "Holger M. Kienle",
title = "It's About Time to Take {JavaScript} (More)
Seriously",
journal = j-IEEE-SOFTWARE,
volume = "27",
number = "3",
pages = "60--62",
month = may # "\slash " # jun,
year = "2010",
CODEN = "IESOEG",
DOI = "https://doi.org/10.1109/MS.2010.76",
ISSN = "0740-7459 (print), 0740-7459 (electronic)",
ISSN-L = "0740-7459",
bibdate = "Thu May 13 07:56:44 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Software",
journal-URL = "http://www.computer.org/portal/web/csdl/magazines/software",
}
@Article{Kim:2010:EAE,
author = "Minseong Kim and Andy Wellings",
title = "Efficient asynchronous event handling in the real-time
specification for {Java}",
journal = j-TECS,
volume = "10",
number = "1",
pages = "5:1--5:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814544",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The Real-Time Specification for Java (RTSJ) is
becoming mature. It has been implemented, formed the
basis for research and used in serious applications.
Some strengths and weaknesses are emerging. One of the
areas that requires further elaboration is asynchronous
event handling (AEH). The primary goal for handlers in
the RTSJ is to have a lightweight concurrency
mechanism. Some implementation will, however, simply
map a handler to a real-time thread and this results in
undermining the original motivations and introduces
performance penalties. However it is generally unclear
how to map handlers to real-time threads effectively.
Also the support for nonblocking handlers in the RTSJ
is criticized as lacking in configurability as
implementations are unable to take advantage of them.
This article, therefore, examines the AEH techniques
used in some popular RTSJ implementations and proposes
two efficient AEH models for the RTSJ. We then define
formal models of the RTSJ AEH implementations using the
automata formalism provided by the UPPAAL model
checking tool. Using the automata models, their
properties are explored and verified. In the proposed
models, blocking and nonblocking handlers are serviced
by different algorithms. In this way, it is possible to
assign a real-time thread to a handler at the right
time in the right place while maintaining the fewest
possible threads overall and to give a certain level of
configurability to AEH. We also have implemented the
proposed models on an existing RTSJ implementation,
jRate and executed a set of performance tests that
measure their respective dispatch and multiple-handler
completion latencies. The results from the tests and
the verifications indicate that the proposed models
require fewer threads on average with better
performance than other approaches.",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "asynchronous event handling; blocking handler;
multiple-server switching phenomenon; nonblocking
handler; RTSJ",
}
@Article{Ko:2010:EAW,
author = "Andrew J. Ko and Brad A. Myers",
title = "Extracting and answering why and why not questions
about {Java} program output",
journal = j-TOSEM,
volume = "20",
number = "2",
pages = "4:1--4:??",
month = aug,
year = "2010",
CODEN = "ATSMER",
DOI = "https://doi.org/10.1145/1824760.1824761",
ISSN = "1049-331X (print), 1557-7392 (electronic)",
ISSN-L = "1049-331X",
bibdate = "Wed Sep 8 18:47:44 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/tosem/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "When software developers want to understand the reason
for a program's behavior, they must translate their
questions about the behavior into a series of questions
about code, speculating about the causes in the
process. The Whyline is a new kind of debugging tool
that avoids such speculation by instead enabling
developers to select a question about program output
from a set of ``why did and why didn't'' questions
extracted from the program's code and execution. The
tool then finds one or more possible explanations for
the output in question. These explanations are derived
using a static and dynamic slicing, precise call
graphs, reachability analyses, and new algorithms for
determining potential sources of values. Evaluations of
the tool on two debugging tasks showed that developers
with the Whyline were three times more successful and
twice as fast at debugging, compared to developers with
traditional breakpoint debuggers. The tool has the
potential to simplify debugging and program
understanding in many software development contexts.",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "ACM Transactions on Software Engineering and
Methodology",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J790",
keywords = "debugging; questions; Whyline",
}
@Article{Kolling:2010:GPE,
author = "Michael K{\"o}lling",
title = "The {Greenfoot} Programming Environment",
journal = j-TOCE,
volume = "10",
number = "4",
pages = "14:1--14:??",
month = nov,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1868358.1868361",
ISSN = "1946-6226",
bibdate = "Thu Dec 9 11:26:15 MST 2010",
bibsource = "http://www.acm.org/pubs/toce;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Greenfoot is an educational integrated development
environment aimed at learning and teaching programming.
It is aimed at a target audience of students from about
14 years old upwards, and is also suitable for college-
and university-level education. Greenfoot combines
graphical, interactive output with programming in Java,
a standard, text-based object-oriented programming
language. This article first describes Greenfoot and
then goes on to discuss design goals and motivations,
strengths and weaknesses of the system, and its
relation to two environments with similar goals,
Scratch and Alice.",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "ACM Transactions on Computing Education",
}
@Article{Lee:2010:JSD,
author = "Byeongcheol Lee and Ben Wiedermann and Martin Hirzel
and Robert Grimm and Kathryn S. McKinley",
title = "{Jinn}: synthesizing dynamic bug detectors for foreign
language interfaces",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "36--49",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1809028.1806601",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Programming language specifications mandate static and
dynamic analyses to preclude syntactic and semantic
errors. Although individual languages are usually
well-specified, composing languages is not, and this
poor specification is a source of many errors in {\em
multilingual\/} programs. For example, virtually all
Java programs compose Java and C using the Java Native
Interface (JNI). Since JNI is informally specified,
developers have difficulty using it correctly, and
current Java compilers and virtual machines (VMs)
inconsistently check only a subset of JNI
constraints.\par
This paper's most significant contribution is to show
how to synthesize dynamic analyses from state machines
to detect foreign function interface (FFI) violations.
We identify three classes of FFI constraints encoded by
eleven state machines that capture thousands of JNI and
Python/C FFI rules. We use a mapping function to
specify which state machines, transitions, and program
entities (threads, objects, references) to check at
each FFI call and return. From this function, we
synthesize a context-specific dynamic analysis to find
FFI bugs. We build bug detection tools for JNI and
Python/C using this approach. For JNI, we dynamically
and transparently interpose the analysis on Java and C
language transitions through the JVM tools interface.
The resulting tool, called Jinn, is compiler and
virtual machine {\em independent}. It detects and
diagnoses a wide variety of FFI bugs that other tools
miss. This approach greatly reduces the annotation
burden by exploiting common FFI constraints: whereas
the generated Jinn code is 22,000+ lines, we wrote only
1,400 lines of state machine and mapping code. Overall,
this paper lays the foundation for a more principled
approach to developing correct multilingual software
and a more concise and automated approach to FFI
specification.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "dynamic analysis; ffi bugs; foreign function
interfaces (FFI); java native interface (jni);
multilingual programs; python/C; specification;
specification generation",
}
@Article{Lerner:2010:FTJ,
author = "Reuven M. Lerner",
title = "At the forge: testing {JavaScript}",
journal = j-LINUX-J,
volume = "2010",
number = "191",
pages = "6:1--6:??",
month = mar,
year = "2010",
CODEN = "LIJOFX",
ISSN = "1075-3583 (print), 1938-3827 (electronic)",
ISSN-L = "1075-3583",
bibdate = "Tue Nov 23 11:41:53 MST 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "Linux Journal",
journal-URL = "http://portal.acm.org/citation.cfm?id=J508",
}
@Article{Lerner:2010:SDT,
author = "Benjamin S. Lerner and Herman Venter and Dan
Grossman",
title = "Supporting dynamic, third-party code customizations in
{JavaScript} using aspects",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "361--376",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869490",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Long:2010:TDSa,
author = "Brad Long",
title = "Towards the design of a set-based {Java} collections
framework",
journal = j-SIGSOFT,
volume = "35",
number = "5",
pages = "1--7",
month = sep,
year = "2010",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/1838687.1838705",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:15:57 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "The Java Collections Framework (JCF) was introduced as
standard in JDK 1.2. Since then several significant
enhancements have been made including the introduction
of generics and typed collections. One striking design
choice of the Java language designers was the exclusion
of map from the collections hierarchy. This paper looks
at how maps could be incorporated into the Java
collections hierarchy by describing early work on YACL
(Yet Another Collections Library). The intention of
YACL is to provide a suite of set-based collections
classes and operations whilst continuing to be
compatible with the JCF.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Long:2010:TDSb,
author = "Brad Long",
title = "Towards the design of a set-based {Java} collections
framework",
journal = j-SIGSOFT,
volume = "35",
number = "6",
pages = "1--7",
month = nov,
year = "2010",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/1874391.1874401",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:15:58 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "The Java Collections Framework (JCF) was introduced as
standard in JDK 1.2. Since then several significant
enhancements have been made including the introduction
of generics and typed collections. One striking design
choice of the Java language designers was the exclusion
of map from the collections hierarchy. This paper looks
at how maps could be incorporated into the Java
collections hierarchy by describing early work on YACL
(Yet Another Collections Library). The intention of
YACL is to provide a suite of set-based collections
classes and operations whilst continuing to be
compatible with the JCF",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Marino:2010:DSE,
author = "Daniel Marino and Abhayendra Singh and Todd Millstein
and Madanlal Musuvathi and Satish Narayanasamy",
title = "{DRFX}: a simple and efficient memory model for
concurrent programming languages",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "351--362",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806636",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The most intuitive memory model for shared-memory
multithreaded programming is {\em sequential
consistency\/} (SC), but it disallows the use of many
compiler and hardware optimizations thereby impacting
performance. Data-race-free (DRF) models, such as the
proposed C++0x memory model, guarantee SC execution for
datarace-free programs. But these models provide no
guarantee at all for racy programs, compromising the
safety and debuggability of such programs. To address
the safety issue, the Java memory model, which is also
based on the DRF model, provides a weak semantics for
racy executions. However, this semantics is subtle and
complex, making it difficult for programmers to reason
about their programs and for compiler writers to ensure
the correctness of compiler optimizations.\par
We present the DRFx memory model, which is simple for
programmers to understand and use while still
supporting many common optimizations. We introduce a
{\em memory model (MM) exception\/} which can be
signaled to halt execution. If a program executes
without throwing this exception, then DRFx guarantees
that the execution is SC. If a program throws an MM
exception during an execution, then DRFx guarantees
that the program has a data race. We observe that SC
violations can be detected in hardware through a
lightweight form of conflict detection. Furthermore,
our model safely allows aggressive compiler and
hardware optimizations within compiler-designated
program regions. We formalize our memory model, prove
several properties about this model, describe a
compiler and hardware design suitable for DRFx, and
evaluate the performance overhead due to our compiler
and hardware requirements.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "data races; memory model exception; memory models;
sequential consistency; soft fences",
}
@Article{Markstrum:2010:JDP,
author = "Shane Markstrum and Daniel Marino and Matthew Esquivel
and Todd Millstein and Chris Andreae and James Noble",
title = "{JavaCOP}: {Declarative} pluggable types for {Java}",
journal = j-TOPLAS,
volume = "32",
number = "2",
pages = "4:1--4:37",
month = jan,
year = "2010",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/1667048.1667049",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Fri May 21 12:46:35 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Pluggable types enable users to enforce multiple type
systems in one programming language. We have developed
a suite of tools, called the JavaCOP framework, that
allows developers to create pluggable type systems for
Java. JavaCOP provides a simple declarative language in
which program constraints are defined over a program's
abstract syntax tree. The JavaCOP compiler
automatically enforces these constraints on programs
during compilation. The JavaCOP framework also includes
a dataflow analysis API in order to support type
systems which depend on flow-sensitive information.
Finally, JavaCOP includes a novel test framework which
helps users gain confidence in the correctness of their
pluggable type systems. We demonstrate the framework by
discussing a number of pluggable type systems which
have been implemented in JavaCOP in order to detect
errors and enforce strong invariants in programs. These
type systems range from general-purpose checkers, such
as a type system for nonnull references, to
domain-specific ones, such as a checker for conformance
to a library's usage rules.",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
keywords = "JavaCOP; pluggable type systems",
}
@Article{Mateos:2010:ANI,
author = "Cristian Mateos and Alejandro Zunino and Marcelo
Campo",
title = "An approach for non-intrusively adding malleable
fork\slash join parallelism into ordinary {JavaBean}
compliant applications",
journal = j-COMP-LANGS-SYS-STRUCT,
volume = "36",
number = "3",
pages = "288--315",
month = oct,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1016/j.cl.2009.12.003",
ISSN = "1477-8424 (print), 1873-6866 (electronic)",
ISSN-L = "1477-8424",
bibdate = "Thu Mar 8 08:39:20 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/complngs.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/14778424",
URL = "http://www.sciencedirect.com/science/article/pii/S1477842410000035",
acknowledgement = ack-nhfb,
fjournal = "Computer Languages, Systems \& Structures",
journal-URL = "http://www.sciencedirect.com/science/journal/14778424",
}
@Article{Mateos:2010:MJN,
author = "Cristian Mateos and Alejandro Zunino and Marcelo
Campo",
title = "{m-JGRIM}: a novel middleware for {Gridifying Java}
applications into mobile {Grid} services",
journal = j-SPE,
volume = "40",
number = "4",
pages = "331--362",
day = "10",
month = apr,
year = "2010",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.961",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Wed Mar 17 10:16:22 MDT 2010",
bibsource = "http://www.interscience.wiley.com/jpages/0038-0644;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "Feb 3 2010 10:58AM",
}
@Article{McGachey:2010:CJC,
author = "Phil McGachey and Antony L. Hosking and J. Eliot B.
Moss",
title = "Classifying {Java} class transformations for pervasive
virtualized access",
journal = j-SIGPLAN,
volume = "45",
number = "2",
pages = "75--84",
month = feb,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1621607.1621620",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:37:56 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The indirection of object accesses is a common theme
for target domains as diverse as transparent
distribution, persistence, and program instrumentation.
Virtualizing accesses to fields and methods (by
redirecting calls through accessor and indirection
methods) allows interposition of arbitrary code,
extending the functionality of an application beyond
that intended by the original developer.\par
We present class modifications performed by our RuggedJ
transparent distribution platform for standard Java
virtual machines. RuggedJ abstracts over the location
of objects by implementing a single object model for
local and remote objects. However the implementation of
this model is complicated by the presence of native and
system code; classes loaded by Java's bootstrap class
loader can be rewritten only in a limited manner, and
so cannot be modified to conform to RuggedJ's complex
object model. We observe that system code comprises the
majority of a given Java application: an average of
76\% in the applications we study. We consider the
constraints imposed upon pervasive class transformation
within Java, and present a framework for systematically
rewriting arbitrary applications. Our system
accommodates all system classes, allowing both user and
system classes alike to be referenced using a single
object model.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "Java; object model; program transformation",
}
@Article{McIlroy:2010:HJR,
author = "Ross McIlroy and Joe Sventek",
title = "{Hera-JVM}: a runtime system for heterogeneous
multi-core architectures",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "205--222",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869478",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{McLane:2010:UIV,
author = "Jonathan C. McLane and W. Walter Czech and David A.
Yuen and Mike R. Knox and Shuo Wang and Jim B. S.
Greensky and Erik O. D. Sevre",
title = "Ubiquitous interactive visualization of large-scale
simulations in geosciences over a {Java}-based
web-portal",
journal = j-CCPE,
volume = "22",
number = "12",
pages = "1750--1773",
day = "25",
month = aug,
year = "2010",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1532",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:46 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "26 Oct 2009",
}
@Article{Mitchell:2010:FTL,
author = "Nick Mitchell and Edith Schonberg and Gary Sevitsky",
title = "Four Trends Leading to {Java} Runtime Bloat",
journal = j-IEEE-SOFTWARE,
volume = "27",
number = "1",
pages = "56--63",
month = jan # "\slash " # feb,
year = "2010",
CODEN = "IESOEG",
DOI = "https://doi.org/10.1109/MS.2010.7",
ISSN = "0740-7459 (print), 0740-7459 (electronic)",
ISSN-L = "0740-7459",
bibdate = "Thu May 13 07:56:44 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Software",
journal-URL = "http://www.computer.org/portal/web/csdl/magazines/software",
}
@Article{Mytkowicz:2010:EAJ,
author = "Todd Mytkowicz and Amer Diwan and Matthias Hauswirth
and Peter F. Sweeney",
title = "Evaluating the accuracy of {Java} profilers",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "187--197",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806618",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Performance analysts profile their programs to find
methods that are worth optimizing: the 'hot' methods.
This paper shows that four commonly-used Java profilers
({\em xprof , hprof , jprofile, and yourkit\/}) often
disagree on the identity of the hot methods. If two
profilers disagree, at least one must be incorrect.
Thus, there is a good chance that a profiler will
mislead a performance analyst into wasting time
optimizing a cold method with little or no performance
improvement.\par
This paper uses causality analysis to evaluate
profilers and to gain insight into the source of their
incorrectness. It shows that these profilers all
violate a fundamental requirement for sampling based
profilers: to be correct, a sampling-based profiler
must collect samples randomly.\par
We show that a proof-of-concept profiler, which
collects samples randomly, does not suffer from the
above problems. Specifically, we show, using a number
of case studies, that our profiler correctly identifies
methods that are important to optimize; in some cases
other profilers report that these methods are cold and
thus not worth optimizing.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "bias; observer effect; profiling",
}
@Article{Nakaike:2010:LER,
author = "Takuya Nakaike and Maged M. Michael",
title = "Lock elision for read-only critical sections in
{Java}",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "269--278",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806627",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "It is not uncommon in parallel workloads to encounter
shared data structures with read-mostly access
patterns, where operations that update data are
infrequent and most operations are read-only.
Typically, data consistency is guaranteed using mutual
exclusion or read-write locks. The cost of atomic
update of lock variables result in high overheads and
high cache coherence traffic under active sharing, thus
slowing down single thread performance and limiting
scalability.\par
In this paper, we present {\em SOLERO (Software
Optimistic Lock Elision for Read-Only critical
sections)}, a new lock implementation called for
optimizing read-only critical sections in Java based on
sequential locks. SOLERO is compatible with the
conventional lock implementation of Java. However,
unlike the conventional implementation, only critical
sections that may write data or have side effects need
to update lock variables, while read-only critical
sections need only read lock variables without writing
them. Each writing critical section changes the lock
value to a new value. Hence, a read-only critical
section is guaranteed to be consistent if the lock is
free and its value does not change from the beginning
to the end of the read-only critical section.\par
Using Java workloads including SPECjbb2005 and the
HashMap and TreeMap Java classes, we evaluate the
performance impact of applying SOLERO to read-mostly
locks. Our experimental results show performance
improvements across the board, often substantial, in
both single thread speed and scalability over the
conventional lock implementation (mutual exclusion) and
read-write locks. SOLERO improves the performance of
SPECjbb2005 by 3-5\% on single and multiple threads.
The results using the HashMap and TreeMap benchmarks
show that SOLERO outperforms the conventional lock
implementation and read-write locks by substantial
multiples on multi-threads.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "java; just-in-time compiler; lock; lock elision;
monitor; optimization; synchronization",
}
@Article{Namjoshi:2010:NOP,
author = "Manjiri A. Namjoshi and Prasad A. Kulkarni",
title = "Novel online profiling for virtual machines",
journal = j-SIGPLAN,
volume = "45",
number = "7",
pages = "133--144",
month = jul,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1735997.1736016",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:01 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Application {\em profiling\/} is a popular technique
to improve program performance based on its behavior.
{\em Offline\/} profiling, although beneficial for
several applications, fails in cases where prior
program runs may not be feasible, or if changes in
input cause the profile to not match the behavior of
the actual program run. Managed languages, like Java
and C\\#, provide a unique opportunity to overcome the
drawbacks of offline profiling by generating the
profile information online during the current program
run. Indeed, online profiling is extensively used in
current VMs, especially during selective compilation to
improve program {\em startup\/} performance, as well as
during other feedback-directed optimizations.\par
In this paper we illustrate the drawbacks of the
current {\em reactive\/} mechanism of online profiling
during selective compilation. Current VM profiling
mechanisms are slow -- thereby delaying associated
transformations, and estimate future behavior based on
the program's immediate past -- leading to potential
misspeculation that limit the benefits of compilation.
We show that these drawbacks produce an average
performance loss of over 14.5\% on our set of benchmark
programs, over an {\em ideal offline\/} approach that
accurately compiles the hot methods early. We then
propose and evaluate the potential of a novel strategy
to achieve similar performance benefits with an online
profiling approach. Our new online profiling strategy
uses early determination of loop iteration bounds to
predict future method hotness. We explore and present
promising results on the potential, feasibility, and
other issues involved for the successful implementation
of this approach.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "java; online profiling; virtual machines",
}
@Article{Nasseri:2010:CMR,
author = "E. Nasseri and S. Counsell and M. Shepperd",
title = "Class movement and re-location: an empirical study of
{Java} inheritance evolution",
journal = j-J-SYST-SOFTW,
volume = "83",
number = "2",
pages = "303--315",
month = feb,
year = "2010",
CODEN = "JSSODM",
ISSN = "0164-1212 (print), 1873-1228 (electronic)",
ISSN-L = "0164-1212",
bibdate = "Tue Sep 7 07:27:05 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01641212",
acknowledgement = ack-nhfb,
fjournal = "The Journal of systems and software",
journal-URL = "http://www.sciencedirect.com/science/journal/01641212",
}
@Misc{Nourie:2010:REJ,
author = "D. Nourie and M. McCloskey",
title = "Regular Expressions and the {Java} Programming
Language",
howpublished = "Web report",
year = "2010",
bibdate = "Wed Sep 09 10:06:46 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/string-matching.bib",
URL = "http://java.sun.com/developer/technicalArticles/releases/1.4regex",
acknowledgement = ack-nhfb,
}
@Article{Odaira:2010:ERT,
author = "Rei Odaira and Kazunori Ogata and Kiyokuni Kawachiya
and Tamiya Onodera and Toshio Nakatani",
title = "Efficient runtime tracking of allocation sites in
{Java}",
journal = j-SIGPLAN,
volume = "45",
number = "7",
pages = "109--120",
month = jul,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1837854.1736014",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:01 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Tracking the allocation site of every object at
runtime is useful for reliable, optimized Java. To be
used in production environments, the tracking must be
accurate with minimal speed loss. Previous approaches
suffer from performance degradation due to the
additional field added to each object or track the
allocation sites only probabilistically. We propose two
novel approaches to track the allocation sites of every
object in Java with only a 1.0\% slow-down on average.
Our first approach, the {\em
Allocation-Site-as-a-Hash-code (ASH) Tracker}, encodes
the allocation site ID of an object into the hash code
field of its header by regarding the ID as part of the
hash code. ASH Tracker avoids an excessive increase in
hash code collisions by dynamically shrinking the
bit-length of the ID as more and more objects are
allocated at that site. For those Java VMs without the
hash code field, our second approach, the {\em
Allocation-Site-via-a-Class-pointer (ASC) Tracker},
makes the class pointer field in an object header refer
to the allocation site structure of the object, which
in turn points to the actual class structure. ASC
Tracker mitigates the indirection overhead by
constant-class-field duplication and allocation-site
equality checks. While a previous approach of adding a
4-byte field caused up to 14.4\% and an average 5\%
slowdown, both ASH and ASC Trackers incur at most a
2.0\% and an average 1.0\% loss. We demonstrate the
usefulness of our low-overhead trackers by an
allocation-site-aware memory leak detector and
allocation-site-based pretenuring in generational GC.
Our pretenuring achieved on average 1.8\% and up to
11.8\% speedups in SPECjvm2008.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "allocation site; hash code; memory allocation",
}
@Article{Ogata:2010:SJN,
author = "Kazunori Ogata and Dai Mikurube and Kiyokuni Kawachiya
and Scott Trent and Tamiya Onodera",
title = "A study of {Java}'s non-{Java} memory",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "191--204",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869477",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Pironti:2010:PCJ,
author = "Alfredo Pironti and Riccardo Sisto",
title = "Provably correct {Java} implementations of {Spi
Calculus} security protocols specifications",
journal = j-COMPUT-SECUR,
volume = "29",
number = "3",
pages = "302--314",
month = may,
year = "2010",
CODEN = "CPSEDU",
ISSN = "0167-4048 (print), 1872-6208 (electronic)",
ISSN-L = "0167-4048",
bibdate = "Mon Sep 23 09:46:20 MDT 2019",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computsecur2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "https://www.sciencedirect.com/science/article/pii/S0167404809000832",
acknowledgement = ack-nhfb,
fjournal = "Computers \& Security",
journal-URL = "https://www.sciencedirect.com/science/journal/01674048",
}
@Article{Pitter:2010:RTJ,
author = "Christof Pitter and Martin Schoeberl",
title = "A real-time {Java} chip-multiprocessor",
journal = j-TECS,
volume = "10",
number = "1",
pages = "9:1--9:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814548",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Chip-multiprocessors are an emerging trend for
embedded systems. In this article, we introduce a
real-time Java multiprocessor called JopCMP. It is a
symmetric shared-memory multiprocessor, and consists of
up to eight Java Optimized Processor (JOP) cores, an
arbitration control device, and a shared memory. All
components are interconnected via a system on chip bus.
The arbiter synchronizes the access of multiple CPUs to
the shared main memory. In this article, three
different arbitration policies are presented,
evaluated, and compared with respect to their real-time
and average-case performance: a fixed priority, a
fair-based, and a time-sliced arbiter.\par
Tasks running on different CPUs of a
chip-multiprocessor (CMP) influence each others'
execution times when accessing a shared memory.
Therefore, the system needs an arbiter that is able to
limit the worst-case execution time of a task running
on a CPU, even though tasks executing simultaneously on
other CPUs access the main memory. Our research shows
that timing analysis is in fact possible for
homogeneous multiprocessor systems with a shared
memory. The timing analysis of tasks, executing on the
CMP using time-sliced memory arbitration, leads to
viable worst-case execution time bounds.\par
The time-sliced arbiter divides the memory access time
into equal time slots, one time slot for each CPU. This
memory arbitration scheme allows for a calculation of
upper bounds of Java application worst-case execution
times, depending on the number of CPUs, the time slot
size, and the memory access time. Examples of
worst-case execution time calculation are presented,
and the analyzed results of a real-world application
task are compared to measured execution time results.
Finally, we evaluate the tradeoffs when using a
time-predictable solution compared to using
average-case optimized chip-multiprocessors, applying
three different benchmarks. These experiments are
carried out by executing the programs on the CMP
prototype.",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "Java processor; multiprocessor; Real-time system;
shared memory; worst-case execution time",
}
@Article{Pizlo:2010:SFT,
author = "Filip Pizlo and Lukasz Ziarek and Petr Maj and Antony
L. Hosking and Ethan Blanton and Jan Vitek",
title = "{SCHISM}: fragmentation-tolerant real-time garbage
collection",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "146--159",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806615",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Managed languages such as Java and C\# are being
considered for use in hard real-time systems. A hurdle
to their widespread adoption is the lack of garbage
collection algorithms that offer predictable
space-and-time performance in the face of
fragmentation. We introduce SCHISM/CMR, a new
concurrent and real-time garbage collector that is
fragmentation tolerant and guarantees time-and-space
worst-case bounds while providing good throughput.
SCHISM/CMR combines mark-region collection of
fragmented objects and arrays (arraylets) with separate
replication-copying collection of immutable arraylet
spines, so as to cope with external fragmentation when
running in small heaps. We present an implementation of
SCHISM/CMR in the Fiji VM, a high-performance Java
virtual machine for mission-critical systems, along
with a thorough experimental evaluation on a wide
variety of architectures, including server-class and
embedded systems. The results show that SCHISM/CMR
tolerates fragmentation better than previous schemes,
with a much more acceptable throughput penalty.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "fragmentation; mark-region; mark-sweep; real-time;
replication-copying",
}
@Article{Richards:2010:ADB,
author = "Gregor Richards and Sylvain Lebresne and Brian Burg
and Jan Vitek",
title = "An analysis of the dynamic behavior of {JavaScript}
programs",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "1--12",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806598",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The JavaScript programming language is widely used for
web programming and, increasingly, for general purpose
computing. As such, improving the correctness, security
and performance of JavaScript applications has been the
driving force for research in type systems, static
analysis and compiler techniques for this language.
Many of these techniques aim to reign in some of the
most dynamic features of the language, yet little seems
to be known about how programmers actually utilize the
language or these features. In this paper we perform an
empirical study of the dynamic behavior of a corpus of
widely-used JavaScript programs, and analyze how and
why the dynamic features are used. We report on the
degree of dynamism that is exhibited by these
JavaScript programs and compare that with assumptions
commonly made in the literature and accepted industry
benchmark suites.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "dynamic behavior; dynamic metrics; execution tracing;
javascript; program analysis",
}
@Article{Sartor:2010:ZRD,
author = "Jennifer B. Sartor and Stephen M. Blackburn and Daniel
Frampton and Martin Hirzel and Kathryn S. McKinley",
title = "{Z}-rays: divide arrays and conquer speed and
flexibility",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "471--482",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806649",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Arrays are the ubiquitous organization for indexed
data. Throughout programming language evolution,
implementations have laid out arrays contiguously in
memory. This layout is problematic in space and time.
It causes heap fragmentation, garbage collection pauses
in proportion to array size, and wasted memory for
sparse and over-provisioned arrays. Because of array
virtualization in managed languages, an array layout
that consists of indirection pointers to fixed-size
discontiguous memory blocks can mitigate these problems
transparently. This design however incurs significant
overhead, but is justified when real-time deadlines and
space constraints trump performance.\par
This paper proposes {\em z-rays}, a discontiguous array
design with flexibility and efficiency. A z-ray has a
spine with indirection pointers to fixed-size memory
blocks called {\em arraylets}, and uses five
optimizations: (1) inlining the first N array bytes
into the spine, (2) lazy allocation, (3) zero
compression, (4) fast array copy, and (5) arraylet
copy-on-write. Whereas discontiguous arrays in prior
work improve responsiveness and space efficiency,
z-rays combine time efficiency and flexibility. On
average, the best z-ray configuration performs within
12.7\% of an unmodified Java Virtual Machine on 19
benchmarks, whereas previous designs have {\em two to
three times\/} higher overheads. Furthermore, language
implementers can configure z-ray optimizations for
various design goals. This combination of performance
and flexibility creates a better building block for
past and future array optimization.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "arraylets; arrays; compression; heap; z-rays",
}
@Article{Schmidt:2010:ERA,
author = "Richard B. Schmidt",
title = "Experience report: {Ada} \& {Java} integration in the
{FAA}'s {ERAM SWIM} program",
journal = j-SIGADA-LETTERS,
volume = "30",
number = "3",
pages = "33--34",
month = dec,
year = "2010",
CODEN = "AALEE5",
DOI = "https://doi.org/10.1145/1879097.1879075",
ISSN = "1094-3641 (print), 1557-9476 (electronic)",
ISSN-L = "1094-3641",
bibdate = "Mon Jan 10 13:57:43 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGAda Ada Letters",
}
@Article{Schoeberl:2010:NRT,
author = "Martin Schoeberl and Wolfgang Puffitsch",
title = "Nonblocking real-time garbage collection",
journal = j-TECS,
volume = "10",
number = "1",
pages = "6:1--6:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814545",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "A real-time garbage collector has to fulfill two basic
properties: ensure that programs with bounded
allocation rates do not run out of memory and provide
short blocking times. Even for incremental garbage
collectors, two major sources of blocking exist,
namely, root scanning and heap compaction. Finding root
nodes of an object graph is an integral part of tracing
garbage collectors and cannot be circumvented. Heap
compaction is necessary to avoid probably unbounded
heap fragmentation, which in turn would lead to
unacceptably high memory consumption. In this article,
we propose solutions to both issues.\par
Thread stacks are local to a thread, and root scanning,
therefore, only needs to be atomic with respect to the
thread whose stack is scanned. This fact can be
utilized by either blocking only the thread whose stack
is scanned, or by delegating the responsibility for
root scanning to the application threads. The latter
solution eliminates blocking due to root scanning
completely. The impact of this solution on the
execution time of a garbage collector is shown for two
different variants of such a root scanning
algorithm.\par
During heap compaction, objects are copied. Copying is
usually performed atomically to avoid interference with
application threads, which could render the state of an
object inconsistent. Copying of large objects and
especially large arrays introduces long blocking times
that are unacceptable for real-time systems. In this
article, an interruptible copy unit is presented that
implements nonblocking object copy. The unit can be
interrupted after a single word move.\par
We evaluate a real-time garbage collector that uses the
proposed techniques on a Java processor. With this
garbage collector, it is possible to run high-priority
hard real-time tasks at 10 kHz parallel to the garbage
collection task on a 100 MHz system.",
acknowledgement = ack-nhfb,
articleno = "6",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "Garbage collection; nonblocking copying; real-time;
root scanning",
}
@Article{Schoeberl:2010:WCE,
author = "Martin Schoeberl and Wolfgang Puffitsch and Rasmus
Ulslev Pedersen and Benedikt Huber",
title = "Worst-case execution time analysis for a {Java}
processor",
journal = j-SPE,
volume = "40",
number = "6",
pages = "507--542",
month = may,
year = "2010",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.968",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Tue Jun 21 17:09:46 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "6 Apr 2010",
}
@Article{Schultz:2010:WAJ,
author = "Christopher Schultz",
title = "{Web} applications with {Java\slash JSP}",
journal = j-LINUX-J,
volume = "2010",
number = "197",
pages = "4:1--4:??",
month = sep,
year = "2010",
CODEN = "LIJOFX",
ISSN = "1075-3583 (print), 1938-3827 (electronic)",
ISSN-L = "1075-3583",
bibdate = "Tue Nov 23 11:41:55 MST 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "Linux Journal",
journal-URL = "http://portal.acm.org/citation.cfm?id=J508",
}
@Article{Sciampacone:2010:EMS,
author = "R. A. Sciampacone and V. Sundaresan and D. Maier and
T. Gray-Donald",
title = "Exploitation of multicore systems in a {Java} virtual
machine",
journal = j-IBM-JRD,
volume = "54",
number = "5",
pages = "1:1--1:11",
month = "????",
year = "2010",
CODEN = "IBMJAE",
DOI = "https://doi.org/10.1147/JRD.2010.2057911",
ISSN = "0018-8646 (print), 2151-8556 (electronic)",
ISSN-L = "0018-8646",
bibdate = "Sun Feb 20 14:29:19 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.research.ibm.com/journal/",
acknowledgement = ack-nhfb,
fjournal = "IBM Journal of Research and Development",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
}
@Article{Servetto:2010:MMC,
author = "Marco Servetto and Elena Zucca",
title = "{MetaFJig}: a meta-circular composition language for
{Java}-like classes",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "464--483",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869498",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Siebert:2010:CPR,
author = "Fridtjof Siebert",
title = "Concurrent, parallel, real-time garbage-collection",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "11--20",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1837855.1806654",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "With the current developments in CPU implementations,
it becomes obvious that ever more parallel multicore
systems will be used even in embedded controllers that
require real-time guarantees. When garbage collection
is used in these systems, parallel and concurrent
garbage collection brings important performance
advantages in the average case. In a real-time system,
however, guarantees on the GC's performance in the
worst case are required.\par
This paper explains how the single-CPU real-time GC of
the Java implementation JamaicaVM was changed to make
it a hard real-time garbage collector that is parallel
and concurrent. Parallel means that an arbitrary number
of CPUs may perform GC work in parallel, while
concurrent means that the GC work can be performed
concurrently to the application code without
pre-empting the application. In addition, the single
units of work that this garbage collector has to
perform are very small and uniform and the total amount
of GC work is bounded by a function of the heap size,
such that it becomes possible for any application that
has a bounded amount of reachable memory to run the GC
work such that sufficient GC progress can be ensured
for the application never to run out of heap space.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "concurrent; garbage collection; java; multicore;
parallel; real-time",
}
@Article{Singer:2010:EGC,
author = "Jeremy Singer and Richard E. Jones and Gavin Brown and
Mikel Luj{\'a}n",
title = "The economics of garbage collection",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "103--112",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806651.1806669",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "This paper argues that economic theory can improve our
understanding of memory management. We introduce the
{\em allocation curve}, as an analogue of the demand
curve from microeconomics. An allocation curve for a
program characterises how the amount of garbage
collection activity required during its execution
varies in relation to the heap size associated with
that program. The standard treatment of microeconomic
demand curves (shifts and elasticity) can be applied
directly and intuitively to our new allocation curves.
As an application of this new theory, we show how {\em
allocation elasticity\/} can be used to control the
heap growth rate for variable sized heaps in Jikes
RVM.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "allocation curve; elasticity; garbage collection;
java; memory management; microeconomics",
}
@Article{Smans:2010:AVJ,
author = "Jan Smans and Bart Jacobs and Frank Piessens and
Wolfram Schulte",
title = "Automatic verification of {Java} programs with dynamic
frames",
journal = j-FORM-ASP-COMPUT,
volume = "22",
number = "3--4",
pages = "423--457",
month = may,
year = "2010",
CODEN = "FACME5",
DOI = "https://doi.org/10.1007/s00165-010-0148-1",
ISSN = "0934-5043 (print), 1433-299X (electronic)",
ISSN-L = "0934-5043",
bibdate = "Tue Mar 17 20:58:35 MDT 2015",
bibsource = "http://www.math.utah.edu/pub/tex/bib/formaspcomput.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://link.springer.com/article/10.1007/s00165-010-0148-1",
acknowledgement = ack-nhfb,
fjournal = "Formal Aspects of Computing",
journal-URL = "http://link.springer.com/journal/165",
}
@Article{Spoto:2010:MSL,
author = "Fausto Spoto and {\'E}tienne Payet",
title = "Magic-sets for localised analysis of {Java} bytecode",
journal = j-HIGHER-ORDER-SYMB-COMPUT,
volume = "23",
number = "1",
pages = "29--86",
month = mar,
year = "2010",
CODEN = "LSCOEX",
ISSN = "1388-3690 (print), 2212-0793 (electronic)",
ISSN-L = "1388-3690",
bibdate = "Tue Sep 6 16:06:25 MDT 2011",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1388-3690&volume=23&issue=1;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=1388-3690&volume=23&issue=1&spage=29",
acknowledgement = ack-nhfb,
fjournal = "Higher-Order and Symbolic Computation",
}
@Article{Spoto:2010:TAJ,
author = "Fausto Spoto and Fred Mesnard and {\'E}tienne Payet",
title = "A termination analyzer for {Java} bytecode based on
path-length",
journal = j-TOPLAS,
volume = "32",
number = "3",
pages = "8:1--8:70",
month = mar,
year = "2010",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/1709093.1709095",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Fri May 21 12:46:48 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "It is important to prove that supposedly terminating
programs actually terminate, particularly if those
programs must be run on critical systems or downloaded
into a client such as a mobile phone. Although
termination of computer programs is generally
undecidable, it is possible and useful to prove
termination of a large, nontrivial subset of the
terminating programs. In this article, we present our
termination analyzer for sequential Java bytecode,
based on a program property called {\em path-length}.
We describe the analyses which are needed before the
path-length can be computed such as sharing, cyclicity,
and aliasing. Then we formally define the path-length
analysis and prove it correct with respect to a
reference denotational semantics of the bytecode. We
show that a constraint logic program {\em P\/}$_{{\em
CLP \/ }}$ can be built from the result of the
path-length analysis of a Java bytecode program {\em
P\/} and formally prove that if {\em P\/}$_{{\em CLP \/
}}$ terminates, then {\em P\/} also terminates. Hence a
termination prover for constraint logic programs can be
applied to prove the termination of {\em P}. We
conclude with some discussion of the possibilities and
limitations of our approach. Ours is the first existing
termination analyzer for Java bytecode dealing with any
kind of data structures dynamically allocated on the
heap and which does not require any help or annotation
on the part of the user.",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
keywords = "Abstract interpretation; Java; Java bytecode;
termination analysis",
}
@Article{Spring:2010:RAI,
author = "Jesper Honig Spring and Filip Pizlo and Jean Privat
and Rachid Guerraoui and Jan Vitek",
title = "{Reflexes}: {Abstractions} for integrating highly
responsive tasks into {Java} applications",
journal = j-TECS,
volume = "10",
number = "1",
pages = "4:1--4:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814543",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Achieving submillisecond response times in a managed
language environment such as Java or C\# requires
overcoming significant challenges. In this article, we
propose Reflexes, a programming model and runtime
system infrastructure that lets developers seamlessly
mix highly responsive tasks and timing-oblivious Java
applications. Thus enabling gradual addition of
real-time features, to a non-real-time application
without having to resort to recoding the real-time
parts in a different language such as C or Ada.
Experiments with the Reflex prototype implementation
show that it is possible to run a real-time task with a
period of 45$ \mu $ s with an accuracy of 99.996\%
(only 0.001\% worse than the corresponding C
implementation) in the presence of garbage collection
and heavy load ordinary Java threads.",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "Java virtual machine; memory management; Real-time
systems",
}
@Book{Stark:2010:BIA,
author = "Jonathan Stark",
title = "Building {iPhone} apps with {HTML}, {CSS}, and
{JavaScript}: Making {App Store} apps without
{Objective-C} or {Cocoa}",
publisher = pub-ORA-MEDIA,
address = pub-ORA-MEDIA:adr,
pages = "xv + 166",
year = "2010",
ISBN = "1-4493-8023-9, 0-596-80578-0",
ISBN-13 = "978-1-4493-8023-6, 978-0-596-80578-4",
LCCN = "????",
bibdate = "Wed Jul 28 09:12:55 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.bibsys.no:2100/BIBSYS",
acknowledgement = ack-nhfb,
subject = "Cascading Style Sheets; HTML (document markup
language); computer software; development; iPhone
(Smartphone); programming; JavaScript (computer program
language)",
}
@Book{Stefanov:2010:JP,
author = "Stoyan Stefanov",
title = "{JavaScript} patterns",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xvi + 216",
year = "2010",
ISBN = "1-4493-9911-8 (paperback), 0-596-80675-2 (paperback)",
ISBN-13 = "978-1-4493-9911-5 (paperback), 978-0-596-80675-0
(paperback)",
LCCN = "QA76.73.J39 S734 2010",
bibdate = "Wed Apr 27 11:12:26 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
melvyl.cdlib.org:210/CDL90",
acknowledgement = ack-nhfb,
subject = "JavaScript (Computer program language); Software
patterns; Web site development",
}
@Article{Steimann:2010:TMI,
author = "Friedrich Steimann and Thomas Pawlitzki and Sven Apel
and Christian K{\"a}stner",
title = "Types and modularity for implicit invocation with
implicit announcement",
journal = j-TOSEM,
volume = "20",
number = "1",
pages = "1:1--1:??",
month = jun,
year = "2010",
CODEN = "ATSMER",
DOI = "https://doi.org/10.1145/1767751.1767752",
ISSN = "1049-331X (print), 1557-7392 (electronic)",
ISSN-L = "1049-331X",
bibdate = "Tue Jul 6 16:17:49 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/tosem/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Through implicit invocation, procedures are called
without explicitly referencing them. Implicit
announcement adds to this implicitness by not only
keeping implicit which procedures are called, but also
where or when --- under implicit invocation with
implicit announcement, the call site contains no signs
of that, or what it calls. Recently, aspect-oriented
programming has popularized implicit invocation with
implicit announcement as a possibility to separate
concerns that lead to interwoven code if conventional
programming techniques are used. However, as has been
noted elsewhere, as currently implemented it
establishes strong implicit dependencies between
components, hampering independent software development
and evolution. To address this problem, we present a
type-based modularization of implicit invocation with
implicit announcement that is inspired by how
interfaces and exceptions are realized in Java. By
extending an existing compiler and by rewriting several
programs to make use of our proposed language
constructs, we found that the imposed declaration
clutter tends to be moderate; in particular, we found
that, for general applications of implicit invocation
with implicit announcement, fears that programs
utilizing our form of modularization become
unreasonably verbose are unjustified.",
acknowledgement = ack-nhfb,
articleno = "1",
fjournal = "ACM Transactions on Software Engineering and
Methodology",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J790",
keywords = "aspect-oriented programming; event-driven programming;
Implicit invocation; modularity; publish/subscribe;
typing",
}
@Article{Sutherland:2010:CTC,
author = "Dean F. Sutherland and William L. Scherlis",
title = "Composable thread coloring",
journal = j-SIGPLAN,
volume = "45",
number = "5",
pages = "233--244",
month = may,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1693453.1693485",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:39:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "This paper introduces the language-independent concept
of ``thread usage policy.'' Many multi-threaded
software systems contain policies that regulate
associations among threads, executable code, and
potentially shared state. A system, for example, may
constrain which threads are permitted to execute
particular code segments, usually as a means to
constrain those threads from accessing or writing
particular elements of state. These policies ensure
properties such as state confinement or reader/writer
constraints, often without recourse to locking or
transaction discipline.\par
Our approach allows developers to concisely document
their thread usage policies in a manner that enables
the use of sound scalable analysis to assess
consistency of policy and as-written code. This paper
identifies the key semantic concepts of our thread
coloring language and illustrates how to use its
succinct source-level annotations to express models of
thread usage policies, following established annotation
conventions for Java.\par
We have built a prototype static analysis tool,
implemented as an integrated development environment
plug-in (for the Eclipse IDE), that notifies developers
of discrepancies between policy annotations and
as-written code. Our analysis technique uses several
underlying algorithms based on abstract interpretation,
call-graphs, and type inference. The resulting overall
analysis is both sound and composable. We have used
this prototype analysis tool in case studies to model
and analyze more than a million lines of code.\par
Our validation process included field trials on a wide
variety of complex large-scale production code selected
by the host organizations. Our in-field experience led
us to focus on potential adoptability by real-world
developers. We have developed techniques that can
reduce annotation density to less than one line per
thousand lines of code (KLOC). In addition, the
prototype analysis tool supports an incremental and
iterative approach to modeling and analysis. This
approach enabled field trial partners to directly
target areas of greatest concern and to achieve useful
results within a few hours.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "annotation; Java; keywords: state consistency;
multicore; race conditions; state confinement; thread
policy",
}
@Article{Tatsubori:2010:EJT,
author = "Michiaki Tatsubori and Akihiko Tozawa and Toyotaro
Suzumura and Scott Trent and Tamiya Onodera",
title = "Evaluation of a just-in-time compiler retrofitted for
{PHP}",
journal = j-SIGPLAN,
volume = "45",
number = "7",
pages = "121--132",
month = jul,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1735997.1736015",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:01 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Programmers who develop Web applications often use
dynamic scripting languages such as Perl, PHP, Python,
and Ruby. For general purpose scripting language usage,
interpreter-based implementations are efficient and
popular but the server-side usage for Web application
development implies an opportunity to significantly
enhance Web server throughput. This paper summarizes a
study of the optimization of PHP script processing. We
developed a PHP processor, P9, by adapting an existing
production-quality just-in-time (JIT) compiler for a
Java virtual machine, for which optimization
technologies have been well-established, especially for
server-side application. This paper describes and
contrasts microbenchmarks and SPECweb2005 benchmark
results for a well-tuned configuration of a traditional
PHP interpreter and our JIT compiler-based
implementation, P9. Experimental results with the
microbenchmarks show 2.5-9.5x advantage with P9, and
the SPECweb2005 measurements show about 20-30\%
improvements. These results show that the acceleration
of dynamic scripting language processing does matter in
a realistic Web application server environment. CPU
usage profiling shows our simple JIT compiler
introduction reduces the PHP core runtime overhead from
45\% to 13\% for a SPECweb2005 scenario, implying that
further improvements of dynamic compilers would provide
little additional return unless other major overheads
such as heavy memory copy between the language runtime
and Web server frontend are reduced.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "dynamic scripting languages; just-in-time compiler;
php",
}
@Article{Teng:2010:TPA,
author = "Q. M. Teng and H. C. Wang and Z. Xiao and P. F.
Sweeney and E. Duesterwald",
title = "{THOR}: a performance analysis tool for {Java}
applications running on multicore systems",
journal = j-IBM-JRD,
volume = "54",
number = "5",
pages = "4:1--4:17",
month = "????",
year = "2010",
CODEN = "IBMJAE",
DOI = "https://doi.org/10.1147/JRD.2010.2058481",
ISSN = "0018-8646 (print), 2151-8556 (electronic)",
ISSN-L = "0018-8646",
bibdate = "Sun Feb 20 14:29:19 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.research.ibm.com/journal/",
acknowledgement = ack-nhfb,
fjournal = "IBM Journal of Research and Development",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
}
@Article{Titzer:2010:ICR,
author = "Ben L. Titzer and Thomas W{\"u}rthinger and Doug Simon
and Marcelo Cintra",
title = "Improving compiler-runtime separation with {XIR}",
journal = j-SIGPLAN,
volume = "45",
number = "7",
pages = "39--50",
month = jul,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1837854.1736005",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:01 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Intense research on virtual machines has highlighted
the need for flexible software architectures that allow
quick evaluation of new design and implementation
techniques. The interface between the compiler and
runtime system is a principal factor in the flexibility
of both components and is critical to enabling rapid
pursuit of new optimizations and features. Although
many virtual machines have demonstrated modularity for
many components, significant dependencies often remain
between the compiler and the runtime system components
such as the object model and memory management system.
This paper addresses this challenge with a carefully
designed strict compiler-runtime interface and the XIR
language. Instead of the compiler backend lowering
object operations to machine operations using
hard-wired runtime-specific logic, XIR allows the
runtime system to implement this logic, simultaneously
simplifying and separating the backend from
runtime-system details. In this paper we describe the
design and implementation of this compiler-runtime
interface and the XIR language in the C1X dynamic
compiler, a port of the HotSpotTM Client compiler. Our
results show a significant reduction in backend
complexity with XIR and an overall reduction in the
compiler-runtime interface complexity while still
generating comparable quality code with only minor
impact on compilation time.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "compilers; intermediate representations; java; JIT;
lowering; object model; register allocation; runtime
interface; software architecture; virtual machines",
}
@Article{Torlak:2010:MCA,
author = "Emina Torlak and Mandana Vaziri and Julian Dolby",
title = "{MemSAT}: checking axiomatic specifications of memory
models",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "341--350",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806635",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Memory models are hard to reason about due to their
complexity, which stems from the need to strike a
balance between ease-of-programming and allowing
compiler and hardware optimizations. In this paper, we
present an automated tool, MemSAT, that helps in
debugging and reasoning about memory models. Given an
axiomatic specification of a memory model and a
multi-threaded test program containing assertions,
MemSAT outputs a trace of the program in which both the
assertions and the memory model axioms are satisfied,
if one can be found. The tool is fully automatic and is
based on a SAT solver. If it cannot find a trace, it
outputs a minimal subset of the memory model and
program constraints that are unsatisfiable. We used
MemSAT to check several existing memory models against
their published test cases, including the current Java
Memory Model by Manson et al. and a revised version of
it by Sevcik and Aspinall. We found subtle
discrepancies between what was expected and the actual
results of test programs.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "axiomatic specifications; bounded model checking;
memory models; sat",
}
@Article{Ugawa:2010:IRB,
author = "Tomoharu Ugawa and Hideya Iwasaki and Taiichi Yuasa",
title = "Improved replication-based incremental garbage
collection for embedded systems",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "73--82",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806651.1806664",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "We have developed an incremental compacting garbage
collector for embedded Java systems. The collector
divides the heap into equal sized pages and uses the
segregated free lists for fast allocation. Collectors
that have such a heap layout have a problem of
fragmentation in allocating objects larger than the
page size. We solve this problem by using the
replication-based incremental compaction. The compactor
evacuates all objects in one area, the evacuation area,
of the heap, thereby creating a large chunk of free
space. We developed an algorithm for choosing the
evacuation area that effectively cures fragmentation.
The compactor does not use any read-barriers. Instead,
it uses a technique similar to the replication-based
incremental copying collection. This needs forwarding
pointers for all evacuated objects. Rather than
introducing an extra field for each object, we use a
hash table to store forwarding pointers.\par
Evaluation of this garbage collector implemented in
Sun's J2ME Java Virtual Machine showed that all the
benchmarks used were able to run without memory
starvation using the heap sizes of only 151\%-286\% of
the maximum amount of live data plus 8 KB of the hash
table. Experiments on a desktop computer, though it is
not a platform for embedded systems, showed that the
maximum pause time was shorter than 200 &\#956;s, which
was comparable to that of our implementation of the
snapshot-at-the-beginning collector without compaction.
On an ARM processor, the runtime overhead was 1\%-16\%
with 8.0\% on average compared to the mark-sweep
collector.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "compaction; embedded systems; fragmentation; garbage
collection; real-time garbage collection",
}
@Article{Upadhyaya:2010:UDS,
author = "Gautam Upadhyaya and Samuel P. Midkiff and Vijay S.
Pai",
title = "Using data structure knowledge for efficient lock
generation and strong atomicity",
journal = j-SIGPLAN,
volume = "45",
number = "5",
pages = "281--292",
month = may,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1693453.1693490",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:39:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "To achieve high-performance on multicore systems,
sharedmemory parallel languages must efficiently
implement atomic operations. The commonly used and
studied paradigms for atomicity are fine-grained
locking, which is both difficult to program and
error-prone; optimistic software transactions, which
require substantial overhead to detect and recover from
atomicity violations; and compiler-generation of locks
from programmer-specified atomic sections, which leads
to serialization whenever imprecise pointer analysis
suggests the mere possibility of a conflicting
operation. This paper presents a new strategy for
compiler-generated locking that uses data structure
knowledge to facilitate more precise alias and lock
generation analyses and reduce unnecessary
serialization. Implementing and evaluating these ideas
in the Java language shows that the new strategy
achieves eight-thread speedups of 0.83 to 5.9 for the
five STAMP benchmarks studied, outperforming software
transactions on all but one benchmark, and nearly
matching programmer-specified fine-grained locks on all
but one benchmark. The results also indicate that
compiler knowledge of data structures improves the
effectiveness of compiler analysis, boosting
eight-thread performance by up to 300\%. Further, the
new analysis allows for software support of strong
atomicity with less than 1\% overhead for two
benchmarks and less than 20\% for three others. The
strategy also nearly matches the performance of
programmer-specified fine-grained locks for the
SPECjbb2000 benchmark, which has traditionally not been
amenable to static analyses.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "automatic lock generation; parallel programming;
transactional memory",
}
@Article{VanCutsem:2010:PDP,
author = "Tom {Van Cutsem} and Mark S. Miller",
title = "Proxies: design principles for robust object-oriented
intercession {APIs}",
journal = j-SIGPLAN,
volume = "45",
number = "12",
pages = "59--72",
month = dec,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1899661.1869638",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Dec 15 10:25:15 MST 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Proxies are a powerful approach to implement
meta-objects in object-oriented languages without
having to resort to metacircular interpretation. We
introduce such a meta-level API based on proxies for
Javascript. We simultaneously introduce a set of design
principles that characterize such APIs in general, and
compare similar APIs of other languages in terms of
these principles. We highlight how principled
proxy-based APIs improve code robustness by avoiding
interference between base and meta-level code that
occur in more common reflective intercession
mechanisms.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{VanderHart:2010:PC,
author = "Luke VanderHart and Stuart Sierra",
title = "Practical {Clojure}",
publisher = pub-APRESS,
address = pub-APRESS:adr,
pages = "xvi + 210",
year = "2010",
ISBN = "1-4302-7231-7, 1-4302-7230-9 (e-book)",
ISBN-13 = "978-1-4302-7231-1, 978-1-4302-7230-4 (e-book)",
LCCN = "????",
bibdate = "Fri Nov 23 10:33:38 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
series = "The expert's voice in open source",
acknowledgement = ack-nhfb,
subject = "Java virtual machine; Clojure (Computer program
language)",
}
@Book{VanLoan:2010:ITC,
author = "Charles F. {Van Loan} and K.-Y. Daisy Fan",
title = "Insight through computing: a {MATLAB} introduction to
computational science and engineering",
publisher = pub-SIAM,
address = pub-SIAM:adr,
pages = "xviii + 434",
year = "2010",
ISBN = "0-89871-691-8",
ISBN-13 = "978-0-89871-691-7",
LCCN = "QA297 .V25 2010",
bibdate = "Fri Nov 16 10:03:00 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/matlab.bib;
http://www.math.utah.edu/pub/tex/bib/numana2010.bib;
z3950.loc.gov:7090/Voyager",
URL = "http://www.loc.gov/catdir/enhancements/fy1007/2009030277-b.html;
http://www.loc.gov/catdir/enhancements/fy1007/2009030277-d.html;
http://www.loc.gov/catdir/enhancements/fy1007/2009030277-t.html",
acknowledgement = ack-nhfb,
subject = "Numerical analysis; Data processing; Science; Computer
simulation; Engineering mathematics; MATLAB",
tableofcontents = "Preface \\
MATLAB glossary \\
Programming topics \\
Software \\
1. From formula to program \\
2. Limits and error \\
3. Approximation with fractions \\
4. The discrete versus the continuous \\
5. Abstraction \\
6. Randomness \\
7. The second dimension \\
8. Reordering \\
9. Search \\
10. Points, polygons and circles \\
11. Text file processing \\
12. The matrix: part II \\
13. Acoustic file processing \\
14. Divide and conquer \\
15. Optimization \\
Appendix A. Refined graphics \\
Appendix B. Mathematical facts \\
Appendix C. MATLAB, Java, and C \\
Appendix D. Exit interview \\
Index",
}
@Article{VanNieuwpoort:2010:SHL,
author = "Rob V. {Van Nieuwpoort} and Gosia Wrzesi{\'n}ska and
Ceriel J. H. Jacobs and Henri E. Bal",
title = "{Satin}: a high-level and efficient grid programming
model",
journal = j-TOPLAS,
volume = "32",
number = "3",
pages = "9:1--9:39",
month = mar,
year = "2010",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/1709093.1709096",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Fri May 21 12:46:48 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Computational grids have an enormous potential to
provide compute power. However, this power remains
largely unexploited today for most applications, except
trivially parallel programs. Developing parallel grid
applications simply is too difficult. Grids introduce
several problems not encountered before, mainly due to
the highly heterogeneous and dynamic computing and
networking environment. Furthermore, failures occur
frequently, and resources may be claimed by
higher-priority jobs at any time.\par
In this article, we solve these problems for an
important class of applications: divide-and-conquer. We
introduce a system called Satin that simplifies the
development of parallel grid applications by providing
a rich high-level programming model that completely
hides communication. All grid issues are transparently
handled in the runtime system, not by the programmer.
Satin's programming model is based on Java, features
spawn-sync primitives and shared objects, and uses
asynchronous exceptions and an abort mechanism to
support speculative parallelism.\par
To allow an efficient implementation, Satin
consistently exploits the idea that grids are
hierarchically structured. Dynamic load-balancing is
done with a novel cluster-aware scheduling algorithm
that hides the long wide-area latencies by overlapping
them with useful local work. Satin's shared object
model lets the application define the consistency model
it needs. If an application needs only loose
consistency, it does not have to pay high performance
penalties for wide-area communication and
synchronization.\par
We demonstrate how grid problems such as resource
changes and failures can be handled transparently and
efficiently. Finally, we show that adaptivity is
important in grids. Satin can increase performance
considerably by adding and removing compute resources
automatically, based on the application's requirements
and the utilization of the machines and networks in the
grid.\par
Using an extensive evaluation on real grids with up to
960 cores, we demonstrate that it is possible to
provide a simple high-level programming model for
divide-and-conquer applications, while achieving
excellent performance on grids. At the same time, we
show that the divide-and-conquer model scales better on
large systems than the master-worker approach, since it
has no single central bottleneck.",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
keywords = "divide-and-conquer; Grid computing; programming
model",
}
@Article{Vechev:2010:PPC,
author = "Martin Vechev and Eran Yahav and Greta Yorsh",
title = "{PHALANX}: parallel checking of expressive heap
assertions",
journal = j-SIGPLAN,
volume = "45",
number = "8",
pages = "41--50",
month = aug,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1837855.1806658",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:55:48 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Unrestricted use of heap pointers makes software
systems difficult to understand and to debug. To
address this challenge, we developed PHALANX -- a
practical framework for dynamically checking expressive
heap properties such as ownership, sharing and
reachability. PHALANX uses novel parallel algorithms to
efficiently check a wide range of heap properties
utilizing the available cores.\par
PHALANX runtime is implemented on top of IBM's Java
production virtual machine. This has enabled us to
apply our new techniques to real world software. We
checked expressive heap properties in various scenarios
and found the runtime support to be valuable for
debugging and program understanding. Further, our
experimental results on DaCapo and other benchmarks
indicate that evaluating heap queries using parallel
algorithms can lead to significant performance
improvements, often resulting in linear speedups as the
number of cores increases.\par
To encourage adoption by programmers, we extended an
existing JML compiler to translate expressive JML
assertions about the heap into their efficient
implementation provided by PHALANX. To debug her
program, a programmer can annotate it with expressive
heap assertions in JML, that are efficiently checked by
PHALANX.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "ownership; parallel garbage collector; virtual
machine",
}
@Article{Villazon:2010:ARA,
author = "Alex Villaz{\'o}n and Walter Binder and Danilo
Ansaloni and Philippe Moret",
title = "Advanced runtime adaptation for {Java}",
journal = j-SIGPLAN,
volume = "45",
number = "2",
pages = "85--94",
month = feb,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1621607.1621621",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:37:56 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Dynamic aspect-oriented programming (AOP) enables
runtime adaptation of aspects, which is important for
building sophisticated, aspect-based software
engineering tools, such as adaptive profilers or
debuggers that dynamically modify instrumentation code
in response to user interactions. Today, many AOP
frameworks for Java, notably AspectJ, focus on aspect
weaving at compile-time or at load-time, and offer only
limited support for aspect adaptation and reweaving at
runtime. In this paper, we introduce HotWave, an AOP
framework based on AspectJ for standard Java Virtual
Machines (JVMs). HotWave supports dynamic (re)weaving
of previously loaded classes, and it ensures that all
classes loaded in a JVM can be (re)woven, including the
classes of the standard Java class library. HotWave
features a novel mechanism for inter-advice
communication, enabling efficient data passing between
advices that are woven into the same method. We explain
HotWave's programming model and discuss our
implementation techniques. As case study, we present an
adaptive, aspect-based profiler that leverages
HotWave's distinguishing features.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "AspectJ; bytecode instrumentation; code hotswapping;
dynamic aspect-oriented programming; Java Virtual
Machine; runtime aspect adaptation and (re)weaving",
}
@Article{Villazon:2010:HCA,
author = "Alex Villaz{\'o}n and Walter Binder and Danilo
Ansaloni and Philippe Moret",
title = "{HotWave}: creating adaptive tools with dynamic
aspect-oriented programming in {Java}",
journal = j-SIGPLAN,
volume = "45",
number = "2",
pages = "95--98",
month = feb,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1621607.1621622",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:37:56 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Developing tools for profiling, debugging, testing,
and reverse engineering is error-prone, time-consuming,
and therefore costly when using low-level techniques,
such as bytecode instrumentation. As a solution to
these problems, we promote tool development in Java
using high-level aspect-oriented programming (AOP). We
demonstrate that the use of aspects yields compact
tools that are easy to develop and extend. As enabling
technology, we rely on HotWave, a new tool for dynamic
and comprehensive aspect weaving. HotWave reconciles
compatibility with existing virtual machine and AOP
technologies. It provides support for runtime
adaptation of aspects and reweaving of previously
loaded code, as well as the ability to weave aspects
into all methods executing in a Java Virtual Machine,
including methods in the standard Java class library.
HotWave also features a new mechanism for efficiently
passing data between advices that are woven into the
same method. We demonstrate the benefits of HotWave's
distinguishing features with two case studies in the
area of profiling.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "AspectJ; bytecode instrumentation; code hotswapping;
dynamic aspect-oriented programming; Java Virtual
Machine; profiling; runtime weaving",
}
@Article{Wehr:2010:JBP,
author = "Stefan Wehr and Peter Thiemann",
title = "{JavaGI} in the battlefield: practical experience with
generalized interfaces",
journal = j-SIGPLAN,
volume = "45",
number = "2",
pages = "65--74",
month = feb,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1621607.1621619",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue Aug 31 22:37:56 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Generalized interfaces are an extension of the
interface concept found in object-oriented languages
such as Java or C\#. The extension is inspired by
Haskell's type classes. It supports retroactive and
type-conditional interface implementations, binary
methods, symmetric multimethods, interfaces over
families of types, and static interface
methods.\par
This article reports practical experience with
generalized interfaces as implemented in the JavaGI
language. Several real-world case studies demonstrate
how generalized interfaces provide solutions to
extension and integration problems with components in
binary form, how they make certain design patterns
redundant, and how they eliminate various run-time
errors. In each case study, the use of JavaGI results
in elegant and highly readable code.\par
Furthermore, the article discusses the implementation
of a compiler and a run-time system for JavaGI.
Benchmarks show that our implementation offers
acceptable performance.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "case studies; external methods; JavaGI; multimethods;
retroactive interface implementation",
}
@Article{Welch:2010:ABS,
author = "Peter Welch and Neil Brown and James Moores and Kevin
Chalmers and Bernhard Sputh",
title = "Alting barriers: synchronisation with choice in {Java}
using {JCSP}",
journal = j-CCPE,
volume = "22",
number = "8",
pages = "1049--1062",
day = "10",
month = jun,
year = "2010",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1471",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:44 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Prac\-tice and
Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "1 Mar 2010",
}
@Article{Wendykier:2010:PCH,
author = "Piotr Wendykier and James G. Nagy",
title = "{Parallel Colt}: a High-Performance {Java} Library for
Scientific Computing and Image Processing",
journal = j-TOMS,
volume = "37",
number = "3",
pages = "31:1--31:22",
month = sep,
year = "2010",
CODEN = "ACMSCU",
DOI = "https://doi.org/10.1145/1824801.1824809",
ISSN = "0098-3500 (print), 1557-7295 (electronic)",
ISSN-L = "0098-3500",
bibdate = "Mon Sep 27 10:15:50 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Major breakthroughs in chip and software design have
been observed for the last nine years. In October 2001,
IBM released the world's first multicore processor:
POWER4. Six years later, in February 2007, NVIDIA made
a public release of CUDA SDK, a set of development
tools to write algorithms for execution on Graphic
Processing Units (GPUs). Although software vendors have
started working on parallelizing their products, the
vast majority of existing code is still sequential and
does not effectively utilize modern multicore CPUs and
manycore GPUs.\par
This article describes Parallel Colt, a multithreaded
Java library for scientific computing and image
processing. In addition to describing the design and
functionality of Parallel Colt, a comparison to MATLAB
is presented. Two ImageJ plugins for iterative image
deblurring and motion correction of PET brain images
are described as typical applications of this library.
Performance comparisons with MATLAB, including GPU
computations via AccelerEyes' Jacket toolbox are also
given.",
acknowledgement = ack-nhfb,
articleno = "31",
fjournal = "ACM Transactions on Mathematical Software",
journal-URL = "http://portal.acm.org/toc.cfm?idx=J782",
keywords = "Deconvolution; FFT; inverse problems; iterative
methods; motion correction; multithreading; PET;
regularization",
}
@Article{Westbrook:2010:MJM,
author = "Edwin Westbrook and Mathias Ricken and Jun Inoue and
Yilong Yao and Tamer Abdelatif and Walid Taha",
title = "{Mint}: {Java} multi-stage programming using weak
separability",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "400--411",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1809028.1806642",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Multi-stage programming (MSP) provides a disciplined
approach to run-time code generation. In the purely
functional setting, it has been shown how MSP can be
used to reduce the overhead of abstractions, allowing
clean, maintainable code without paying performance
penalties. Unfortunately, MSP is difficult to combine
with imperative features, which are prevalent in
mainstream languages. The central difficulty is scope
extrusion, wherein free variables can inadvertently be
moved outside the scopes of their binders. This paper
proposes a new approach to combining MSP with
imperative features that occupies a 'sweet spot' in the
design space in terms of how well useful MSP
applications can be expressed and how easy it is for
programmers to understand. The key insight is that
escapes (or 'anti-quotes') must be weakly separable
from the rest of the code, i.e. the computational
effects occurring inside an escape that are visible
outside the escape are guaranteed to not contain code.
To demonstrate the feasibility of this approach, we
formalize a type system based on Lightweight Java which
we prove sound, and we also provide an implementation,
called Mint, to validate both the expressivity of the
type system and the effect of staging on the
performance of Java programs.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "java; multi-stage programming; multi-staged languages;
type systems",
}
@Article{Wimmer:2010:AFD,
author = "Christian Wimmer and Hanspeter M{\"o}ssenb{\"o}sck",
title = "Automatic feedback-directed object fusing",
journal = j-TACO,
volume = "7",
number = "2",
pages = "7:1--7:??",
month = sep,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1839667.1839669",
ISSN = "1544-3566 (print), 1544-3973 (electronic)",
ISSN-L = "1544-3566",
bibdate = "Sat Oct 2 18:05:46 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Object fusing is an optimization that embeds certain
referenced objects into their referencing object. The
order of objects on the heap is changed in such a way
that objects that are accessed together are placed next
to each other in memory. Their offset is then fixed,
that is, the objects are colocated, allowing field
loads to be replaced by address arithmetic. Array
fusing specifically optimizes arrays, which are
frequently used for the implementation of dynamic data
structures. Therefore, the length of arrays often
varies, and fields referencing such arrays have to be
changed. An efficient code pattern detects these
changes and allows the optimized access of such
fields.\par
We integrated these optimizations into Sun
Microsystems' Java HotSpot\TM{} VM. The analysis is
performed automatically at runtime, requires no actions
on the part of the programmer, and supports dynamic
class loading. To safely eliminate a field load, the
colocation of the object that holds the field and the
object that is referenced by the field must be
guaranteed. Two preconditions must be satisfied: The
objects must be allocated at the same time, and the
field must not be overwritten later. These
preconditions are checked by the just-in-time compiler
to avoid an interprocedural data flow analysis. The
garbage collector ensures that groups of colocated
objects are not split by copying groups as a whole. The
evaluation shows that the dynamic approach successfully
identifies and optimizes frequently accessed fields for
several benchmarks with a low compilation and analysis
overhead. It leads to a speedup of up to 76\% for
simple benchmarks and up to 6\% for complex
workloads.",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "ACM Transactions on Architecture and Code Optimization
(TACO)",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J924",
keywords = "cache performance; garbage collection; Java;
just-in-time compilation; object colocation; object
fusing; object inlining; optimization",
}
@Article{Witman:2010:TBR,
author = "Paul D. Witman and Terry Ryan",
title = "Think big for reuse",
journal = j-CACM,
volume = "53",
number = "1",
pages = "142--147",
month = jan,
year = "2010",
CODEN = "CACMA2",
DOI = "https://doi.org/10.1145/1629175.1629209",
ISSN = "0001-0782 (print), 1557-7317 (electronic)",
ISSN-L = "0001-0782",
bibdate = "Thu Feb 4 17:12:32 MST 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/cacm/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Many organizations are successful with software reuse
at fine to medium granularities -- ranging from
objects, subroutines, and components through software
product lines. However, relatively little has been
published on very large-grained reuse. One example of
this type of large-grained reuse might be that of an
entire Internet banking system (applications and
infrastructure) reused in business units all over the
world. In contrast, 'large scale' software reuse in
current research generally refers to systems that reuse
a large number of smaller components, or that perhaps
reuse subsystems. In this article, we explore a case of
an organization with an internal development group that
has been very successful with large-grained software
reuse.\par
BigFinancial, and the BigFinancial Technology Center
(BTC) in particular, have created a number of software
systems that have been reused in multiple businesses
and in multiple countries. BigFinancial and BTC thus
provided a rich source of data for case studies to look
at the characteristics of those projects and why they
have been successful, as well as to look at projects
that have been less successful and to understand what
has caused those results and what might be done
differently to prevent issues in the future. The
research is focused on technology, process, and
organizational elements of the development process,
rather than on specific product features and
functions.\par
Supporting reuse at a large-grained level may help to
alleviate some of the issues that occur in more
traditional reuse programs, which tend to be
finer-grained. In particular, because BigFinancial was
trying to gain commonality in business processes and
operating models, reuse of large-grained components was
more closely aligned with its business goals. This same
effect may well not have happened with finer-grained
reuse, due to the continued ability of business units
to more readily pick and choose components for
reuse.\par
BTC is a technology development unit of BigFinancial,
with operations in both the eastern and western US.
Approximately 500 people are employed by BTC, reporting
ultimately through a single line manager responsible to
the Global Retail Business unit head of BigFinancial.
BTC is organized to deliver both products and
infrastructure components to BigFinancial, and its
product line has through the years included consumer
Internet banking services, teller systems, ATM
software, and network management tools. BigFinancial
has its U.S. operations headquartered in the eastern
U.S., and employs more than 8,000 technologists
worldwide.\par
In cooperation with BTC, we selected three cases for
further study from a pool of about 25. These cases were
the Java Banking Toolkit (JBT) and its related
application systems, the Worldwide Single Signon (WSSO)
subsystem, and the BigFinancial Message Switch (BMS).",
acknowledgement = ack-nhfb,
fjournal = "Communications of the ACM",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J79",
}
@Article{Xu:2010:DIU,
author = "Guoqing Xu and Atanas Rountev",
title = "Detecting inefficiently-used containers to avoid
bloat",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "160--173",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806616",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Runtime bloat degrades significantly the performance
and scalability of software systems. An important
source of bloat is the inefficient use of containers.
It is expensive to create inefficiently-used containers
and to invoke their associated methods, as this may
ultimately execute large volumes of code, with call
stacks dozens deep, and allocate many temporary
objects.\par
This paper presents practical static and dynamic tools
that can find inappropriate use of containers in Java
programs. At the core of these tools is a base static
analysis that identifies, for each container, the
objects that are added to this container and the key
statements (i.e., heap loads and stores) that achieve
the semantics of common container operations such as
{\em ADD\/} and {\em GET}. The static tool finds
problematic uses of containers by considering the
nesting relationships among the loops where these {\em
semantics-achieving statements\/} are located, while
the dynamic tool can instrument these statements and
find inefficiencies by profiling their execution
frequencies.\par
The high precision of the base analysis is achieved by
taking advantage of a context-free language
(CFL)-reachability formulation of points-to analysis
and by accounting for container-specific properties. It
is demand-driven and client-driven, facilitating
refinement specific to each queried container object
and increasing scalability. The tools built with the
help of this analysis can be used both to avoid the
creation of container-related performance problems
early during development, and to help with diagnosis
when problems are observed during tuning. Our
experimental results show that the static tool has a
low false positive rate and produces more relevant
information than its dynamic counterpart. Further case
studies suggest that significant optimization
opportunities can be found by focusing on
statically-identified containers for which high
allocation frequency is observed at run time.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "cfl reachability; container bloat; points-to
analysis",
}
@Article{Xu:2010:FLU,
author = "Guoqing Xu and Nick Mitchell and Matthew Arnold and
Atanas Rountev and Edith Schonberg and Gary Sevitsky",
title = "Finding low-utility data structures",
journal = j-SIGPLAN,
volume = "45",
number = "6",
pages = "174--186",
month = jun,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1806596.1806617",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Oct 8 17:53:18 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Many opportunities for easy, big-win, program
optimizations are missed by compilers. This is
especially true in highly layered Java applications.
Often at the heart of these missed optimization
opportunities lie computations that, with great
expense, produce data values that have little impact on
the program's final output. Constructing a new date
formatter to format every date, or populating a large
set full of expensively constructed structures only to
check its size: these involve costs that are out of
line with the benefits gained. This disparity between
the formation costs and accrued benefits of data
structures is at the heart of much runtime
bloat.\par
We introduce a run-time analysis to discover these {\em
low-utility\/} data structures. The analysis employs
dynamic thin slicing, which naturally associates costs
with value flows rather than raw data flows. It
constructs a model of the incremental, hop-to-hop,
costs and benefits of each data structure. The analysis
then identifies suspicious structures based on
imbalances of its incremental costs and benefits. To
decrease the memory requirements of slicing, we
introduce {\em abstract dynamic thin slicing}, which
performs thin slicing over bounded abstract domains. We
have modified the IBM J9 commercial JVM to implement
this approach.\par
We demonstrate two client analyses: one that finds
objects that are expensive to construct but are not
necessary for the forward execution, and second that
pinpoints ultimately-dead values. We have successfully
applied them to large-scale and long-running Java
applications. We show that these analyses are effective
at detecting operations that have unbalanced costs and
benefits.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
keywords = "abstract dynamic thin slicing; cost benefit analysis;
memory bloat",
}
@Article{Yahav:2010:VSP,
author = "Eran Yahav and Mooly Sagiv",
title = "Verifying safety properties of concurrent
heap-manipulating programs",
journal = j-TOPLAS,
volume = "32",
number = "5",
pages = "18:1--18:50",
month = may,
year = "2010",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/1745312.1745315",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Fri May 21 12:28:30 MDT 2010",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "We provide a parametric framework for verifying safety
properties of concurrent heap-manipulating programs.
The framework combines thread-scheduling information
with information about the shape of the heap. This
leads to verification algorithms that are more precise
than existing techniques. The framework also provides a
precise shape-analysis algorithm for concurrent
programs. In contrast to most existing verification
techniques, we do not put a bound on the number of
allocated objects. The framework produces interesting
results even when analyzing programs with an unbounded
number of threads. The framework is applied to
successfully verify the following properties of a
concurrent program:\par
--- Concurrent manipulation of linked-list based ADT
preserves the ADT datatype invariant.\par
--- The program does not perform inconsistent updates
due to interference.\par
--- The program does not reach a deadlock.\par
--- The program does not produce runtime errors due to
illegal thread interactions.\par
We also found bugs in erroneous programs violating such
properties. A prototype of our framework has been
implemented and applied to small, but interesting,
example programs.",
acknowledgement = ack-nhfb,
articleno = "18",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
keywords = "Abstract interpretation; concurrency; Java; safety
properties; shape-analysis; verification",
}
@Article{Yang:2010:JIP,
author = "L. Yang and M. R. Poppleton",
title = "{Java} implementation platform for the integrated
state- and event-based specification in {PROB}",
journal = j-CCPE,
volume = "22",
number = "8",
pages = "1007--1022",
day = "10",
month = jun,
year = "2010",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1425",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:44 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Prac\-tice and
Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "29 Oct 2009",
}
@Book{Zakas:2010:HPJ,
author = "Nicholas C. Zakas",
title = "High performance {JavaScript}",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xviii + 209",
year = "2010",
ISBN = "0-596-80279-x, 1-4493-8230-4",
ISBN-13 = "978-0-596-80279-0, 978-1-4493-8230-8",
LCCN = "????",
bibdate = "Wed Apr 27 11:14:30 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.bibsys.no:2100/BIBSYS",
acknowledgement = ack-nhfb,
subject = "Web servers; World Wide Web; JavaScript (Computer
program language); Document Object Model (Web site
development technology)",
}
@Article{Zerzelidis:2010:FFS,
author = "Alexandros Zerzelidis and Andy Wellings",
title = "A framework for flexible scheduling in the {RTSJ}",
journal = j-TECS,
volume = "10",
number = "1",
pages = "3:1--3:??",
month = aug,
year = "2010",
CODEN = "????",
DOI = "https://doi.org/10.1145/1814539.1814542",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Aug 30 15:29:45 MDT 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "This article presents a viable solution to introducing
flexible scheduling in the Real-Time specification for
Java (RTSJ), in the form of a flexible scheduling
framework. The framework allows the concurrent use of
multiple application-defined scheduling policies, each
scheduling a subset of the total set of threads.
Moreover, all threads, regardless of the policy under
which they are scheduled, are permitted to share common
resources. Thus, the framework can accommodate a
variety of interworking applications (soft, firm, and
hard) running under the RTSJ. The proposed approach is
a two-level scheduling framework, where the first level
is the RTSJ priority scheduler and the second level is
under application control. This article describes the
framework's protocol, examines the different types of
scheduling policies that can be supported, and
evaluates the proposed framework by measuring its
execution cost. A description of an application-defined
Earliest-Deadline-First (EDF) scheduler illustrates how
the interface can be used. Minimum backward-compatible
changes to the RTSJ specification are discussed to
motivate the required interface. The only assumptions
made about the underlying real-time operating system is
that it supports preemptive priority-based dispatching
of threads and that changes to priorities have
immediate effect.",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
keywords = "flexible scheduling; RTSJ; Scheduling framework",
}
@Article{Zibin:2010:OIG,
author = "Yoav Zibin and Alex Potanin and Paley Li and Mahmood
Ali and Michael D. Ernst",
title = "Ownership and immutability in generic {Java}",
journal = j-SIGPLAN,
volume = "45",
number = "10",
pages = "598--617",
month = oct,
year = "2010",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1932682.1869509",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Jan 26 15:13:46 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Aiello:2011:JBA,
author = "Francesco Aiello and Giancarlo Fortino and Raffaele
Gravina and Antonio Guerrieri",
title = "A {Java}-Based Agent Platform for Programming Wireless
Sensor Networks",
journal = j-COMP-J,
volume = "54",
number = "3",
pages = "439--454",
month = mar,
year = "2011",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/bxq019",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Fri Feb 25 15:49:03 MST 2011",
bibsource = "http://comjnl.oxfordjournals.org/content/54/3.toc;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://comjnl.oxfordjournals.org/content/54/3/439.full.pdf+html",
acknowledgement = ack-nhfb,
fjournal = "Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
onlinedate = "February 22, 2010",
}
@Article{Aigner:2011:STM,
author = "Martin Aigner and Andreas Haas and Christoph M. Kirsch
and Michael Lippautz and Ana Sokolova and Stephanie
Stroka and Andreas Unterweger",
title = "Short-term memory for self-collecting mutators",
journal = j-SIGPLAN,
volume = "46",
number = "11",
pages = "99--108",
month = nov,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076022.1993493",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:57 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "ISMM '11 conference proceedings.",
abstract = "We propose a new memory model called short-term memory
for managing objects on the heap. In contrast to the
traditional persistent memory model for heap
management, objects in short-term memory expire after a
finite amount of time, which makes deallocation
unnecessary. Instead, expiration of objects may be
extended, if necessary, by refreshing. We have
developed a concurrent, incremental, and non-moving
implementation of short-term memory for explicit
refreshing called self-collecting mutators that is
based on programmer-controlled time and integrated into
state-of-the-art runtimes of three programming
languages: C, Java, and Go. All memory management
operations run in constant time without acquiring any
locks modulo the underlying allocators.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Arnold:2011:AOJ,
author = "Matthew Arnold and Stephen Fink and David Grove and
Michael Hind and Peter F. Sweeney",
title = "Adaptive optimization in the {Jalapeno JVM}",
journal = j-SIGPLAN,
volume = "46",
number = "4",
pages = "65--83",
month = apr,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1988042.1988048",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue May 24 10:55:07 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Future high-performance virtual machines will improve
performance through sophisticated online
feedback-directed optimizations. This paper presents
the architecture of the Jalapeno Adaptive Optimization
System, a system to support leading-edge virtual
machine technology and enable ongoing research on
online feedback-directed optimizations. We describe the
extensible system architecture, based on a federation
of threads with asynchronous communication. We present
an implementation of the general architecture that
supports adaptive multi-level optimization based purely
on statistical sampling. We empirically demonstrate
that this profiling technique has low overhead and can
improve startup and steady-state performance, even
without the presence of online feedback-directed
optimizations. The paper also describes and evaluates
an online feedback-directed inlining optimization based
on statistical edge sampling.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Arslan:2011:JPM,
author = "G{\"u}ven{\c{c}} Arslan and Ilknur {\"O}zmen",
title = "A {JAVA} program for the multivariate {$ Z_p $} and {$
C_p $} tests and its application",
journal = j-J-COMPUT-APPL-MATH,
volume = "235",
number = "16",
pages = "4729--4735",
day = "15",
month = jun,
year = "2011",
CODEN = "JCAMDI",
DOI = "https://doi.org/10.1016/j.cam.2010.08.035",
ISSN = "0377-0427 (print), 1879-1778 (electronic)",
ISSN-L = "0377-0427",
bibdate = "Sat Feb 25 13:24:29 MST 2017",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jcomputapplmath2010.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S037704271000484X",
acknowledgement = ack-nhfb,
fjournal = "Journal of Computational and Applied Mathematics",
journal-URL = "http://www.sciencedirect.com/science/journal/03770427",
}
@Article{Bala:2011:DTD,
author = "Vasanth Bala and Evelyn Duesterwald and Sanjeev
Banerjia",
title = "{Dynamo}: a transparent dynamic optimization system",
journal = j-SIGPLAN,
volume = "46",
number = "4",
pages = "41--52",
month = apr,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1988042.1988044",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue May 24 10:55:07 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "We describe the design and implementation of Dynamo, a
software dynamic optimization system that is capable of
transparently improving the performance of a native
instruction stream as it executes on the processor. The
input native instruction stream to Dynamo can be
dynamically generated (by a JIT for example), or it can
come from the execution of a statically compiled native
binary. This paper evaluates the Dynamo system in the
latter, more challenging situation, in order to
emphasize the limits, rather than the potential, of the
system. Our experiments demonstrate that even
statically optimized native binaries can be accelerated
Dynamo, and often by a significant degree.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Basanta-Val:2011:ECM,
author = "P. Basanta-Val and M. Garc{\'\i}a-Valls and I.
Est{\'e}vez-Ayres",
title = "Extending the concurrency model of the real-time
specification for {Java}",
journal = j-CCPE,
volume = "23",
number = "14",
pages = "1623--1645",
day = "25",
month = sep,
year = "2011",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1675",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:59 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "4 Nov 2010",
}
@Article{Basanta-Val:2011:FTM,
author = "Pablo Basanta-Val and Marisol Garc{\'\i}a-Valls and
Iria Est{\'e}vez-Ayres and Jorge
Fern{\'a}ndez-Gonz{\'a}lez",
title = "Fine tuning of the multiplexing facilities of {Java}'s
{Remote Method Invocation}",
journal = j-CCPE,
volume = "23",
number = "11",
pages = "1236--1260",
day = "10",
month = aug,
year = "2011",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1701",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:56 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "18 Jan 2011",
}
@Article{Basanta-Val:2011:NFI,
author = "P. Basanta-Val and M. Garcia-Valls and I.
Estevez-Ayres",
title = "Non-functional information transmission patterns for
distributed real-time {Java}",
journal = j-SPE,
volume = "41",
number = "12",
pages = "1409--1435",
month = "????",
year = "2011",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.1084",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Fri Dec 2 07:49:37 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib",
acknowledgement = ack-nhfb,
fjournal = "Software --- Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "23 May 2011",
}
@Article{Bellia:2011:PJS,
author = "Marco Bellia and M. Eugenia Occhiuto",
title = "Properties of {Java} Simple Closures",
journal = j-FUND-INFO,
volume = "109",
number = "3",
pages = "237--253",
month = aug,
year = "2011",
CODEN = "FUMAAJ",
DOI = "https://doi.org/10.3233/FI-2011-508",
ISSN = "0169-2968 (print), 1875-8681 (electronic)",
ISSN-L = "0169-2968",
bibdate = "Sat Mar 5 17:13:24 MST 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fundinfo2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Fundamenta Informaticae",
journal-URL = "http://content.iospress.com/journals/fundamenta-informaticae",
}
@Article{Bergenti:2011:PPS,
author = "F. Bergenti and L. Chiarabini and G. Rossi",
title = "Programming with partially specified aggregates in
{Java}",
journal = j-COMP-LANGS-SYS-STRUCT,
volume = "37",
number = "4",
pages = "178--192",
month = oct,
year = "2011",
CODEN = "????",
DOI = "https://doi.org/10.1016/j.cl.2011.07.002",
ISSN = "1477-8424 (print), 1873-6866 (electronic)",
ISSN-L = "1477-8424",
bibdate = "Wed Apr 11 16:28:11 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/complngs.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/14778424",
URL = "http://www.sciencedirect.com/science/article/pii/S1477842411000169",
acknowledgement = ack-nhfb,
fjournal = "Computer Languages, Systems {\&} Structures",
journal-URL = "http://www.sciencedirect.com/science/journal/14778424",
}
@Article{Borstler:2011:QEI,
author = "J{\"u}rgen B{\"o}rstler and Marie Nordstr{\"o}m and
James H. Paterson",
title = "On the Quality of Examples in Introductory {Java}
Textbooks",
journal = j-TOCE,
volume = "11",
number = "1",
pages = "3:1--3:??",
month = feb,
year = "2011",
CODEN = "????",
ISSN = "1946-6226",
bibdate = "Mon Feb 28 16:08:34 MST 2011",
bibsource = "http://www.acm.org/pubs/toce;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Example programs play an important role in the
teaching and learning of programming. Students as well
as teachers rank examples as the most important
resources for learning to program. Example programs
work as role models and must therefore always be
consistent with the principles and rules we are
teaching. However, it is difficult to find or develop
examples that are fully faithful to all principles and
guidelines of the object-oriented paradigm and also
follow general pedagogical principles and practices.
Unless students are able to engage with good examples,
they will not be able to tell desirable from
undesirable properties in their own and others'
programs.",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "ACM Transactions on Computing Education",
}
@Article{Carlisle:2011:WCB,
author = "Martin C. Carlisle",
title = "Why {I} came back to {Ada}",
journal = j-SIGADA-LETTERS,
volume = "31",
number = "3",
pages = "37--38",
month = dec,
year = "2011",
CODEN = "AALEE5",
DOI = "https://doi.org/10.1145/2070336.2070354",
ISSN = "1094-3641 (print), 1557-9476 (electronic)",
ISSN-L = "1094-3641",
bibdate = "Fri Apr 6 11:01:24 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigada.bib",
abstract = "After the Air Force Academy switched its curriculum to
Java, I extracted myself from the Ada community and
moved on to other research interests, particularly
computer security. In this talk, I'll explain the new
developments that brought me back to Ada and how Ada
and SPARK may be a secret weapon in the 21st century.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGADA Ada Letters",
}
@Book{Cecco:2011:SJG,
author = "Raffaele Cecco",
title = "Supercharged {JavaScript} Graphics",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "400 (est.)",
year = "2011",
ISBN = "1-4493-9363-2",
ISBN-13 = "978-1-4493-9363-2",
LCCN = "????",
bibdate = "Wed Apr 27 10:01:59 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
}
@Article{Chen:2011:MJP,
author = "Kuo-Yi Chen and J. Morris Chang and Ting-Wei Hou",
title = "Multithreading in {Java}: Performance and Scalability
on Multicore Systems",
journal = j-IEEE-TRANS-COMPUT,
volume = "60",
number = "11",
pages = "1521--1534",
month = nov,
year = "2011",
CODEN = "ITCOB4",
DOI = "https://doi.org/10.1109/TC.2010.232",
ISSN = "0018-9340 (print), 1557-9956 (electronic)",
ISSN-L = "0018-9340",
bibdate = "Tue Sep 27 07:57:50 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5661769",
acknowledgement = ack-nhfb,
fjournal = "IEEE Transactions on Computers",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}
@Article{Deitcher:2011:SPJ,
author = "Avi Deitcher",
title = "Simplicity and performance: {JavaScript} on the
server",
journal = j-LINUX-J,
volume = "2011",
number = "204",
pages = "3:1--3:??",
month = apr,
year = "2011",
CODEN = "LIJOFX",
ISSN = "1075-3583 (print), 1938-3827 (electronic)",
ISSN-L = "1075-3583",
bibdate = "Fri May 13 12:05:08 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "Linux Journal",
journal-URL = "http://portal.acm.org/citation.cfm?id=J508",
}
@Article{Dietl:2011:SOT,
author = "Werner Dietl and Sophia Drossopoulou and Peter
M{\"u}ller",
title = "Separating ownership topology and encapsulation with
generic universe types",
journal = j-TOPLAS,
volume = "33",
number = "6",
pages = "20:1--20:??",
month = dec,
year = "2011",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/2049706.2049709",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Thu Dec 29 16:28:40 MST 2011",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/toplas.bib",
abstract = "Ownership is a powerful concept to structure the
object store and to control aliasing and modifications
of objects. This article presents an ownership type
system for a Java-like programming language with
generic types. Like our earlier Universe type system,
Generic Universe Types structure the heap
hierarchically. In contrast to earlier work, we
separate the enforcement of an ownership topology from
an encapsulation system. The topological system uses an
existential modifier to express that no ownership
information is available statically. On top of the
topological system, we build an encapsulation system
that enforces the owner-as-modifier discipline. This
discipline does not restrict aliasing, but requires
modifications of an object to be initiated by its
owner.",
acknowledgement = ack-nhfb,
articleno = "20",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
}
@Article{Duarte:2011:ICS,
author = "Rafael Duarte and Alexandre Mota and Augusto Sampaio",
title = "Introducing concurrency in sequential {Java} via
laws",
journal = j-INFO-PROC-LETT,
volume = "111",
number = "3",
pages = "129--134",
day = "1",
month = jan,
year = "2011",
CODEN = "IFPLAT",
ISSN = "0020-0190 (print), 1872-6119 (electronic)",
ISSN-L = "0020-0190",
bibdate = "Thu Mar 31 12:46:53 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/00200190",
acknowledgement = ack-nhfb,
fjournal = "Information Processing Letters",
journal-URL = "http://www.sciencedirect.com/science/journal/00200190",
}
@Article{elBoustani:2011:ITE,
author = "Nabil el Boustani and Jurriaan Hage",
title = "Improving type error messages for generic {Java}",
journal = j-HIGHER-ORDER-SYMB-COMPUT,
volume = "24",
number = "1--2",
pages = "3--39",
month = jun,
year = "2011",
CODEN = "LSCOEX",
ISSN = "1388-3690 (print), 2212-0793 (electronic)",
ISSN-L = "1388-3690",
bibdate = "Fri Oct 26 09:07:29 MDT 2012",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1388-3690&volume=24&issue=1;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=1388-3690&volume=24&issue=1&spage=3",
acknowledgement = ack-nhfb,
fjournal = "Higher-Order and Symbolic Computation",
}
@Article{Esquembre:2011:TPL,
author = "Francisco Esquembre",
title = "There Is Parallel Life for {Java} Scientific
Programmers!",
journal = j-COMPUT-SCI-ENG,
volume = "13",
number = "4",
pages = "6--10",
month = jul # "\slash " # aug,
year = "2011",
CODEN = "CSENFA",
DOI = "https://doi.org/10.1109/MCSE.2011.72",
ISSN = "1521-9615 (print), 1558-366X (electronic)",
ISSN-L = "1521-9615",
bibdate = "Fri Jul 22 06:47:06 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Computing in Science and Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}
@Article{Feldthaus:2011:TSR,
author = "Asger Feldthaus and Todd Millstein and Anders
M{\o}ller and Max Sch{\"a}fer and Frank Tip",
title = "Tool-supported refactoring for {JavaScript}",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "119--138",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048078",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Fernandes:2011:LFS,
author = "S{\'e}rgio Miguel Fernandes and Jo{\~a}o Cachopo",
title = "Lock-free and scalable multi-version software
transactional memory",
journal = j-SIGPLAN,
volume = "46",
number = "8",
pages = "179--188",
month = aug,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2038037.1941579",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 26 14:04:45 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPoPP '11 Conference proceedings.",
abstract = "Software Transactional Memory (STM) was initially
proposed as a lock-free mechanism for concurrency
control. Early implementations had efficiency
limitations, and soon obstruction-free proposals
appeared, to tackle this problem, often simplifying STM
implementation. Today, most of the modern and
top-performing STMs use blocking designs, relying on
locks to ensure an atomic commit operation. This
approach has revealed better in practice, in part due
to its simplicity. Yet, it may have scalability
problems when we move into many-core computers,
requiring fine-tuning and careful programming to avoid
contention. In this paper we present and discuss the
modifications we made to a lock-based multi-version STM
in Java, to turn it into a lock-free implementation
that we have tested to scale at least up to 192 cores,
and which provides results that compete with, and
sometimes exceed, some of today's top-performing
lock-based implementations. The new lock-free commit
algorithm allows write transactions to proceed in
parallel, by allowing them to run their validation
phase independently of each other, and by resorting to
helping from threads that would otherwise be waiting to
commit, during the write-back phase. We also present a
new garbage collection algorithm to dispose of old
unused object versions that allows for asynchronous
identification of unnecessary versions, which minimizes
its interference with the rest of the transactional
system.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{Fogus:2011:JC,
author = "Michael Fogus and Chris Houser",
title = "The joy of {Clojure}",
publisher = pub-MANNING,
address = pub-MANNING:adr,
pages = "xxxi + 328",
year = "2011",
ISBN = "1-935182-64-1 (paperback)",
ISBN-13 = "978-1-935182-64-1 (paperback)",
LCCN = "QA76.62 .F64 2011",
bibdate = "Fri Nov 23 10:33:38 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
abstract = "Provides information on the features and functions of
Clojure and describes how to create applications.",
acknowledgement = ack-nhfb,
subject = "Clojure (Computer program language); Java (Computer
program language); Functional programming (Computer
science); Programming languages (Electronic computers);
Computer programming",
}
@Article{Frantzeskou:2011:SUD,
author = "Georgia Frantzeskou and Stephen G. MacDonell and
Efstathios Stamatatos and Stelios Georgiou and Stefanos
Gritzalis",
title = "The significance of user-defined identifiers in {Java}
source code authorship identification",
journal = j-INT-J-COMPUT-SYST-SCI-ENG,
volume = "26",
number = "2",
pages = "??--??",
month = mar,
year = "2011",
CODEN = "CSSEEI",
ISSN = "0267-6192",
ISSN-L = "0267-6192",
bibdate = "Tue Dec 3 12:04:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computsystscieng.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "International Journal of Computer Systems Science and
Engineering",
}
@Article{Gampe:2011:SMB,
author = "Andreas Gampe and Jeffery von Ronne and David
Niedzielski and Jonathan Vasek and Kleanthis Psarris",
title = "Safe, multiphase bounds check elimination in {Java}",
journal = j-SPE,
volume = "41",
number = "7",
pages = "753--788",
month = jun,
year = "2011",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.1028",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Tue Jun 21 17:09:57 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "25 Nov 2010",
}
@Article{Garbervetsky:2011:QDM,
author = "Diego Garbervetsky and Sergio Yovine and V{\'\i}ctor
Braberman and Mart{\'\i}n Rouaux and Alejandro
Taboada",
title = "Quantitative dynamic-memory analysis for {Java}",
journal = j-CCPE,
volume = "23",
number = "14",
pages = "1665--1678",
day = "25",
month = sep,
year = "2011",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1656",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:59 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "4 Nov 2010",
}
@Article{Giacaman:2011:OOP,
author = "Nasser Giacaman and Oliver Sinnen",
title = "Object-Oriented Parallelisation of {Java} Desktop
Programs",
journal = j-IEEE-SOFTWARE,
volume = "28",
number = "1",
pages = "32--38",
month = jan # "\slash " # feb,
year = "2011",
CODEN = "IESOEG",
DOI = "https://doi.org/10.1109/MS.2010.135",
ISSN = "0740-7459 (print), 0740-7459 (electronic)",
ISSN-L = "0740-7459",
bibdate = "Thu Dec 23 16:29:15 2010",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Software",
journal-URL = "http://www.computer.org/portal/web/csdl/magazines/software",
}
@Article{Gidra:2011:ASG,
author = "Lokesh Gidra and Ga{\"e}l Thomas and Julien Sopena and
Marc Shapiro",
title = "Assessing the scalability of garbage collectors on
many cores",
journal = j-OPER-SYS-REV,
volume = "5",
number = "3",
pages = "15--19",
month = dec,
year = "2011",
CODEN = "OSRED8",
DOI = "https://doi.org/10.1145/2094091.2094096",
ISSN = "0163-5980 (print), 1943-586X (electronic)",
ISSN-L = "0163-5980",
bibdate = "Mon Jan 16 19:01:36 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/opersysrev.bib",
abstract = "Managed Runtime Environments (MRE) are increasingly
used for application servers that use large multi-core
hardware. We find that the garbage collector is
critical for overall performance in this setting. We
explore the costs and scalability of the garbage
collectors on a contemporary 48-core multiprocessor
machine. We present experimental evaluation of the
parallel and concurrent garbage collectors present in
OpenJDK, a widely-used Java virtual machine. We show
that garbage collection represents a substantial amount
of an application's execution time, and does not scale
well as the number of cores increases. We attempt to
identify some critical scalability bottlenecks for
garbage collectors.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGOPS Operating Systems Review",
}
@Article{Gong:2011:JSA,
author = "Li Gong",
title = "{Java} security architecture revisited",
journal = j-CACM,
volume = "54",
number = "11",
pages = "48--52",
month = nov,
year = "2011",
CODEN = "CACMA2",
DOI = "https://doi.org/10.1145/2018396.2018411",
ISSN = "0001-0782 (print), 1557-7317 (electronic)",
ISSN-L = "0001-0782",
bibdate = "Sun Nov 6 06:54:03 MST 2011",
bibsource = "http://www.acm.org/pubs/contents/journals/cacm/;
http://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Communications of the ACM",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J79",
}
@Article{Grech:2011:JGE,
author = "Neville Grech and Julian Rathke and Bernd Fischer",
title = "{JEqualityGen}: generating equality and hashing
methods",
journal = j-SIGPLAN,
volume = "46",
number = "2",
pages = "177--186",
month = feb,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1942788.1868320",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Feb 14 16:37:34 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Manually implementing equals (for object comparisons)
and hashCode (for object hashing) methods in large
software projects is tedious and error-prone. This is
due to many special cases, such as field shadowing,
comparison between different types, or cyclic object
graphs. Here, we present JEqualityGen, a source code
generator that automatically derives implementations of
these methods. JEqualityGen proceeds in two states: it
first uses source code reflection in MetaAspectJ to
generate aspects that contain the method
implementations, before it uses weaving on the bytecode
level to insert these into the target application.
JEqualityGen generates not only correct, but efficient
source code that on a typical large-scale Java
application exhibits a performance improvement of more
than two orders of magnitude in the equality operations
generated, compared to an existing system based on
runtime reflection.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Haubl:2011:ECE,
author = "Christian H{\"a}ubl and Christian Wimmer and Hanspeter
M{\"o}ssenb{\"o}ck",
title = "Erratum to {``Compact and Efficient Strings for Java''
[Science of Computer Programming {\bf 75} (2010)
1077--1094]}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "11",
pages = "1073--1073",
day = "1",
month = nov,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Jun 21 10:31:56 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Book{Haverbeke:2011:EJM,
author = "Marijn Haverbeke",
title = "Eloquent {JavaScript}: a modern introduction to
programming",
publisher = pub-NO-STARCH,
address = pub-NO-STARCH:adr,
pages = "xiv + 205",
year = "2011",
ISBN = "1-59327-282-0",
ISBN-13 = "978-1-59327-282-1",
LCCN = "QA76.73.J39 HAV 2011; QA76.73.J39 H38 2009",
bibdate = "Wed Apr 27 11:18:12 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
library.ox.ac.uk:210/ADVANCE",
URL = "http://www.loc.gov/catdir/enhancements/fy1012/2010032246-b.html;
http://www.loc.gov/catdir/enhancements/fy1012/2010032246-d.html;
http://www.loc.gov/catdir/enhancements/fy1107/2010032246-t.html",
acknowledgement = ack-nhfb,
subject = "JavaScript (Computer program language)",
}
@Article{Hofmann:2011:EOS,
author = "Owen S. Hofmann and Alan M. Dunn and Sangman Kim and
Indrajit Roy and Emmett Witchel",
title = "Ensuring operating system kernel integrity with
{OSck}",
journal = j-SIGPLAN,
volume = "46",
number = "3",
pages = "279--290",
month = mar,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1961296.1950398",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Tue May 24 10:55:08 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ASPLOS '11 conference proceedings",
}
@Article{Horspool:2011:PPP,
author = "R. Nigel Horspool and Ralf Gitzel and Giacomo Cabri
and Markus Aleksy",
title = "Principles and Practice of Programming in {Java
2008}---Special issue",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "11",
pages = "969--969",
day = "1",
month = nov,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Jun 21 10:31:56 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Book{Horstmann:2011:CJA,
author = "Cay S. Horstmann",
title = "Core {Java}: Advanced Topics",
volume = "2",
publisher = pub-PH,
address = pub-PH:adr,
edition = "Nineth",
pages = "1088 (est.)",
year = "2011",
ISBN = "0-13-708160-X",
ISBN-13 = "978-0-13-708160-8",
LCCN = "????",
bibdate = "Mon Jan 28 14:57:29 MST 2013",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
xxaddress = pub-PEARSON-EDUCATION:adr,
xxpublisher = pub-PEARSON-EDUCATION,
}
@Article{Huang:2011:SBA,
author = "Gang Huang and Weihu Wang and Tiancheng Liu and Hong
Mei",
title = "Simulation-based analysis of middleware service impact
on system reliability: {Experiment} on {Java}
application server",
journal = j-J-SYST-SOFTW,
volume = "84",
number = "7",
pages = "1160--1170",
month = jul,
year = "2011",
CODEN = "JSSODM",
ISSN = "0164-1212 (print), 1873-1228 (electronic)",
ISSN-L = "0164-1212",
bibdate = "Tue Jun 21 10:22:31 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01641212",
acknowledgement = ack-nhfb,
fjournal = "Journal of Systems and Software",
journal-URL = "http://www.sciencedirect.com/science/journal/01641212",
}
@Book{Hughes-Croucher:2011:NRS,
author = "Tom Hughes-Croucher",
title = "Node: Up and Running: Scalable Server-Side Code with
{JavaScript}",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "????",
year = "2011",
ISBN = "1-4493-9858-8",
ISBN-13 = "978-1-4493-9858-3",
LCCN = "????",
bibdate = "Wed Apr 27 10:01:59 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
}
@Article{Jenista:2011:OSO,
author = "James Christopher Jenista and Yong hun Eom and Brian
Charles Demsky",
title = "{OoOJava}: software out-of-order execution",
journal = j-SIGPLAN,
volume = "46",
number = "8",
pages = "57--68",
month = aug,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2038037.1941563",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 26 14:04:45 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPoPP '11 Conference proceedings.",
abstract = "Developing parallel software using current tools can
be challenging. Even experts find it difficult to
reason about the use of locks and often accidentally
introduce race conditions and deadlocks into parallel
software. OoOJava is a compiler-assisted approach that
leverages developer annotations along with static
analysis to provide an easy-to-use deterministic
parallel programming model. OoOJava extends Java with a
task annotation that instructs the compiler to consider
a code block for out-of-order execution. OoOJava
executes tasks as soon as their data dependences are
resolved and guarantees that the execution of an
annotated program preserves the exact semantics of the
original sequential program. We have implemented
OoOJava and achieved an average speedup of 16.6x on our
ten benchmarks.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Johari:2011:ESE,
author = "Kalpana Johari and Arvinder Kaur",
title = "Effect of software evolution on software metrics: an
open source case study",
journal = j-SIGSOFT,
volume = "36",
number = "5",
pages = "1--8",
month = sep,
year = "2011",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2020976.2020987",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:04 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/gnu.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Software needs to evolve in order to be used for a
longer period. The changes corresponding to corrective,
preventive, adaptive and perfective maintenance leads
to software evolution. In this paper we are presenting
the results of study conducted on 13 versions of JHot
Draw and 16 versions of Rhino released over the period
of 10 years. We measured Object Oriented Metrics and
studied the changes in the measured values over
different releases of two medium sized software
developed using Java. We also investigated the
applicability of Lehman's Law of Software Evolution on
Object Oriented Software Systems using different
measures. We found that Lehman's laws related with
increasing complexity and continuous growth are
supported by the data and computed metrics measure.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Jovic:2011:LLP,
author = "Milan Jovic and Matthias Hauswirth",
title = "Listener latency profiling: {Measuring} the
perceptible performance of interactive {Java}
applications",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "11",
pages = "1054--1072",
day = "1",
month = nov,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Jun 21 10:31:56 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Kabanov:2011:DSF,
author = "Jevgeni Kabanov and Michael Hunger and Rein
Raudj{\"a}rv",
title = "On designing safe and flexible embedded {DSLs} with
{Java 5}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "11",
pages = "970--991",
day = "1",
month = nov,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Jun 21 10:31:56 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Kalibera:2011:FRT,
author = "Tomas Kalibera and Jeff Hagelberg and Petr Maj and
Filip Pizlo and Ben Titzer and Jan Vitek",
title = "A family of real-time {Java} benchmarks",
journal = j-CCPE,
volume = "23",
number = "14",
pages = "1679--1700",
day = "25",
month = sep,
year = "2011",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1677",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:59 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "4 Nov 2010",
}
@Article{Kalibera:2011:SRT,
author = "Tomas Kalibera and Filip Pizlo and Antony L. Hosking
and Jan Vitek",
title = "Scheduling real-time garbage collection on
uniprocessors",
journal = j-TOCS,
volume = "29",
number = "3",
pages = "8:1--8:??",
month = aug,
year = "2011",
CODEN = "ACSYEC",
DOI = "https://doi.org/10.1145/2003690.2003692",
ISSN = "0734-2071 (print), 1557-7333 (electronic)",
ISSN-L = "0734-2071",
bibdate = "Wed Aug 24 18:08:12 MDT 2011",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Managed languages such as Java and C\# are
increasingly being considered for hard real-time
applications because of their productivity and software
engineering advantages. Automatic memory management, or
garbage collection, is a key enabler for robust,
reusable libraries, yet remains a challenge for
analysis and implementation of real-time execution
environments. This article comprehensively compares
leading approaches to hard real-time garbage
collection. There are many design decisions involved in
selecting a real-time garbage collection algorithm. For
time-based garbage collectors on uniprocessors one must
choose whether to use periodic, slack-based or hybrid
scheduling. A significant impediment to valid
experimental comparison of such choices is that
commercial implementations use completely different
proprietary infrastructures.",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "ACM Transactions on Computer Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J774",
}
@Article{Kim:2011:MAE,
author = "Minseong Kim and Andy Wellings",
title = "Multiprocessors and Asynchronous Event Handling in the
Real-Time Specification for {Java}",
journal = j-COMP-J,
volume = "54",
number = "8",
pages = "1308--1324",
month = aug,
year = "2011",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/bxr030",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Wed Aug 17 16:34:11 MDT 2011",
bibsource = "http://comjnl.oxfordjournals.org/content/54/8.toc;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://comjnl.oxfordjournals.org/content/54/8/1308.full.pdf+html",
acknowledgement = ack-nhfb,
fjournal = "Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
onlinedate = "March 26, 2011",
}
@Article{Krieger:2011:AES,
author = "Matthias P. Krieger and Alexander Knapp and Burkhart
Wolff",
title = "Automatic and efficient simulation of operation
contracts",
journal = j-SIGPLAN,
volume = "46",
number = "2",
pages = "53--62",
month = feb,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1942788.1868303",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Feb 14 16:37:34 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Operation contracts consisting of pre- and
postconditions are a well-known means of specifying
operations. In this paper we deal with the problem of
operation contract simulation, i.e., determining
operation results satisfying the postconditions based
on input data supplied by the user; simulating
operation contracts is an important technique for
requirements validation and prototyping. Current
approaches to operation contract simulation exhibit
poor performance for large sets of input data or
require additional guidance from the user. We show how
these problems can be alleviated and describe an
efficient as well as fully automatic approach. It is
implemented in our tool OCLexec that generates from
UML/OCL operation contracts corresponding Java
implementations which call a constraint solver at
runtime.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Kuehnhausen:2011:AJM,
author = "Martin Kuehnhausen and Victor S. Frost",
title = "Application of the {Java Message Service} in mobile
monitoring environments",
journal = j-J-NETW-COMPUT-APPL,
volume = "34",
number = "5",
pages = "1707--1716",
month = sep,
year = "2011",
CODEN = "JNCAF3",
ISSN = "1084-8045 (print), 1095-8592 (electronic)",
ISSN-L = "1084-8045",
bibdate = "Wed Jan 28 15:44:03 MST 2015",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S1084804511001159",
acknowledgement = ack-nhfb,
ajournal = "J. Netw. Comput. Appl.",
fjournal = "Journal of Network and Computer Applications",
journal-URL = "http://www.sciencedirect.com/science/journal/10848045",
}
@Article{Kumari:2011:AOO,
author = "Usha Kumari and Sucheta Bhasin",
title = "Application of Object-Oriented Metrics To {C++} and
{Java}: a Comparative Study",
journal = j-SIGSOFT,
volume = "36",
number = "2",
pages = "1--10",
month = mar,
year = "2011",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/1943371.1943386",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:00 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "The increasing importance of software measurement has
led to design and development of new software measures.
As the development of object-oriented software is
rising, more and more metrics are being defined for
object-oriented programming languages. But there is a
little understanding of comparative application of many
of these measures to different programming languages.
As a consequence, it is very difficult for software
managers and developers to select suitable measures and
programming languages for object-oriented systems. In
this paper, we investigate 23 object-oriented metrics
proposed by various researchers. The metrics are
applied to same set of 15 programs coded in C++ and
Java in an attempt to make comparative study of these
two prominent object-oriented programming languages.
The work done here reveals that these object-oriented
metrics can be applied successfully to both Java and
C++. But, Java proves to be more object-oriented than
C++ as per intuition. However, counting rules defined
for computation of these metrics should be framed more
carefully.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Li:2011:JEC,
author = "Siliang Li and Gang Tan",
title = "{JET}: exception checking in the {Java Native
Interface}",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "345--358",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048095",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Lux:2011:TSD,
author = "Alexander Lux and Artem Starostin",
title = "A tool for static detection of timing channels in
{Java}",
journal = j-J-CRYPTO-ENG,
volume = "1",
number = "4",
pages = "303--313",
month = dec,
year = "2011",
CODEN = "????",
DOI = "https://doi.org/10.1007/s13389-011-0021-z",
ISSN = "2190-8508 (print), 2190-8516 (electronic)",
ISSN-L = "2190-8508",
bibdate = "Wed Aug 20 18:51:32 MDT 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jcryptoeng.bib",
URL = "http://link.springer.com/article/10.1007/s13389-011-0021-z",
acknowledgement = ack-nhfb,
fjournal = "Journal of Cryptographic Engineering",
journal-URL = "http://link.springer.com/journal/13389",
}
@Article{Martinez-Llario:2011:DJS,
author = "J. Martinez-Llario and M. Gonzalez-Alcaide",
title = "Design of a {Java} spatial extension for relational
databases",
journal = j-J-SYST-SOFTW,
volume = "84",
number = "12",
pages = "2314--2323",
month = dec,
year = "2011",
CODEN = "JSSODM",
DOI = "https://doi.org/10.1016/j.jss.2011.06.072",
ISSN = "0164-1212 (print), 1873-1228 (electronic)",
ISSN-L = "0164-1212",
bibdate = "Mon Feb 6 15:39:27 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
http://www.sciencedirect.com/science/journal/01641212",
URL = "http://www.sciencedirect.com/science/article/pii/S0164121211001695",
acknowledgement = ack-nhfb,
fjournal = "Journal of Systems and Software",
journal-URL = "http://www.sciencedirect.com/science/journal/01641212",
}
@Article{McMillan:2011:SVM,
author = "William W. McMillan",
title = "The soul of the virtual machine",
journal = j-IEEE-SPECTRUM,
volume = "48",
number = "7",
pages = "44--59",
month = jul,
year = "2011",
CODEN = "IEESAM",
DOI = "https://doi.org/10.1109/MSPEC.2011.5910448",
ISSN = "0018-9235 (print), 1939-9340 (electronic)",
ISSN-L = "0018-9235",
bibdate = "Fri Jan 17 18:54:05 2020",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeespectrum2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Spectrum",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
keywords = "Ersatz machine code; Java; Java compiler; Java virtual
machines; Operating systems; program compilers; Program
processors; Programming; virtual machines; Virtual
machining; Virtual prototyping",
}
@Article{Palmer:2011:BJM,
author = "Zachary Palmer and Scott F. Smith",
title = "Backstage {Java}: making a difference in
metaprogramming",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "939--958",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048137",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Papadimitriou:2011:SES,
author = "Stergios Papadimitriou and Konstantinos Terzidis and
Seferina Mavroudi and Spiridon Likothanassis",
title = "{ScalaLab}: An Effective {Scala}-Based Scientific
Programming Environment for {Java}",
journal = j-COMPUT-SCI-ENG,
volume = "13",
number = "5",
pages = "43--55",
month = sep # "\slash " # oct,
year = "2011",
CODEN = "CSENFA",
DOI = "https://doi.org/10.1109/MCSE.2010.77",
ISSN = "1521-9615 (print), 1558-366X (electronic)",
ISSN-L = "1521-9615",
bibdate = "Wed Aug 31 18:09:32 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Computing in Science and Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}
@Article{Park:2011:DCM,
author = "Heewan Park and Hyun-il Lim and Seokwoo Choi and
Taisook Han",
title = "Detecting Common Modules in {Java} Packages Based on
Static Object Trace Birthmark",
journal = j-COMP-J,
volume = "54",
number = "1",
pages = "108--124",
month = jan,
year = "2011",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/bxp095",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Tue Dec 21 19:26:47 MST 2010",
bibsource = "http://comjnl.oxfordjournals.org/content/54/1.toc;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://comjnl.oxfordjournals.org/content/54/1/108.full.pdf+html",
acknowledgement = ack-nhfb,
fjournal = "Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
onlinedate = "November 5, 2009",
}
@Article{Parker:2011:DPG,
author = "Jon Parker and Joshua M. Epstein",
title = "A Distributed Platform for Global-Scale Agent-Based
Models of Disease Transmission",
journal = j-TOMACS,
volume = "22",
number = "1",
pages = "2:1--2:??",
month = dec,
year = "2011",
CODEN = "ATMCEZ",
DOI = "https://doi.org/10.1145/2043635.2043637",
ISSN = "1049-3301 (print), 1558-1195 (electronic)",
ISSN-L = "1049-3301",
bibdate = "Tue Dec 20 17:48:00 MST 2011",
bibsource = "http://www.acm.org/pubs/contents/journals/tomacs/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tomacs.bib",
abstract = "The Global-Scale Agent Model (GSAM) is presented. The
GSAM is a high-performance distributed platform for
agent-based epidemic modeling capable of simulating a
disease outbreak in a population of several billion
agents. It is unprecedented in its scale, its speed,
and its use of Java. Solutions to multiple challenges
inherent in distributing massive agent-based models are
presented. Communication, synchronization, and memory
usage are among the topics covered in detail. The
memory usage discussion is Java specific. However, the
communication and synchronization discussions apply
broadly. We provide benchmarks illustrating the GSAM's
speed and scalability.",
acknowledgement = ack-nhfb,
articleno = "2",
fjournal = "ACM Transactions on Modeling and Computer Simulation",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J781",
}
@Article{Pour:2011:MBD,
author = "Niusha Hakimi Pour and Paul Strooper and Andy
Wellings",
title = "A model-based development approach for the
verification of real-time {Java} code",
journal = j-CCPE,
volume = "23",
number = "13",
pages = "1583--1606",
day = "10",
month = sep,
year = "2011",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1728",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:08:58 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "24 Apr 2011",
}
@Article{Ricci:2011:SAO,
author = "Alessandro Ricci and Mirko Viroli and Giulio
Piancastelli",
title = "{simpA}: an agent-oriented approach for programming
concurrent applications on top of {Java}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "1",
pages = "37--62",
day = "1",
month = jan,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Fri Apr 1 18:39:40 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Richards:2011:ACJ,
author = "Gregor Richards and Andreas Gal and Brendan Eich and
Jan Vitek",
title = "Automated construction of {JavaScript} benchmarks",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "677--694",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048119",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Schoeberl:2011:HAL,
author = "Martin Schoeberl and Stephan Korsholm and Tomas
Kalibera and Anders P. Ravn",
title = "A Hardware Abstraction Layer in {Java}",
journal = j-TECS,
volume = "10",
number = "4",
pages = "42:1--42:??",
month = nov,
year = "2011",
CODEN = "????",
DOI = "https://doi.org/10.1145/2043662.2043666",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Mon Dec 19 15:49:06 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tecs.bib",
abstract = "Embedded systems use specialized hardware devices to
interact with their environment, and since they have to
be dependable, it is attractive to use a modern,
type-safe programming language like Java to develop
programs for them. Standard Java, as a
platform-independent language, delegates access to
devices, direct memory access, and interrupt handling
to some underlying operating system or kernel, but in
the embedded systems domain resources are scarce and a
Java Virtual Machine (JVM) without an underlying
middleware is an attractive architecture. The
contribution of this article is a proposal for Java
packages with hardware objects and interrupt handlers
that interface to such a JVM.",
acknowledgement = ack-nhfb,
articleno = "42",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
}
@Article{Sewe:2011:CCS,
author = "Andreas Sewe and Mira Mezini and Aibek Sarimbekov and
Walter Binder",
title = "Da capo con {Scala}: design and analysis of a {Scala}
benchmark suite for the {Java Virtual Machine}",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "657--676",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048118",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Siegel:2011:AFV,
author = "Stephen F. Siegel and Timothy K. Zirkel",
title = "Automatic formal verification of {MPI}-based parallel
programs",
journal = j-SIGPLAN,
volume = "46",
number = "8",
pages = "309--310",
month = aug,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2038037.1941603",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 26 14:04:45 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/pvm.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPoPP '11 Conference proceedings.",
abstract = "The Toolkit for Accurate Scientific Software (TASS) is
a suite of tools for the formal verification of
MPI-based parallel programs used in computational
science. TASS can verify various safety properties as
well as compare two programs for functional
equivalence. The TASS front end takes an integer $ n
\geq 1 $ and a C/MPI program, and constructs an
abstract model of the program with $n$ processes.
Procedures, structs, (multi-dimensional) arrays,
heap-allocated data, pointers, and pointer arithmetic
are all representable in a TASS model. The model is
then explored using symbolic execution and explicit
state space enumeration. A number of techniques are
used to reduce the time and memory consumed. A variety
of realistic MPI programs have been verified with TASS,
including Jacobi iteration and manager-worker type
programs, and some subtle defects have been discovered.
TASS is written in Java and is available from
\path=http://vsl.cis.udel.edu/tass= under the Gnu
Public License.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Singer:2011:GCA,
author = "Jeremy Singer and George Kovoor and Gavin Brown and
Mikel Luj{\'a}n",
title = "Garbage collection auto-tuning for {Java MapReduce} on
multi-cores",
journal = j-SIGPLAN,
volume = "46",
number = "11",
pages = "109--118",
month = nov,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076022.1993495",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:57 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "ISMM '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{Subramaniam:2011:PCJ,
author = "Venkat Subramaniam",
title = "Programming concurrency on the {JVM}: mastering
synchronization, {STM}, and actors",
publisher = "Pragmatic Bookshelf",
address = "Dallas, TX",
pages = "xvii + 270",
year = "2011",
ISBN = "1-934356-76-X",
ISBN-13 = "978-1-934356-76-0",
LCCN = "QA76.73.J38 S8467 2011",
bibdate = "Thu Dec 4 08:35:54 MST 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib;
z3950.loc.gov:7090/Voyager",
series = "The pragmatic programmers",
abstract = "Stop dreading concurrency and start reaping the pure
power of modern multicore hardware. Learn how to avoid
shared mutable state and how to write safe, elegant,
explicit synchronization-free programs in Java or other
JVM languages, including Clojure, JRuby, Groovy, or
Scala. This book is the first to show you the three
prominent concurrency styles: the synchronization model
of the JDK, Software Transactional Memory (STM), and
actor-based concurrency. You'll learn the benefits of
each of these models, when and how to use them, and
what their limitations are so you can compare and
choose what works best for your applications. Learning
to program using concurrency is critical to creating
faster, more responsive applications, and now you can
leverage the Java platform to bring these applications
to high-octane life.",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language); Java virtual
machine; Parallel processing (Electronic computers);
Computer multitasking; Computer programming; Systems
programming (Computer science)",
tableofcontents = "The power and perils of concurrency \\
Strategies for concurrency \\
Modern Java/JDK concurrency \\
Software transactional memory \\
Actor-based concurrency",
}
@Article{Taboada:2011:DEJ,
author = "Guillermo L. Taboada and Sabela Ramos and Juan
Touri{\~n}o and Ram{\'o}n Doallo",
title = "Design of efficient {Java} message-passing collectives
on multi-core clusters",
journal = j-J-SUPERCOMPUTING,
volume = "55",
number = "2",
pages = "126--154",
month = feb,
year = "2011",
CODEN = "JOSUED",
ISSN = "0920-8542 (print), 1573-0484 (electronic)",
ISSN-L = "0920-8542",
bibdate = "Tue Sep 6 21:50:38 MDT 2011",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=55&issue=2;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=55&issue=2&spage=126",
acknowledgement = ack-nhfb,
fjournal = "The Journal of Supercomputing",
journal-URL = "http://link.springer.com/journal/11227",
}
@Article{Taboada:2011:DLC,
author = "Guillermo L. Taboada and Juan Touri{\~n}o and
Ram{\'o}n Doallo and Aamir Shafi and Mark Baker and
Bryan Carpenter",
title = "Device level communication libraries for
high-performance computing in {Java}",
journal = j-CCPE,
volume = "23",
number = "18",
pages = "2382--2403",
day = "25",
month = dec,
year = "2011",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1777",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Dec 5 10:09:01 MST 2011",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "14 Jun 2011",
}
@Article{Tarau:2011:IST,
author = "Paul Tarau",
title = "Integrated symbol table, engine and heap memory
management in multi-engine {Prolog}",
journal = j-SIGPLAN,
volume = "46",
number = "11",
pages = "129--138",
month = nov,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076022.1993497",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:57 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "ISMM '11 conference proceedings.",
abstract = "We describe an integrated solution to symbol, heap and
logic engine memory management in a context where
exchanges of arbitrary Prolog terms occur between
multiple dynamically created engines, implemented in a
new Java-based experimental Prolog system. As our
symbols represent not just Prolog atoms, but also
handles to Java objects (including arbitrary size
integers and decimals), everything is centered around a
symbol garbage collection algorithm ensuring that
external objects are shared and exchanged between logic
engines efficiently. Taking advantage of a tag-on-data
heap representation of Prolog terms, our algorithm
performs in-place updates of live symbol references
directly on heap cells.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Tate:2011:TWJ,
author = "Ross Tate and Alan Leung and Sorin Lerner",
title = "Taming wildcards in {Java}'s type system",
journal = j-SIGPLAN,
volume = "46",
number = "6",
pages = "614--627",
month = jun,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1993316.1993570",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 9 10:23:33 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Toledo:2011:ACJ,
author = "Rodolfo Toledo and Eric Tanter",
title = "Access Control in {JavaScript}",
journal = j-IEEE-SOFTWARE,
volume = "28",
number = "5",
pages = "76--84",
month = sep # "\slash " # oct,
year = "2011",
CODEN = "IESOEG",
DOI = "https://doi.org/10.1109/MS.2010.154",
ISSN = "0740-7459 (print), 0740-7459 (electronic)",
ISSN-L = "0740-7459",
bibdate = "Wed Aug 31 17:16:45 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Software",
journal-URL = "http://www.computer.org/portal/web/csdl/magazines/software",
}
@Book{Topley:2011:JDG,
author = "Kim Topley",
title = "{JavaFX} developer's guide",
publisher = pub-AW,
address = pub-AW,
pages = "xxxix + 1110",
year = "2011",
ISBN = "0-321-60165-3",
ISBN-13 = "978-0-321-60165-0",
LCCN = "????",
bibdate = "Thu Dec 1 07:51:47 MST 2011",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "Updated for JavaFX 1.3.",
series = "Developer's library",
}
@Article{V:2011:BBI,
author = "Sharath Chandra V. and S. Selvakumar",
title = "{BIXSAN}: browser independent {XSS} sanitizer for
prevention of {XSS} attacks",
journal = j-SIGSOFT,
volume = "36",
number = "5",
pages = "1--7",
month = sep,
year = "2011",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2020976.2020996",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:04 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Proliferation of social networking sites, and web
applications which deliver dynamic content to the
clients have increased the user created HTML content in
the World Wide Web. This user-created HTML content can
be a notorious vector for Cross-Site Scripting,(XSS)
attacks. XSS attacks have the ability to target
websites, steal confidential information of the users,
and hijack their accounts, etc. XSS attacks are
launched to exploit the vulnerabilities of the poorly
developed application code and data processing systems.
In particular, improper validation of user created
content and un-sanitized custom error messages
introduce vulnerability for XSS attacks. It is a
challenging task for any security mechanism to filter
out only the harmful HTML content and retain safe
content with high fidelity and robustness. This has
motivated us to develop a mechanism that filters out
the harmful HTML content, and allows safe HTML. The
existing solutions to XSS attack include use of regular
expressions to detect the presence of dynamic content
and client side filtering mechanisms such as Noscript
and Noxes tool. The drawbacks of these solutions are
low fidelity and disallowing of benign HTML. In order
to overcome these drawbacks BIXSAN, a Browser
Independent XSS SANitizer for prevention of XSS attacks
is proposed in this paper. BIXSAN includes the
proposition of three pronged strategy. These strategies
are as follows: Firstly the use of complete HTML parser
is proposed rather than approximating the behavior of
parser. The advantage of using complete HTML parser is
that it offers high fidelity. Secondly the use of
modified browser, viz., JavaScript Tester is proposed
to detect the presence of JavaScript for filtering it
out. Thirdly, identification of static tags is proposed
for allowing the benign HTML. Further, BIXSAN includes
the proposition of a parse tree generator at client
side browser to reduce the anomalous behavior of
browsers. BIXSAN was experimented in various browsers
such as Opera, Netscape, Internet Explorer (IE), and
Firefox and found to work for all the browsers. From
the experiments conducted it has been found that the
proposed BIXSAN prevents the injection of XSS attack
code successfully. Further, it has been verified that
BIXSAN reduces the anomalous behavior of browse.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Villazon:2011:CAW,
author = "Alex Villaz{\'o}n and Walter Binder and Philippe Moret
and Danilo Ansaloni",
title = "Comprehensive aspect weaving for {Java}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "11",
pages = "1015--1036",
day = "1",
month = nov,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Jun 21 10:31:56 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Wagner:2011:CMM,
author = "Gregor Wagner and Andreas Gal and Christian Wimmer and
Brendan Eich and Michael Franz",
title = "Compartmental memory management in a modern web
browser",
journal = j-SIGPLAN,
volume = "46",
number = "11",
pages = "119--128",
month = nov,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076022.1993496",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:57 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "ISMM '11 conference proceedings.",
abstract = "Since their inception, the usage pattern of web
browsers has changed substantially. Rather than
sequentially navigating static web sites, modern web
browsers often manage a large number of simultaneous
tabs displaying dynamic web content, each of which
might be running a substantial amount of client-side
JavaScript code. This environment introduced a new
degree of parallelism that was not fully embraced by
the underlying JavaScript virtual machine architecture.
We propose a novel abstraction for multiple disjoint
JavaScript heaps, which we call compartments. We use
the notion of document origin to cluster objects into
separate compartments. Objects within a compartment can
reference each other directly.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Wagner:2011:SJV,
author = "Gregor Wagner and Andreas Gal and Michael Franz",
title = "``Slimming'' a {Java} virtual machine by way of cold
code removal and optimistic partial program loading",
journal = j-SCI-COMPUT-PROGRAM,
volume = "76",
number = "11",
pages = "1037--1053",
day = "1",
month = nov,
year = "2011",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Jun 21 10:31:56 MDT 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/01676423",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Book{Wampler:2011:FPJ,
author = "Dean Wampler",
title = "Functional programming for {Java} developers",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xi + 72",
year = "2011",
ISBN = "1-4493-1265-9, 1-4493-1103-2",
ISBN-13 = "978-1-4493-1265-7, 978-1-4493-1103-2",
LCCN = "QA76.62 .W36 2011",
bibdate = "Wed Jul 12 16:13:28 MDT 2017",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
library.mit.edu:9909/mit01",
URL = "http://proquest.safaribooksonline.com/9781449312657",
acknowledgement = ack-nhfb,
remark = "``Tools for better concurrency, abstraction, and
agility''--Cover.",
subject = "Functional programming (Computer science); Java
(Computer program language)",
}
@Article{Wang:2011:EEU,
author = "Alf Inge Wang",
title = "Extensive Evaluation of Using a Game Project in a
Software Architecture Course",
journal = j-TOCE,
volume = "11",
number = "1",
pages = "5:1--5:??",
month = feb,
year = "2011",
CODEN = "????",
ISSN = "1946-6226",
bibdate = "Mon Feb 28 16:08:34 MST 2011",
bibsource = "http://www.acm.org/pubs/toce;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "This article describes an extensive evaluation of
introducing a game project to a software architecture
course. In this project, university students have to
construct and design a type of software architecture,
evaluate the architecture, implement an application
based on the architecture, and test this
implementation. In previous years, the domain of the
software architecture project has been a robot
controller for navigating a maze. In 2008, the students
on the software architecture course chose between the
two domains: Khepera robot simulation in Java and XNA
game development in C#. Independent of the domain
chosen, the students had to go through the same phases,
produce the same documents based on the same templates,
and follow exactly the same process.",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "ACM Transactions on Computing Education",
}
@Article{Wehr:2011:JIT,
author = "Stefan Wehr and Peter Thiemann",
title = "{JavaGI}: The Interaction of Type Classes with
Interfaces and Inheritance",
journal = j-TOPLAS,
volume = "33",
number = "4",
pages = "12:1--12:83",
month = jul,
year = "2011",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/1985342.1985343",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Mon Jul 18 12:33:22 MDT 2011",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The language JavaGI extends Java 1.5 conservatively by
a generalized interface mechanism. The generalization
subsumes retroactive and type-conditional interface
implementations, binary methods, symmetric multiple
dispatch, interfaces over families of types, and static
interface methods. These features make certain coding
patterns redundant, increase the expressiveness of the
type system, and permit solutions to extension and
integration problems with components in binary form,
for which previously several unrelated extensions had
been suggested. This article explains JavaGI and
motivates its design. Moreover, it formalizes a core
calculus for JavaGI and proves type soundness,
decidability of typechecking, and determinacy of
evaluation. The article also presents the
implementation of a JavaGI compiler and an accompanying
run-time system.",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
}
@Article{Wu:2011:RTS,
author = "Peng Wu and Hiroshige Hayashizaki and Hiroshi Inoue
and Toshio Nakatani",
title = "Reducing trace selection footprint for large-scale
{Java} applications without performance loss",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "789--804",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048127",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Wurthinger:2011:AED,
author = "Thomas W{\"u}rthinger and Walter Binder and Danilo
Ansaloni and Philippe Moret and Hanspeter
M{\"o}ssenb{\"o}ck",
title = "Applications of enhanced dynamic code evolution for
{Java} in {GUI} development and dynamic aspect-oriented
programming",
journal = j-SIGPLAN,
volume = "46",
number = "2",
pages = "123--126",
month = feb,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/1942788.1868312",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Feb 14 16:37:34 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "While dynamic code evolution in object-oriented
systems is an important feature supported by dynamic
languages, there is currently only limited support for
dynamic code evolution in high-performance,
state-of-the-art runtime systems for statically typed
languages, such as the Java Virtual Machine. In this
tool demonstration, we present the Dynamic Code
Evolution VM, which is based on a recent version of
Oracle's state-of-the-art Java HotSpot(TM) VM and
allows unlimited changes to loaded classes at runtime.
Based on the Dynamic Code Evolution VM, we developed an
enhanced version of the Mantisse GUI builder (which is
part of the NetBeans IDE) that allows adding GUI
components without restarting the application under
development.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Wurthinger:2011:SAR,
author = "Thomas W{\"u}rthinger and Danilo Ansaloni and Walter
Binder and Christian Wimmer and Hanspeter
M{\"o}ssenb{\"o}ck",
title = "Safe and atomic run-time code evolution for {Java} and
its application to dynamic {AOP}",
journal = j-SIGPLAN,
volume = "46",
number = "10",
pages = "825--844",
month = oct,
year = "2011",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2076021.2048129",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Dec 15 07:46:53 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '11 conference proceedings.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Afek:2012:ISJ,
author = "Yehuda Afek and Nir Shavit and Moran Tzafrir",
title = "Interrupting snapshots and the {Java} size method",
journal = j-J-PAR-DIST-COMP,
volume = "72",
number = "7",
pages = "880--888",
month = jul,
year = "2012",
CODEN = "JPDCER",
DOI = "https://doi.org/10.1016/j.jpdc.2012.03.007",
ISSN = "0743-7315 (print), 1096-0848 (electronic)",
ISSN-L = "0743-7315",
bibdate = "Thu May 17 13:55:41 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
http://www.sciencedirect.com/science/journal/07437315",
URL = "http://www.sciencedirect.com/science/article/pii/S074373151200072X",
acknowledgement = ack-nhfb,
fjournal = "Journal of Parallel and Distributed Computing",
journal-URL = "http://www.sciencedirect.com/science/journal/07437315",
}
@Book{Altman:2012:USM,
author = "Yair M. Altman",
title = "Undocumented secrets of {MATLAB--Java} programming",
publisher = pub-CRC,
address = pub-CRC:adr,
pages = "xxi + 663 + 16",
year = "2012",
ISBN = "1-4398-6904-9 (e-book), 1-4398-6903-0 (hardback),
1-4398-6903-0",
ISBN-13 = "978-1-4398-6904-8 (e-book), 978-1-4398-6903-1
(hardback), 978-1-4398-6903-1",
LCCN = "QA297 .A544 2012",
bibdate = "Fri Nov 16 08:10:20 MST 2012",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/matlab.bib;
http://www.math.utah.edu/pub/tex/bib/numana2010.bib",
acknowledgement = ack-nhfb,
subject = "MATLAB; Numerical analysis; Data processing; Java
(Computer program language); COMPUTERS / Programming /
Algorithms; COMPUTERS / Computer Engineering;
MATHEMATICS / Number Systems. MATHEMATICS / Numerical
Analysis",
tableofcontents = "1.: Introduction to Java in MATLAB \\
2.: Using non-GUI Java libraries in MATLAB \\
3.: Rich GUI using Java Swing \\
4.: Uitools \\
5.: Built-in MATLAB widgets and Java classes \\
6.: Customizing MATLAB controls \\
7.: The Java frame \\
8.: The MATLAB desktop \\
9.: Using MATLAB from within Java \\
10.: Putting it all together \\
Appendix A.: What Is Java? \\
Appendix B.: UDD \\
Appendix C.: Open questions",
}
@Article{Anonymous:2012:AMJ,
author = "Anonymous",
title = "Another major {Java} panic",
journal = j-NETWORK-SECURITY,
volume = "2012",
number = "9",
pages = "19--20",
month = sep,
year = "2012",
CODEN = "NTSCF5",
DOI = "https://doi.org/10.1016/S1353-4858(12)70084-3",
ISSN = "1353-4858 (print), 1872-9371 (electronic)",
ISSN-L = "1353-4858",
bibdate = "Mon Dec 4 17:00:46 MST 2017",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/network-security.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S1353485812700843",
acknowledgement = ack-nhfb,
fjournal = "Network Security",
journal-URL = "https://www.sciencedirect.com/journal/network-security",
}
@Article{Ansaloni:2012:DAO,
author = "Danilo Ansaloni and Walter Binder and Philippe Moret
and Alex Villaz{\'o}n",
title = "Dynamic Aspect-Oriented Programming in {Java}: The
{HotWave} Experience",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7271",
pages = "92--122",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-35551-6_3",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:18:55 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012d.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-35551-6_3/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-35551-6",
book-URL = "http://www.springerlink.com/content/978-3-642-35551-6",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Arcaini:2012:CCM,
author = "Paolo Arcaini and Angelo Gargantini and Elvinia
Riccobene",
title = "{CoMA}: Conformance Monitoring of {Java} Programs by
Abstract State Machines",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7186",
pages = "223--238",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-29860-8_17",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:25:51 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-29860-8_17/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-29860-8",
book-URL = "http://www.springerlink.com/content/978-3-642-29860-8",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Austin:2012:MFD,
author = "Thomas H. Austin and Cormac Flanagan",
title = "Multiple facets for dynamic information flow",
journal = j-SIGPLAN,
volume = "47",
number = "1",
pages = "165--178",
month = jan,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2103621.2103677",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Mar 15 18:16:55 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "JavaScript has become a central technology of the web,
but it is also the source of many security problems,
including cross-site scripting attacks and malicious
advertising code. Central to these problems is the fact
that code from untrusted sources runs with full
privileges. We implement information flow controls in
Firefox to help prevent violations of data
confidentiality and integrity. Most previous
information flow techniques have primarily relied on
either static type systems, which are a poor fit for
JavaScript, or on dynamic analyses that sometimes get
stuck due to problematic implicit flows, even in
situations where the target web application correctly
satisfies the desired security policy. We introduce
faceted values, a new mechanism for providing
information flow security in a dynamic manner that
overcomes these limitations. Taking inspiration from
secure multi-execution, we use faceted values to
simultaneously and efficiently simulate multiple
executions for different security levels, thus
providing non-interference with minimal overhead, and
without the reliance on the stuck executions of prior
dynamic approaches.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "POPL '12 conference proceedings.",
}
@Article{Avvenuti:2012:JTC,
author = "Marco Avvenuti and Cinzia Bernardeschi and Nicoletta
De Francesco and Paolo Masci",
title = "{JCSI}: a tool for checking secure information flow in
{Java Card} applications",
journal = j-J-SYST-SOFTW,
volume = "85",
number = "11",
pages = "2479--2493",
month = nov,
year = "2012",
CODEN = "JSSODM",
DOI = "https://doi.org/10.1016/j.jss.2012.05.061",
ISSN = "0164-1212 (print), 1873-1228 (electronic)",
ISSN-L = "0164-1212",
bibdate = "Mon Aug 20 17:08:56 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
http://www.sciencedirect.com/science/journal/01641212",
URL = "http://www.sciencedirect.com/science/article/pii/S0164121212001513",
acknowledgement = ack-nhfb,
fjournal = "Journal of Systems and Software",
journal-URL = "http://www.sciencedirect.com/science/journal/01641212",
}
@Article{Baar:2012:DEP,
author = "Thomas Baar and Philipp Kumar",
title = "Detecting Entry Points in {Java} Libraries",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7162",
pages = "42--54",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-29709-0_6",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:25:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-29709-0_6/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-29709-0",
book-URL = "http://www.springerlink.com/content/978-3-642-29709-0",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Barbu:2012:ARA,
author = "Guillaume Barbu and Philippe Hoogvorst",
title = "Application-Replay Attack on {Java} Cards: When the
Garbage Collector Gets Confused",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7159",
pages = "1--13",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28166-2_1",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:25:19 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28166-2_1/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28166-2",
book-URL = "http://www.springerlink.com/content/978-3-642-28166-2",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Bedla:2012:SSJ,
author = "Mariusz Bedla and Krzysztof Sapiecha",
title = "Scalable Store of {Java} Objects Using Range
Partitioning",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7054",
pages = "84--93",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28038-2_7",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:23:17 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012a.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28038-2_7/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28038-2",
book-URL = "http://www.springerlink.com/content/978-3-642-28038-2",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Bellia:2012:ERT,
author = "Marco Bellia and M. Eugenia Occhiuto",
title = "The Equivalence of Reduction and Translation Semantics
of {Java} Simple Closures",
journal = j-FUND-INFO,
volume = "119",
number = "3--4",
pages = "249--264",
month = aug,
year = "2012",
CODEN = "FUMAAJ",
DOI = "https://doi.org/10.3233/FI-2012-736",
ISSN = "0169-2968 (print), 1875-8681 (electronic)",
ISSN-L = "0169-2968",
bibdate = "Sat Mar 5 17:15:33 MST 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fundinfo2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Fundamenta Informaticae",
journal-URL = "http://content.iospress.com/journals/fundamenta-informaticae",
}
@Article{Bhattacharya:2012:DLI,
author = "Suparna Bhattacharya and Karthick Rajamani and K.
Gopinath and Manish Gupta",
title = "Does lean imply green?: a study of the power
performance implications of {Java} runtime bloat",
journal = j-SIGMETRICS,
volume = "40",
number = "1",
pages = "259--270",
month = jun,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.1145/2318857.2254789",
ISSN = "0163-5999 (print), 1557-9484 (electronic)",
ISSN-L = "0163-5999",
bibdate = "Fri Nov 9 11:06:39 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigmetrics.bib",
abstract = "The presence of software bloat in large flexible
software systems can hurt energy efficiency. However,
identifying and mitigating bloat is fairly effort
intensive. To enable such efforts to be directed where
there is a substantial potential for energy savings, we
investigate the impact of bloat on power consumption
under different situations. We conduct the first
systematic experimental study of the joint
power-performance implications of bloat across a range
of hardware and software configurations on modern
server platforms. The study employs controlled
experiments to expose different effects of a common
type of Java runtime bloat, excess temporary objects,
in the context of the SPECPower_ssj2008 workload. We
introduce the notion of equi-performance power
reduction to characterize the impact, in addition to
peak power comparisons. The results show a wide
variation in energy savings from bloat reduction across
these configurations. Energy efficiency benefits at
peak performance tend to be most pronounced when bloat
affects a performance bottleneck and non-bloated
resources have low energy-proportionality.
Equi-performance power savings are highest when bloated
resources have a high degree of energy proportionality.
We develop an analytical model that establishes a
general relation between resource pressure caused by
bloat and its energy efficiency impact under different
conditions of resource bottlenecks and energy
proportionality. Applying the model to different
``what-if'' scenarios, we predict the impact of bloat
reduction and corroborate these predictions with
empirical observations. Our work shows that the
prevalent software-only view of bloat is inadequate for
assessing its power-performance impact and instead
provides a full systems approach for reasoning about
its implications.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGMETRICS Performance Evaluation Review",
journal-URL = "http://portal.acm.org/toc.cfm?id=J618",
}
@Article{Bluemke:2012:DTJ,
author = "Ilona Bluemke and Artur Rembiszewski",
title = "Dataflow Testing of {Java} Programs with {DFC}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7054",
pages = "215--228",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28038-2_17",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:23:17 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012a.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28038-2_17/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28038-2",
book-URL = "http://www.springerlink.com/content/978-3-642-28038-2",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Bodden:2012:PEF,
author = "Eric Bodden and Patrick Lam and Laurie Hendren",
title = "Partially Evaluating Finite-State Runtime Monitors
Ahead of Time",
journal = j-TOPLAS,
volume = "34",
number = "2",
pages = "7:1--7:??",
month = jun,
year = "2012",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/2220365.2220366",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Fri Jun 29 17:33:40 MDT 2012",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/toplas.bib",
abstract = "Finite-state properties account for an important class
of program properties, typically related to the order
of operations invoked on objects. Many library
implementations therefore include manually written
finite-state monitors to detect violations of
finite-state properties at runtime. Researchers have
recently proposed the explicit specification of
finite-state properties and automatic generation of
monitors from the specification. However, runtime
monitoring only shows the presence of violations, and
typically cannot prove their absence. Moreover,
inserting a runtime monitor into a program under test
can slow down the program by several orders of
magnitude. In this work, we therefore present a set of
four static whole-program analyses that partially
evaluate runtime monitors at compile time, with
increasing cost and precision. As we show,
ahead-of-time evaluation can often evaluate the monitor
completely statically. This may prove that the program
cannot violate the property on any execution or may
prove that violations do exist. In the remaining cases,
the partial evaluation converts the runtime monitor
into a residual monitor. This monitor only receives
events from program locations that the analyses failed
to prove irrelevant. This makes the residual monitor
much more efficient than a full monitor, while still
capturing all property violations at runtime. We
implemented the analyses in Clara, a novel framework
for the partial evaluation of AspectJ-based runtime
monitors, and validated our approach by applying Clara
to finite-state properties over several large-scale
Java programs. Clara proved that most of the programs
never violate our example properties. Some programs
required monitoring, but in those cases Clara could
often reduce the monitoring overhead to below 10\%. We
observed that several programs did violate the stated
properties.",
acknowledgement = ack-nhfb,
articleno = "7",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
}
@Article{Boland:2012:JCC,
author = "Tim Boland and Paul E. Black",
title = "{Juliet 1.1 C/C++} and {Java Test Suite}",
journal = j-COMPUTER,
volume = "45",
number = "10",
pages = "88--90",
month = oct,
year = "2012",
CODEN = "CPTRB4",
DOI = "https://doi.org/10.1109/MC.2012.345",
ISSN = "0018-9162 (print), 1558-0814 (electronic)",
ISSN-L = "0018-9162",
bibdate = "Mon Oct 22 06:38:12 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computer2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Computer",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}
@Article{Bourdykine:2012:LAM,
author = "Pavel Bourdykine and Stephen M. Watt",
title = "Lightweight Abstraction for Mathematical Computation
in {Java}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7442",
pages = "47--59",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-32973-9_5",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:22:40 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012g.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-32973-9_5/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-32973-9",
book-URL = "http://www.springerlink.com/content/978-3-642-32973-9",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Bradel:2012:ITJ,
author = "Bory J. Bradel and Tarek S. Abdelrahman",
title = "Inlining with traces in {Java} programs",
journal = j-INT-J-COMPUT-SYST-SCI-ENG,
volume = "27",
number = "4",
pages = "??--??",
month = "????",
year = "2012",
CODEN = "CSSEEI",
ISSN = "0267-6192",
ISSN-L = "0267-6192",
bibdate = "Tue Dec 3 12:04:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computsystscieng.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "International Journal of Computer Systems Science and
Engineering",
}
@Article{Brockschmidt:2012:ADN,
author = "Marc Brockschmidt and Thomas Str{\"o}der and Carsten
Otto and J{\"u}rgen Giesl",
title = "Automated Detection of Non-termination and {{\tt
NullPointerException}}s for {Java} Bytecode",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7421",
pages = "123--141",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31762-0_9",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:22:12 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012g.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31762-0_9/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31762-0",
book-URL = "http://www.springerlink.com/content/978-3-642-31762-0",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Brockschmidt:2012:ATP,
author = "Marc Brockschmidt and Richard Musiol and Carsten Otto
and J{\"u}rgen Giesl",
title = "Automated Termination Proofs for {Java} Programs with
Cyclic Data",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7358",
pages = "105--122",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31424-7_13",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:20:49 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012f.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31424-7_13/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31424-7",
book-URL = "http://www.springerlink.com/content/978-3-642-31424-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Brown:2012:BRF,
author = "Neil Brown",
title = "Book Review: {{\booktitle{Functional Programming for
Java Developers --- Tools for Better Concurrency,
Abstraction, and Agility}}, By Dean Wampler, O'Reilly
Media, July 2011, ISBN-13: 978-1-4493-1103-2, 90 pp.}",
journal = j-J-FUNCT-PROGRAM,
volume = "22",
number = "6",
pages = "853--854",
month = nov,
year = "2012",
CODEN = "JFPRES",
DOI = "https://doi.org/10.1017/S0956796812000299",
ISSN = "0956-7968 (print), 1469-7653 (electronic)",
ISSN-L = "0956-7968",
bibdate = "Wed Jul 12 06:49:21 MDT 2017",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib",
URL = "https://www.cambridge.org/core/product/02755329E5B068C2D403EE6722FCBD06",
acknowledgement = ack-nhfb,
ajournal = "J. Funct. Program.",
fjournal = "Journal of Functional Programming",
journal-URL = "http://journals.cambridge.org/action/displayJournal?jid=JFP",
onlinedate = "01 August 2012",
}
@Article{Burdette:2012:ECJ,
author = "Philip F. Burdette and William F. Jones and Brian C.
Blose and Gregory M. Kapfhammer",
title = "An empirical comparison of {Java} remote communication
primitives for intra-node data transmission",
journal = j-SIGMETRICS,
volume = "39",
number = "4",
pages = "2--11",
month = apr,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.1145/2185395.2185397",
ISSN = "0163-5999 (print), 1557-9484 (electronic)",
ISSN-L = "0163-5999",
bibdate = "Fri Nov 9 11:06:38 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigmetrics.bib",
abstract = "This paper presents a benchmarking suite that measures
the performance of using sockets and eXtensible Markup
Language remote procedure calls (XML-RPC) to exchange
intra-node messages between Java virtual machines
(JVMs). The paper also reports on an empirical study
comparing sockets and XML-RPC with response time
measurements from timers that use both operating system
tools and Java language instrumentation. By leveraging
packet filters inside the GNU/Linux kernel, the
benchmark suite also calculates network resource
consumption. Moreover, the framework interprets the
response time results in light of memory subsystem
metrics characterizing the behavior of the JVM. The
empirical findings indicate that sockets perform better
when transmitting small to very large objects, while
XML-RPC exhibits lower response time than sockets with
extremely large bulk data transfers. The experiments
reveal trade-offs in performance and thus represent the
first step towards determining if Java remote
communication primitives can support the efficient
exchange of intra-node messages.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGMETRICS Performance Evaluation Review",
journal-URL = "http://portal.acm.org/toc.cfm?id=J618",
}
@Article{Burnim:2012:NIN,
author = "Jacob Burnim and Tayfun Elmas and George Necula and
Koushik Sen",
title = "{NDetermin}: inferring nondeterministic sequential
specifications for parallelism correctness",
journal = j-SIGPLAN,
volume = "47",
number = "8",
pages = "329--330",
month = aug,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2370036.2145879",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Sep 12 12:11:57 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPOPP '12 conference proceedings.",
abstract = "Nondeterministic Sequential (NDSeq) specifications
have been proposed as a means for separating the
testing, debugging, and verifying of a program's
parallelism correctness and its sequential functional
correctness. In this work, we present a technique that,
given a few representative executions of a parallel
program, combines dynamic data flow analysis and
Minimum-Cost Boolean Satisfiability (MinCostSAT)
solving for automatically inferring a likely NDSeq
specification for the parallel program. For a number of
Java benchmarks, our tool NDetermin infers equivalent
or stronger NDSeq specifications than those previously
written manually.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Burnim:2012:SCS,
author = "Jacob Burnim and George Necula and Koushik Sen",
title = "Specifying and checking semantic atomicity for
multithreaded programs",
journal = j-SIGPLAN,
volume = "47",
number = "4",
pages = "79--90",
month = apr,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2248487.1950377",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 7 08:15:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "In practice, it is quite difficult to write correct
multithreaded programs due to the potential for
unintended and nondeterministic interference between
parallel threads. A fundamental correctness property
for such programs is atomicity---a block of code in a
program is atomic if, for any parallel execution of the
program, there is an execution with the same overall
program behavior in which the block is executed
serially. We propose semantic atomicity, a
generalization of atomicity with respect to a
programmer-defined notion of equivalent behavior. We
propose an assertion framework in which a programmer
can use bridge predicates to specify noninterference
properties at the level of abstraction of their
application. Further, we propose a novel algorithm for
systematically testing atomicity specifications on
parallel executions with a bounded number of
interruptions---i.e. atomic blocks whose execution is
interleaved with that of other threads. We further
propose a set of sound heuristics and optional user
annotations that increase the efficiency of checking
atomicity specifications in the common case where the
specifications hold. We have implemented our assertion
framework for specifying and checking semantic
atomicity for parallel Java programs, and we have
written semantic atomicity specifications for a number
of benchmarks. We found that using bridge predicates
allowed us to specify the natural and intended atomic
behavior of a wider range of programs than did previous
approaches. Further, in checking our specifications, we
found several previously unknown bugs, including in the
widely-used java.util.concurrent library.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ASPLOS '12 conference proceedings.",
}
@Article{Cao:2012:YYP,
author = "Ting Cao and Stephen M. Blackburn and Tiejun Gao and
Kathryn S. McKinley",
title = "The yin and yang of power and performance for
asymmetric hardware and managed software",
journal = j-COMP-ARCH-NEWS,
volume = "40",
number = "3",
pages = "225--236",
month = jun,
year = "2012",
CODEN = "CANED2",
DOI = "https://doi.org/10.1145/2366231.2337185",
ISSN = "0163-5964 (print), 1943-5851 (electronic)",
ISSN-L = "0163-5964",
bibdate = "Thu Sep 6 10:21:07 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigarch.bib",
note = "ISCA '12 conference proceedings.",
abstract = "On the hardware side, asymmetric multicore processors
present software with the challenge and opportunity of
optimizing in two dimensions: performance and power.
Asymmetric multicore processors (AMP) combine
general-purpose big (fast, high power) cores and small
(slow, low power) cores to meet power constraints.
Realizing their energy efficiency opportunity requires
workloads with differentiated performance and power
characteristics. On the software side, managed
workloads written in languages such as C\#, Java,
JavaScript, and PHP are ubiquitous. Managed languages
abstract over hardware using Virtual Machine (VM)
services (garbage collection, interpretation, and/or
just-in-time compilation) that together impose
substantial energy and performance costs, ranging from
10\% to over 80\%. We show that these services manifest
a differentiated performance and power workload. To
differing degrees, they are parallel, asynchronous,
communicate infrequently, and are not on the
application?s critical path. We identify a synergy
between AMP and VM services that we exploit to attack
the 40\% average energy overhead due to VM services.
Using measurements and very conservative models, we
show that adding small cores tailored for VM services
should deliver, at least, improvements in performance
of 13\%, energy of 7\%, and performance per energy of
22\%. The yin of VM services is overhead, but it meets
the yang of small cores on an AMP. The yin of AMP is
exposed hardware complexity, but it meets the yang of
abstraction in managed languages. VM services fulfill
the AMP requirement for an asynchronous, non-critical,
differentiated, parallel, and ubiquitous workload to
deliver energy efficiency. Generalizing this approach
beyond system software to applications will require
substantially more software and hardware investment,
but these results show the potential energy efficiency
gains are significant.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGARCH Computer Architecture News",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J89",
}
@Article{Ceccarello:2012:TGC,
author = "Matteo Ceccarello and Nastaran Shafiei",
title = "Tools to generate and check consistency of model
classes for {Java PathFinder}",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382796",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Java PathFinder (JPF) is a model checker for Java
applications. Like any other model checker, JPF has to
combat the notorious state space explosion problem.
Since JPF is a JVM, it can only model check Java
bytecode and needs to handle native calls differently.
JPF tackles the state space explosion problem and
handles native calls by means of so-called model
classes and native peers. In this paper we focus on
model classes. For a class that either causes a state
space explosion or that contains native calls, one can
introduce a model class that either abstracts away
particular details or implements the native call in
Java. Rather than model checking the original class,
JPF model checks the model class instead. Writing such
model classes is time consuming and error prone. In
this paper we propose two tools to assist with the
development of model classes. The one tool generates a
skeleton of a model class. The other tool checks
whether a model class is consistent with the original
class.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Chanda:2012:TBS,
author = "Jayeeta Chanda and Sabnam Sengupta and Ananya Kanjilal
and Swapan Bhattacharya",
title = "Traceability between service component and class: a
model based approach",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382761",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Service components are the key to the development of a
service-oriented solution as they provide the
implementation of the services. The implementation of
Service components provides the actual function of the
component and can be defined with one or more Java
classes. We propose a model named Service Component to
Class (SC2C) that maps the service components of an
application with that of the classes that implement the
service components. We also propose a visual model as a
part of SC2C that represents the classes and
relationship among classes. This model helps to
establish traceability among service components and
classes. We also introduce some traceability metrics to
measure traceability between the artifacts of Service
Oriented Architecture (SOA) and Object Oriented (OO)
paradigms. This work, along with our earlier work, help
in Software Configuration Management of a SOA
application. We provide an insurance system case study
to illustrate our approach.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Chang:2012:IOT,
author = "Mason Chang and Bernd Mathiske and Edwin Smith and
Avik Chaudhuri and Andreas Gal and Michael Bebenita and
Christian Wimmer and Michael Franz",
title = "The impact of optional type information on {JIT}
compilation of dynamically typed languages",
journal = j-SIGPLAN,
volume = "47",
number = "2",
pages = "13--24",
month = feb,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2168696.2047853",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Apr 20 17:34:09 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Optionally typed languages enable direct performance
comparisons between untyped and type annotated source
code. We present a comprehensive performance evaluation
of two different JIT compilers in the context of
ActionScript, a production-quality optionally typed
language. One JIT compiler is optimized for quick
compilation rather than JIT compiled code performance.
The second JIT compiler is a more aggressively
optimizing compiler, performing both high-level and
low-level optimizations. We evaluate both JIT compilers
directly on the same benchmark suite, measuring their
performance changes across fully typed, partially
typed, and untyped code. Such evaluations are
especially relevant to dynamically typed languages such
as JavaScript, which are currently evaluating the idea
of adding optional type annotations. We demonstrate
that low-level optimizations rarely accelerate the
program enough to pay back the investment into
performing them in an optionally typed language. Our
experiments and data demonstrate that high-level
optimizations are required to improve performance by
any significant amount.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "DSL '11 conference proceedings.",
}
@Article{Chevalier-Boisvert:2012:BSH,
author = "Maxime Chevalier-Boisvert and Erick Lavoie and Marc
Feeley and Bruno Dufour",
title = "Bootstrapping a self-hosted research virtual machine
for {JavaScript}: an experience report",
journal = j-SIGPLAN,
volume = "47",
number = "2",
pages = "61--72",
month = feb,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2168696.2047858",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Apr 20 17:34:09 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "JavaScript is one of the most widely used dynamic
languages. The performance of existing JavaScript VMs,
however, is lower than that of VMs for static
languages. There is a need for a research VM to easily
explore new implementation approaches. This paper
presents the Tachyon JavaScript VM which was designed
to be flexible and to allow experimenting with new
approaches for the execution of JavaScript. The Tachyon
VM is itself implemented in JavaScript and currently
supports a subset of the full language that is
sufficient to bootstrap itself. The paper discusses the
architecture of the system and in particular the
bootstrapping of a self-hosted VM. Preliminary
performance results indicate that our VM, with few
optimizations, can already execute code faster than a
commercial JavaScript interpreter on some benchmarks.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "DSL '11 conference proceedings.",
}
@Article{Chugh:2012:DTJ,
author = "Ravi Chugh and David Herman and Ranjit Jhala",
title = "Dependent types for {JavaScript}",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "587--606",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384659",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "We present Dependent JavaScript (DJS), a statically
typed dialect of the imperative, object-oriented,
dynamic language. DJS supports the particularly
challenging features such as run-time type-tests,
higher-order functions, extensible objects, prototype
inheritance, and arrays through a combination of nested
refinement types, strong updates to the heap, and heap
unrolling to precisely track prototype hierarchies.
With our implementation of DJS, we demonstrate that the
type system is expressive enough to reason about a
variety of tricky idioms found in small examples drawn
from several sources, including the popular book
JavaScript: The Good Parts and the SunSpider benchmark
suite.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Cosentino:2012:MDR,
author = "Valerio Cosentino and Jordi Cabot and Patrick Albert
and Philippe Bauquel and Jacques Perronnet",
title = "A Model Driven Reverse Engineering Framework for
Extracting Business Rules Out of a {Java} Application",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7438",
pages = "17--31",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-32689-9_3",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:22:34 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012g.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-32689-9_3/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-32689-9",
book-URL = "http://www.springerlink.com/content/978-3-642-32689-9",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Cote:2012:JPS,
author = "Marco Cote and German Riano and Raha
Akhavan-Tabatabaei and Juan Fernando Perez and Andres
Sarmiento and Julio Goez",
title = "{jMarkov} package: a stochastic modeling tool",
journal = j-SIGMETRICS,
volume = "39",
number = "4",
pages = "48--48",
month = apr,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.1145/2185395.2185439",
ISSN = "0163-5999 (print), 1557-9484 (electronic)",
ISSN-L = "0163-5999",
bibdate = "Fri Nov 9 11:06:38 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigmetrics.bib",
abstract = "When analyzing real life stochastic systems in most
cases is easier, cheaper and more effective to use
analytical models rather than studying the physical
system or a simulation model of it. The stochastic
modeling is a powerful tool that helps the analysis and
optimization of stochastic systems. However the use of
stochastic modeling is not widely spread in today's
industries and among practitioners. This lack of
acceptance is caused by two main reasons the first
being the curse of dimensionality, which is defined by
the number of states required to describe a system.
This number grows exponentially as the size of the
system increases. The second reason is the lack of
user-friendly and efficient software packages that
allow the modeling of the problem without involving the
user with the implementation of the solution algorithms
to solve it. The curse of dimensionality is a constant
problem that has been addressed by different approaches
through time, but it is not intended within the scope
of our work; our focus is on the latter issue. We
propose a generic solver that enables the user to focus
on modeling without getting involved in the complexity
required by the solution methods. We design an object
oriented framework for stochastic modeling with four
components namely, jMarkov which models Markov Chains,
jQBD which models Quasi Birth and Death Processes,
jPhase which models Phase Types Distributions and jMDP
which models Markov Decision Processes. We concentrate
all our effort on creating a software that allows the
user to model any kind of system like a Markov Chain,
QBD or MDP with fairly basic knowledge of programming.
To this end we separate the modeling part from the
solution algorithms; therefore the user only needs to
mathematically model the problem and the software will
do the rest. However, we leave the package with the
possibility that experienced users can code their own
solution algorithms; this is done since the package
only contains the most common algorithms found in the
literature. The software does not use external plain
files like '.txt' or '.dat' written with specific
commands, but rather it is based on OOP (Object
Oriented Programming). The main advantages of it
include implementation in Java framework, which allows
the computational representation of the model to be
very similar to its mathematical representation such
that it would become natural to pass from one to
another. Also the program possesses the usual
characteristics of Java such as the use of inheritance
and abstraction. Finally, Java is a high level
computational language so the user doesn't need to be
concerned about technical problems.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGMETRICS Performance Evaluation Review",
journal-URL = "http://portal.acm.org/toc.cfm?id=J618",
}
@Article{daCosta:2012:JSL,
author = "Umberto Souza da Costa and Anamaria Martins Moreira
and Martin A. Musicante and Pl{\'a}cido A. Souza Neto",
title = "{JCML}: a specification language for the runtime
verification of {Java Card} programs",
journal = j-SCI-COMPUT-PROGRAM,
volume = "77",
number = "4",
pages = "533--550",
day = "1",
month = apr,
year = "2012",
CODEN = "SCPGD4",
DOI = "https://doi.org/10.1016/j.scico.2010.03.003",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Fri Feb 10 11:46:13 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642310000596",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{deMol:2012:GTJ,
author = "Maarten de Mol and Arend Rensink and James J. Hunt",
title = "Graph Transforming {Java} Data",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7212",
pages = "209--223",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28872-2_15",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:26:25 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012c.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28872-2_15/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28872-2",
book-URL = "http://www.springerlink.com/content/978-3-642-28872-2",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Devietti:2012:RRC,
author = "Joseph Devietti and Jacob Nelson and Tom Bergan and
Luis Ceze and Dan Grossman",
title = "{RCDC}: a relaxed consistency deterministic computer",
journal = j-SIGPLAN,
volume = "47",
number = "4",
pages = "67--78",
month = apr,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2248487.1950376",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 7 08:15:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Providing deterministic execution significantly
simplifies the debugging, testing, replication, and
deployment of multithreaded programs. Recent work has
developed deterministic multiprocessor architectures as
well as compiler and runtime systems that enforce
determinism in current hardware. Such work has
incidentally imposed strong memory-ordering properties.
Historically, memory ordering has been relaxed in favor
of higher performance in shared memory multiprocessors
and, interestingly, determinism exacerbates the cost of
strong memory ordering. Consequently, we argue that
relaxed memory ordering is vital to achieving faster
deterministic execution. This paper introduces RCDC, a
deterministic multiprocessor architecture that takes
advantage of relaxed memory orderings to provide
high-performance deterministic execution with low
hardware complexity. RCDC has two key innovations: a
hybrid HW/SW approach to enforcing determinism; and a
new deterministic execution strategy that leverages
data-race-free-based memory models (e.g., the models
for Java and C++) to improve performance and
scalability without sacrificing determinism, even in
the presence of races. In our hybrid HW/SW approach,
the only hardware mechanisms required are
software-controlled store buffering and support for
precise instruction counting; we do not require
speculation. A runtime system uses these mechanisms to
enforce determinism for arbitrary programs. We evaluate
RCDC using PARSEC benchmarks and show that relaxing
memory ordering leads to performance and scalability
close to nondeterministic execution without requiring
any form of speculation. We also compare our new
execution strategy to one based on TSO
(total-store-ordering) and show that some applications
benefit significantly from the extra relaxation. We
also evaluate a software-only implementation of our new
deterministic execution strategy.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ASPLOS '12 conference proceedings.",
}
@Article{Dhawan:2012:EJT,
author = "Mohan Dhawan and Chung-chieh Shan and Vinod
Ganapathy",
title = "Enhancing {JavaScript} with Transactions",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7313",
pages = "383--408",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31057-7_18",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:19:51 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31057-7_18/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31057-7",
book-URL = "http://www.springerlink.com/content/978-3-642-31057-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{DHondt:2012:ISS,
author = "Theo D'Hondt",
title = "An interpreter for server-side {HOP}",
journal = j-SIGPLAN,
volume = "47",
number = "2",
pages = "1--12",
month = feb,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2168696.2047851",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Apr 20 17:34:09 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "HOP is a Scheme-based multi-tier programming language
for the Web. The client-side of a program is compiled
to JavaScript, while the server-side is executed by a
mix of natively compiled code and interpreted code. At
the time where HOP programs were basic scripts, the
performance of the server-side interpreter was not a
concern; an inefficient interpreter was acceptable. As
HOP expanded, HOP programs got larger and more complex.
A more efficient interpreter was necessary. This new
interpreter is described in this paper. It is compact,
its whole implementation counting no more than 2.5
KLOC. It is more than twice faster than the old
interpreter and consumes less than a third of its
memory. Although it cannot compete with static or JIT
native compilers, our experimental results show that it
is amongst the fastest interpreters for dynamic
languages.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "DSL '11 conference proceedings.",
}
@Article{Dolby:2012:DCA,
author = "Julian Dolby and Christian Hammer and Daniel Marino
and Frank Tip and Mandana Vaziri and Jan Vitek",
title = "A data-centric approach to synchronization",
journal = j-TOPLAS,
volume = "34",
number = "1",
pages = "4:1--4:48",
month = apr,
year = "2012",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/2160910.2160913",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Mon Apr 30 17:20:50 MDT 2012",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/toplas.bib",
abstract = "Concurrency-related errors, such as data races, are
frustratingly difficult to track down and eliminate in
large object-oriented programs. Traditional approaches
to preventing data races rely on protecting instruction
sequences with synchronization operations. Such
control-centric approaches are inherently brittle, as
the burden is on the programmer to ensure that all
concurrently accessed memory locations are consistently
protected. Data-centric synchronization is an
alternative approach that offloads some of the work on
the language implementation. Data-centric
synchronization groups fields of objects into atomic
sets to indicate that these fields must always be
updated atomically. Each atomic set has associated
units of work, that is, code fragments that preserve
the consistency of that atomic set. Synchronization
operations are added automatically by the compiler. We
present an extension to the Java programming language
that integrates annotations for data-centric
concurrency control. The resulting language, called AJ,
relies on a type system that enables separate
compilation and supports atomic sets that span multiple
objects and that also supports full encapsulation for
more efficient code generation. We evaluate our
proposal by refactoring classes from standard
libraries, as well as a number of multithreaded
benchmarks, to use atomic sets. Our results suggest
that data-centric synchronization is easy to use and
enjoys low annotation overhead, while successfully
preventing data races. Moreover, experiments on the
SPECjbb benchmark suggest that acceptable performance
can be achieved with a modest amount of tuning.",
acknowledgement = ack-nhfb,
articleno = "4",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
}
@Book{Emerick:2012:CP,
author = "Chas Emerick and Brian Carper and Christophe Grand",
title = "{Clojure} programming",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xviii + 607",
year = "2012",
ISBN = "1-4493-9470-1",
ISBN-13 = "978-1-4493-9470-7",
LCCN = "QA76.73.C565 E538 2012",
bibdate = "Wed Nov 21 14:51:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/ora.bib;
z3950.loc.gov:7090/Voyager",
URL = "http://www.loc.gov/catdir/enhancements/fy1211/2012405367-b.html;
http://www.loc.gov/catdir/enhancements/fy1211/2012405367-d.html;
http://www.loc.gov/catdir/enhancements/fy1211/2012405367-t.html",
abstract = "This functional programming language not only lets you
take advantage of Java libraries, services, and other
JVM resources, it rivals other dynamic languages such
as Ruby and Python. With this comprehensive guide,
you'll learn Clojure fundamentals with examples that
relate it to languages you already know.",
acknowledgement = ack-nhfb,
remark = "Practical Lisp for the Java world [from cover].",
subject = "Java virtual machine; Clojure (Computer program
language); Java (Computer program language); Functional
programming (Computer science)",
tableofcontents = "Down the rabbit hole \\
Functional programming \\
Collections and data structures \\
Concurrency and parallelism \\
Macros \\
Datatypes and protocols \\
Multimethods \\
Organizing and building Clojure projects \\
Java and JVM interoperability \\
REPL-oriented programming \\
Numerics and mathematics \\
Design patterns \\
Testing \\
Using relational databases \\
Using nonrelational databases \\
Clojure and the Web \\
Deploying Clojure web applications \\
Choosing Clojure type definition forms wisely \\
Introducing Clojure into your workplace \\
What's next?",
}
@Article{Endrullis:2012:WEM,
author = "Stefan Endrullis and Andreas Thor and Erhard Rahm",
title = "{WETSUIT}: an efficient mashup tool for searching and
fusing web entities",
journal = j-PROC-VLDB-ENDOWMENT,
volume = "5",
number = "12",
pages = "1970--1973",
month = aug,
year = "2012",
CODEN = "????",
ISSN = "2150-8097",
bibdate = "Tue Nov 6 16:43:21 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/vldbe.bib",
abstract = "We demonstrate a new powerful mashup tool called
WETSUIT (Web EnTity Search and fUsIon Tool) to search
and integrate web data from diverse sources and
domain-specific entity search engines. WETSUIT supports
adaptive search strategies to query sets of relevant
entities with a minimum of communication overhead.
Mashups can be composed using a set of high-level
operators based on the Java-compatible language Scala.
The operator implementation supports a high degree of
parallel processing, in particular a streaming of
entities between all data transformation operations
facilitating a fast presentation of intermediate
results. WETSUIT has already been applied to solve
challenging integration tasks from different domains.",
acknowledgement = ack-nhfb,
fjournal = "Proceedings of the VLDB Endowment",
}
@Article{Erdweg:2012:GLE,
author = "Sebastian Erdweg and Lennart C. L. Kats and Tillmann
Rendel and Christian K{\"a}stner and Klaus Ostermann
and Eelco Visser",
title = "Growing a language environment with editor libraries",
journal = j-SIGPLAN,
volume = "47",
number = "3",
pages = "167--176",
month = mar,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2189751.2047891",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 7 08:15:00 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Large software projects consist of code written in a
multitude of different (possibly domain-specific)
languages, which are often deeply interspersed even in
single files. While many proposals exist on how to
integrate languages semantically and syntactically, the
question of how to support this scenario in integrated
development environments (IDEs) remains open: How can
standard IDE services, such as syntax highlighting,
outlining, or reference resolving, be provided in an
extensible and compositional way, such that an open mix
of languages is supported in a single file? Based on
our library-based syntactic extension language for
Java, SugarJ, we propose to make IDEs extensible by
organizing editor services in editor libraries. Editor
libraries are libraries written in the object language,
SugarJ, and hence activated and composed through
regular import statements on a file-by-file basis. We
have implemented an IDE for editor libraries on top of
SugarJ and the Eclipse-based Spoofax language
workbench. We have validated editor libraries by
evolving this IDE into a fully-fledged and schema-aware
XML editor as well as an extensible Latex editor, which
we used for writing this paper.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "GCPE '11 conference proceedings.",
}
@Article{Exposito:2012:DSJ,
author = "Roberto R. Exp{\'o}sito and Guillermo L. Taboada and
Juan Touri{\~n}o and Ram{\'o}n Doallo",
title = "Design of scalable {Java} message-passing
communications over {InfiniBand}",
journal = j-J-SUPERCOMPUTING,
volume = "61",
number = "1",
pages = "141--165",
month = jul,
year = "2012",
CODEN = "JOSUED",
ISSN = "0920-8542 (print), 1573-0484 (electronic)",
ISSN-L = "0920-8542",
bibdate = "Fri Oct 26 07:41:32 MDT 2012",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=61&issue=1;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jsuper.bib",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=61&issue=1&spage=141",
acknowledgement = ack-nhfb,
fjournal = "The Journal of Supercomputing",
journal-URL = "http://link.springer.com/journal/11227",
}
@Article{Fdez-Riverola:2012:JAF,
author = "F. Fdez-Riverola and D. Glez-Pe{\~n}a and H.
L{\'o}pez-Fern{\'a}ndez and M. Reboiro-Jato and J. R.
M{\'e}ndez",
title = "A {Java} application framework for scientific software
development",
journal = j-SPE,
volume = "42",
number = "8",
pages = "1015--1036",
month = aug,
year = "2012",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.1108",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Tue Nov 6 17:14:12 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "26 Aug 2011",
}
@Article{Femminella:2012:EJC,
author = "Mauro Femminella and Francesco Giacinti and Gianluca
Reali",
title = "An Extended {Java} Call Control for the {Session
Initiation Protocol}",
journal = j-IEEE-MULTIMEDIA,
volume = "19",
number = "4",
pages = "60--71",
month = oct # "\slash " # dec,
year = "2012",
CODEN = "IEMUE4",
DOI = "https://doi.org/10.1109/MMUL.2011.58",
ISSN = "1070-986X (print), 1941-0166 (electronic)",
ISSN-L = "1070-986X",
bibdate = "Thu Nov 15 06:53:49 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeemultimedia.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE MultiMedia",
}
@Article{Fontaine:2012:VCF,
author = "Arnaud Fontaine and Samuel Hym and Isabelle
Simplot-Ryl",
title = "Verifiable Control Flow Policies for {Java} Bytecode",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7140",
pages = "115--130",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-29420-4_8",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:55 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-29420-4_8/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-29420-4",
book-URL = "http://www.springerlink.com/content/978-3-642-29420-4",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Funes:2012:RMC,
author = "Diego Funes and Junaid Haroon Siddiqui and Sarfraz
Khurshid",
title = "Ranged Model Checking",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382799",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "We introduce ranged model checking, a novel technique
for more effective checking of Java programs using the
Java PathFinder (JPF) model checker. Our key insight is
that the order in which JPF makes non-deterministic
choices denes a total ordering of execution paths it
explores in the program it checks. Thus, two in-order
paths define a range for restricting the model checking
run by defining a start point and an end point for
JPF's exploration. Moreover, a given set of paths can
be linearly ordered to define consecutive,
(essentially) non-overlapping ranges that partition the
exploration space and can be explored separately. While
restricting the run of a model checker is a well-known
technique in model checking, the key novelty of our
work is conceptually to restrict the run using vertical
boundaries rather than the traditional approach of
using a horizontal boundary, i.e., the search depth
bound. Initial results using our prototype
implementation using the JPF libraries demonstrate the
promise ranged model checking holds.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Gadyatskaya:2012:JCA,
author = "Olga Gadyatskaya and Fabio Massacci and Federica Paci
and Sergey Stankevich",
title = "{Java} Card Architecture for Autonomous Yet Secure
Evolution of {Smart Cards} Applications",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7127",
pages = "187--192",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-27937-9_13",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:40 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-27937-9_13/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-27937-9",
book-URL = "http://www.springerlink.com/content/978-3-642-27937-9",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Gardner:2012:TPL,
author = "Philippa Anne Gardner and Sergio Maffeis and Gareth
David Smith",
title = "Towards a program logic for {JavaScript}",
journal = j-SIGPLAN,
volume = "47",
number = "1",
pages = "31--44",
month = jan,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2103621.2103663",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Mar 15 18:16:55 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "JavaScript has become the most widely used language
for client-side web programming. The dynamic nature of
JavaScript makes understanding its code notoriously
difficult, leading to buggy programs and a lack of
adequate static-analysis tools. We believe that logical
reasoning has much to offer JavaScript: a simple
description of program behaviour, a clear understanding
of module boundaries, and the ability to verify
security contracts. We introduce a program logic for
reasoning about a broad subset of JavaScript, including
challenging features such as prototype inheritance and
`with'. We adapt ideas from separation logic to provide
tractable reasoning about JavaScript code: reasoning
about easy programs is easy; reasoning about hard
programs is possible. We prove a strong soundness
result. All libraries written in our subset and proved
correct with respect to their specifications will be
well-behaved, even when called by arbitrary JavaScript
code.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "POPL '12 conference proceedings.",
}
@Article{Gejibo:2012:CIE,
author = "Samson Gejibo and Federico Mancini",
title = "Challenges in Implementing an End-to-End Secure
Protocol for {Java ME}-Based Mobile Data Collection in
Low-Budget Settings",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7159",
pages = "38--45",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28166-2_5",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:25:19 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28166-2_5/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28166-2",
book-URL = "http://www.springerlink.com/content/978-3-642-28166-2",
fjournal = "Lecture Notes in Computer Science",
}
@Article{German:2012:MOS,
author = "Daniel German and Massimiliano {Di Penta}",
title = "A Method for Open Source License Compliance of {Java}
Applications",
journal = j-IEEE-SOFTWARE,
volume = "29",
number = "3",
pages = "58--63",
month = may # "\slash " # jun,
year = "2012",
CODEN = "IESOEG",
DOI = "https://doi.org/10.1109/MS.2012.50",
ISSN = "0740-7459 (print), 0740-7459 (electronic)",
ISSN-L = "0740-7459",
bibdate = "Thu Apr 26 17:15:53 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "IEEE Software",
journal-URL = "http://www.computer.org/portal/web/csdl/magazines/software",
}
@Article{Gherardi:2012:JVC,
author = "Luca Gherardi and Davide Brugali and Daniele Comotti",
title = "A {Java} vs. {C++} Performance Evaluation: a {$3$D}
Modeling Benchmark",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7628",
pages = "161--172",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-34327-8_17",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:26:09 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012k.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-34327-8_17/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-34327-8",
book-URL = "http://www.springerlink.com/content/978-3-642-34327-8",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Gil:2012:SFJ,
author = "Joseph Gil and Yuval Shimron",
title = "Smaller Footprint for {Java} Collections",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7313",
pages = "356--382",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31057-7_17",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:19:51 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31057-7_17/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31057-7",
book-URL = "http://www.springerlink.com/content/978-3-642-31057-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Grossschadl:2012:EJI,
author = "Johann Gro{\ss}sch{\"a}dl and Dan Page and Stefan
Tillich",
title = "Efficient {Java} Implementation of Elliptic Curve
Cryptography for {J2ME}-Enabled Mobile Devices",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7322",
pages = "189--207",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-30955-7_17",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:20:02 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-30955-7_17/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-30955-7",
book-URL = "http://www.springerlink.com/content/978-3-642-30955-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Hackett:2012:FPH,
author = "Brian Hackett and Shu-yu Guo",
title = "Fast and precise hybrid type inference for
{JavaScript}",
journal = j-SIGPLAN,
volume = "47",
number = "6",
pages = "239--250",
month = jun,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2345156.2254094",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 6 16:31:49 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "PLDI '12 proceedings.",
abstract = "JavaScript performance is often bound by its
dynamically typed nature. Compilers do not have access
to static type information, making generation of
efficient, type-specialized machine code difficult. We
seek to solve this problem by inferring types. In this
paper we present a hybrid type inference algorithm for
JavaScript based on points-to analysis. Our algorithm
is fast, in that it pays for itself in the
optimizations it enables. Our algorithm is also
precise, generating information that closely reflects
the program's actual behavior even when analyzing
polymorphic code, by augmenting static analysis with
run-time type barriers. We showcase an implementation
for Mozilla Firefox's JavaScript engine, demonstrating
both performance gains and viability. Through
integration with the just-in-time (JIT) compiler in
Firefox, we have improved performance on major
benchmarks and JavaScript-heavy websites by up to 50\%.
Inference-enabled compilation is the default
compilation mode as of Firefox 9.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Hasbun:2012:UTP,
author = "Javier E. Hasbun",
title = "Unifying Two Popular-but-Seemingly-Dissimilar
Platforms: {Matlab} and {Java}",
journal = j-COMPUT-SCI-ENG,
volume = "14",
number = "3",
pages = "6--7",
month = may # "\slash " # jun,
year = "2012",
CODEN = "CSENFA",
DOI = "https://doi.org/10.1109/MCSE.2012.58",
ISSN = "1521-9615 (print), 1558-366X (electronic)",
ISSN-L = "1521-9615",
bibdate = "Thu Apr 26 17:01:57 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computscieng.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Computing in Science and Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}
@Article{Hashmi:2012:CNI,
author = "Atif Hashmi and Andrew Nere and James Jamal Thomas and
Mikko Lipasti",
title = "A case for neuromorphic {ISAs}",
journal = j-SIGPLAN,
volume = "47",
number = "4",
pages = "145--158",
month = apr,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2248487.1950385",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 7 08:15:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "The desire to create novel computing systems, paired
with recent advances in neuroscientific understanding
of the brain, has led researchers to develop
neuromorphic architectures that emulate the brain. To
date, such models are developed, trained, and deployed
on the same substrate. However, excessive co-dependence
between the substrate and the algorithm prevents
portability, or at the very least requires
reconstructing and retraining the model whenever the
substrate changes. This paper proposes a well-defined
abstraction layer --- the Neuromorphic instruction set
architecture, or NISA --- that separates a neural
application's algorithmic specification from the
underlying execution substrate, and describes the Aivo
framework, which demonstrates the concrete advantages
of such an abstraction layer. Aivo consists of a NISA
implementation for a rate-encoded neuromorphic system
based on the cortical column abstraction, a
state-of-the-art integrated development and runtime
environment (IDE), and various profile-based
optimization tools. Aivo's IDE generates code for
emulating cortical networks on the host CPU, multiple
GPGPUs, or as boolean functions. Its runtime system can
deploy and adaptively optimize cortical networks in a
manner similar to conventional just-in-time compilers
in managed runtime systems (e.g. Java, C\#). We
demonstrate the abilities of the NISA abstraction by
constructing a cortical network model of the mammalian
visual cortex, deploying on multiple execution
substrates, and utilizing the various optimization
tools we have created. For this hierarchical
configuration, Aivo's profiling based network
optimization tools reduce the memory footprint by 50\%
and improve the execution time by a factor of 3x on the
host CPU. Deploying the same network on a single GPGPU
results in a 30x speedup. We further demonstrate that a
speedup of 480x can be achieved by deploying a
massively scaled cortical network across three GPGPUs.
Finally, converting a trained hierarchical network to
C/C++ boolean constructs on the host CPU results in 44x
speedup.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ASPLOS '12 conference proceedings.",
}
@Article{Hayashizaki:2012:IPT,
author = "Hiroshige Hayashizaki and Peng Wu and Hiroshi Inoue
and Mauricio J. Serrano and Toshio Nakatani",
title = "Improving the performance of trace-based systems by
false loop filtering",
journal = j-SIGPLAN,
volume = "47",
number = "4",
pages = "405--418",
month = apr,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2248487.1950412",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 7 08:15:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Trace-based compilation is a promising technique for
language compilers and binary translators. It offers
the potential to expand the compilation scopes that
have traditionally been limited by method boundaries.
Detecting repeating cyclic execution paths and
capturing the detected repetitions into traces is a key
requirement for trace selection algorithms to achieve
good optimization and performance with small amounts of
code. One important class of repetition detection is
cyclic-path-based repetition detection, where a cyclic
execution path (a path that starts and ends at the same
instruction address) is detected as a repeating cyclic
execution path. However, we found many cyclic paths
that are not repeating cyclic execution paths, which we
call false loops. A common class of false loops occurs
when a method is invoked from multiple call-sites. A
cycle is formed between two invocations of the method
from different call-sites, but which does not represent
loops or recursion. False loops can result in shorter
traces and smaller compilation scopes, and degrade the
performance. We propose false loop filtering, an
approach to reject false loops in the repetition
detection step of trace selection, and a technique
called false loop filtering by call-stack-comparison,
which rejects a cyclic path as a false loop if the call
stacks at the beginning and the end of the cycle are
different. We applied false loop filtering to our
trace-based Java\TM{} JIT compiler that is based on
IBM's J9 JVM. We found that false loop filtering
achieved an average improvement of 16\% and 10\% for
the DaCapo benchmark when applied to two baseline trace
selection algorithms, respectively, with up to 37\%
improvement for individual benchmarks. In the end, with
false loop filtering, our trace-based JIT achieves a
performance comparable to that of the method-based J9
JVM/JIT using the corresponding optimization level.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ASPLOS '12 conference proceedings.",
}
@Article{Heidegger:2012:APC,
author = "Phillip Heidegger and Annette Bieniusa and Peter
Thiemann",
title = "Access permission contracts for scripting languages",
journal = j-SIGPLAN,
volume = "47",
number = "1",
pages = "111--122",
month = jan,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2103621.2103671",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Mar 15 18:16:55 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The ideal software contract fully specifies the
behavior of an operation. Often, in particular in the
context of scripting languages, a full specification
may be cumbersome to state and may not even be desired.
In such cases, a partial specification, which describes
selected aspects of the behavior, may be used to raise
the confidence in an implementation of the operation to
a reasonable level. We propose a novel kind of contract
for object-based languages that specifies the side
effects of an operation with access permissions. An
access permission contract uses sets of access paths to
express read and write permissions for the properties
of the objects accessible from the operation. We
specify a monitoring semantics for access permission
contracts and implement this semantics in a contract
system for JavaScript. We prove soundness and stability
of violation under increasing aliasing for our
semantics. Applications of access permission contracts
include enforcing modularity, test-driven development,
program understanding, and regression testing. With
respect to testing and understanding, we find that
adding access permissions to contracts increases the
effectiveness of error detection through contract
monitoring by 6-13\%.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "POPL '12 conference proceedings.",
}
@Article{Herranz:2012:VIP,
author = "{\'A}ngel Herranz and Julio Mari{\~n}o",
title = "A Verified Implementation of Priority Monitors in
{Java}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7421",
pages = "160--177",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31762-0_11",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:22:12 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012g.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31762-0_11/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31762-0",
book-URL = "http://www.springerlink.com/content/978-3-642-31762-0",
fjournal = "Lecture Notes in Computer Science",
}
@Book{Horstmann:2012:JEC,
author = "Cay S. Horstmann",
title = "{Java} for everyone: compatible with {Java} 5, 6, and
7",
publisher = pub-WILEY,
address = pub-WILEY:adr,
edition = "Second",
pages = "xxxiii + 589",
year = "2012",
ISBN = "1-118-06331-7 (paperback)",
ISBN-13 = "978-1-118-06331-6 (paperback)",
LCCN = "QA76.73.J38 H675445 2012",
bibdate = "Tue May 12 16:11:39 MDT 2015",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/prng.bib;
http://www.math.utah.edu/pub/tex/bib/unicode.bib;
z3950.loc.gov:7090/Voyager",
abstract = "Authoritative but accessible information on Java
programming fundamentals. As one of the most popular
programming languages in the world, Java is widely used
in everything from application software to web
applications. This helpful book escorts you through the
fundamentals and concepts of Java programming using a
first/late objects approach. Packed with extensive
opportunities for programming practice, Java For
Everyone is an ideal resource for learning all there is
to know about Java programming. Serves as an
authoritative guide on the fundamentals of Java
programming. Features accessible coverage compatible
with Java 5, 6, 7. Uses first/late objects approach and
provides a variety of opportunities for programming
practice If you're interested in learning the basics of
Java programming, then this is the book you need.",
acknowledgement = ack-nhfb,
author-dates = "1959--",
subject = "Java (Computer program language); COMPUTERS /
Programming Languages / Java.",
tableofcontents = "1: Introduction \\
1.1 Computer Programs \\
1.2 The Anatomy of a Computer \\
1.3 The Java Programming Language \\
1.4 Becoming Familiar with Your Programming Environment
\\
1.5 Analyzing Your First Program \\
1.6 Errors \\
1.7 Problem Solving: Algorithm Design \\
2: Fundamental Data Types \\
2.1 Variables \\
2.2 Arithmetic \\
2.3 Input and Output \\
2.4 Problem Solving: First Do it By Hand \\
2.6 Strings \\
3: Decisions \\
3.1 The if Statement \\
3.2 Comparing Numbers and Strings \\
3.3 Multiple Alternatives \\
3.4 Nested Branches \\
3.5 Problem Solving: Flowcharts \\
3.6 Problem Solving: Test Cases \\
3.7 Boolean Variables and Operators \\
3.8 Application: Input Validation \\
4: Loops \\
4.1 The while Loop \\
4.2 Problem Solving: Hand-Tracing \\
4.3 The for Loop \\
4.4 The do Loop \\
4.5 Application: Processing Sentinel Values \\
4.6 Problem Solving: Storyboards \\
4.7 Common Loop Algorithms \\
4.8 Nested Loops \\
4.9 Application: Random Numbers and Simulations \\
5: Methods \\
5.1 Methods as Black Boxes \\
5.2 Implementing Methods \\
5.3 Parameter Passing \\
5.4 Return Values \\
5.5 Methods Without Return Values \\
5.6 Problem Solving: Reusable Functions \\
5.7 Problem Solving: Stepwise Refinement \\
5.8 Variable Scope \\
5.9 Recursive Methods (Optional) \\
6: Arrays and Array Lists \\
6.1 Arrays \\
6.2 The Enhanced for Loop \\
6.3 Common Array Algorithms \\
6.4 Using Arrays with Methods \\
6.5 Problem Solving: Adapting Algorithms \\
6.6 Problem Solving: Discovering Algorithms by
Manipulating Physical Objects \\
6.7 Two-Dimensional Arrays \\
6.8 Array Lists \\
7: Input/Output and Exception Handling \\
7.1 Reading and Writing Text Files \\
7.2 Processing Text Input \\
7.3 Command Line Arguments \\
7.4 Checked and Unchecked Exceptions \\
7.5 Catching Exceptions \\
7.6 The finally Clause \\
7.7 Application: Handling Input Errors \\
8: Object and Classes \\
8.1 Object-Oriented Programming \\
8.2 Implementing a Simple Class \\
8.3 Specifying the Public Interface of a Class \\
8.4 Designing the Data Representation \\
8.5 Problem Solving: Patterns for Representing Behavior
\\
8.6 Implementing Instance Methods \\
8.7 Constructors \\
8.8 Problem Solving: Tracing Objects \\
8.9 Testing a Class \\
8.10 Object References \\
8.11 Static Variables and Methods \\
9: Inheritance \\
9.1 Inheritance Hierarchies \\
9.2 Implementing Subclasses \\
9.3 Overriding Methods \\
9.4 Polymorphism \\
9.5 Object: The Cosmic Superclass \\
9.6 Interface Types \\
10: Graphical User Interfaces \\
10.1 Frame Windows \\
10.2 Events and Event Handling \\
10.3 Using Inheritance to Customize Frames \\
10.4 Building Applications with Buttons \\
10.5 Using Inner Classes for Listeners \\
10.6 Processing Text Input \\
10.7 Text Areas Web chapters \\
11: Advanced Graphical User Interfaces \\
11.1 Layout Management \\
11.2 Choices \\
11.3 Menus \\
11.4 Exploring the Swing Documentation \\
11.5 Drawing on a Component \\
11.6 Using Timer Events for Animations \\
11.7 Mouse Events \\
12: Object-Oriented Design \\
12.1 The Software Life Cycle \\
12.2 Discovering Classes \\
12.3 Relationships Between Classes \\
12.4 Cohesion and Coupling \\
12.5 Side Effects \\
12.5 Abstract Classes \\
12.6 Packages \\
12.7 Application: Printing an Invoice \\
12.8 Application: An Automatic Teller Machine \\
13: Recursion \\
13.1 Triangle Numbers \\
13.2. Thinking Recursively \\
13.3 Recursive Helper Methods \\
13.4 The Efficiency of Recursion \\
13.5 Permutations \\
13.6 Mutual Recursions \\
13.7 Backtracking \\
14: Sorting and Searching \\
14.1 Selection Sort \\
14.2 Profiling the Selection Sort Algorithm \\
14.3 Analyzing the Performance of the Selection Sort
Algorithm \\
14.4 Merge Sort \\
14.5 Analyzing the Merge Sort Algorithm \\
14.6 Searching \\
14.7 Binary Search \\
14.8 Sorting Real Data \\
15: The Java Collections Framework \\
15.1. An Overview of the Collections Framework \\
15.2. Linked Lists \\
15.3. Stacks, Queues, and Priority Queues \\
15.4. Sets \\
15.5. Maps \\
Appendices \\
Appendix A: The Basic Latin and Latin-1 Subsets of
Unicode \\
Appendix B: Java Operator Summary \\
Appendix C: Java Reserved Word Summary \\
Appendix D: The Java Library \\
Appendix E: Java Syntax Summary (Online only) \\
Appendix F: HTML Summary (Online only) \\
Appendix G: Tool Summary (Online only) \\
Appendix H: Javadoc Summary (Online only)",
}
@Article{Hosking:2012:CHL,
author = "Tony Hosking",
title = "Compiling a high-level language for {GPUs}: (via
language support for architectures and compilers)",
journal = j-SIGPLAN,
volume = "47",
number = "6",
pages = "1--12",
month = jun,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2345156.2254066",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 6 16:31:49 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "PLDI '12 proceedings.",
abstract = "Languages such as OpenCL and CUDA offer a standard
interface for general-purpose programming of GPUs.
However, with these languages, programmers must
explicitly manage numerous low-level details involving
communication and synchronization. This burden makes
programming GPUs difficult and error-prone, rendering
these powerful devices inaccessible to most
programmers. We desire a higher-level programming model
that makes GPUs more accessible while also effectively
exploiting their computational power. This paper
presents features of Lime, a new Java-compatible
language targeting heterogeneous systems, that allow an
optimizing compiler to generate high quality GPU code.
The key insight is that the language type system
enforces isolation and immutability invariants that
allow the compiler to optimize for a GPU without heroic
compiler analysis. Our compiler attains GPU speedups
between 75\% and 140\% of the performance of native
OpenCL code.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Huang:2012:RRC,
author = "Wei Huang and Ana Milanova and Werner Dietl and
Michael D. Ernst",
title = "{Reim \& ReImInfer}: checking and inference of
reference immutability and method purity",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "879--896",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384680",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Reference immutability ensures that a reference is not
used to modify the referenced object, and enables the
safe sharing of object structures. A pure method does
not cause side-effects on the objects that existed in
the pre-state of the method execution. Checking and
inference of reference immutability and method purity
enables a variety of program analyses and
optimizations. We present ReIm, a type system for
reference immutability, and ReImInfer, a corresponding
type inference analysis. The type system is concise and
context-sensitive. The type inference analysis is
precise and scalable, and requires no manual
annotations. In addition, we present a novel
application of the reference immutability type system:
method purity inference. To support our theoretical
results, we implemented the type system and the type
inference analysis for Java. We include a type checker
to verify the correctness of the inference result.
Empirical results on Java applications and libraries of
up to 348kLOC show that our approach achieves both
scalability and precision.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{hunEom:2012:DDP,
author = "Yong hun Eom and Stephen Yang and James C. Jenista and
Brian Demsky",
title = "{DOJ}: dynamically parallelizing object-oriented
programs",
journal = j-SIGPLAN,
volume = "47",
number = "8",
pages = "85--96",
month = aug,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2370036.2145828",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Sep 12 12:11:57 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPOPP '12 conference proceedings.",
abstract = "We present Dynamic Out-of-Order Java (DOJ), a dynamic
parallelization approach. In DOJ, a developer annotates
code blocks as tasks to decouple these blocks from the
parent execution thread. The DOJ compiler then analyzes
the code to generate heap examiners that ensure the
parallel execution preserves the behavior of the
original sequential program. Heap examiners dynamically
extract heap dependences between code blocks and
determine when it is safe to execute a code block. We
have implemented DOJ and evaluated it on twelve
benchmarks. We achieved an average compilation speedup
of 31.15 times over OoOJava and an average execution
speedup of 12.73 times over sequential versions of the
benchmarks.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{hunEom:2012:SSJ,
author = "Yong hun Eom and Brian Demsky",
title = "Self-stabilizing {Java}",
journal = j-SIGPLAN,
volume = "47",
number = "6",
pages = "287--298",
month = jun,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2345156.2254099",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 6 16:31:49 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "PLDI '12 proceedings.",
abstract = "Self-stabilizing programs automatically recover from
state corruption caused by software bugs and other
sources to reach the correct state. A number of
applications are inherently self-stabilizing---such
programs typically overwrite all non-constant data with
new input data. We present a type system and static
analyses that together check whether a program is
self-stabilizing. We combine this with a code
generation strategy that ensures that a program
continues executing long enough to self-stabilize. Our
experience using SJava indicates that (1) SJava
annotations are easy to write once one understands a
program and (2) SJava successfully checked that several
benchmarks were self-stabilizing.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{Hunt:2012:JP,
author = "Charlie Hunt and Binu John",
title = "{Java} Performance",
publisher = pub-AW,
address = pub-AW,
pages = "xxi + 693",
year = "2012",
ISBN = "0-13-714252-8 (paperback)",
ISBN-13 = "978-0-13-714252-1 (paperback)",
LCCN = "QA76.73.J38 H845 2012",
bibdate = "Thu Dec 4 13:30:51 MST 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
series = "The Java series",
acknowledgement = ack-nhfb,
author-dates = "1962--",
subject = "Java (Computer program language); Computer
programming",
tableofcontents = "Strategies, approaches, and methodologies \\
Operating system performance monitoring \\
JVM overview \\
JVM performance monitoring \\
Java application profiling \\
Java application profiling tips and tricks \\
Tuning the JVM, step by step \\
Benchmarking Java applications \\
Benchmarking multi-tiered applications \\
Web application performance \\
Web services performance \\
Java persistence and enterprise Java Beans
performance",
}
@Article{Inoue:2012:AML,
author = "Hiroshi Inoue and Hiroshige Hayashizaki and Peng Wu
and Toshio Nakatani",
title = "Adaptive multi-level compilation in a trace-based
{Java JIT} compiler",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "179--194",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384630",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "This paper describes our multi-level compilation
techniques implemented in a trace-based Java JIT
compiler (trace-JIT). Like existing multi-level
compilation for method-based compilers, we start JIT
compilation with a small compilation scope and a low
optimization level so the program can start running
quickly. Then we identify hot paths with a timer-based
sampling profiler, generate long traces that capture
the hot paths, and recompile them with a high
optimization level to improve the peak performance. A
key to high performance is selecting long traces that
effectively capture the entire hot paths for upgrade
recompilations. To do this, we introduce a new
technique to generate a directed graph representing the
control flow, a TTgraph, and use the TTgraph in the
trace selection engine to efficiently select long
traces. We show that our multi-level compilation
improves the peak performance of programs by up to
58.5\% and 22.2\% on average compared to compiling all
of the traces only at a low optimization level.
Comparing the performance with our multi-level
compilation to the performance when compiling all of
the traces at a high optimization level, our technique
can reduce the startup times of programs by up to
61.1\% and 31.3\% on average without significant
reduction in the peak performance. Our results show
that our adaptive multi-level compilation can balance
the peak performance and startup time by taking
advantage of different optimization levels.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Inoue:2012:ISC,
author = "Hiroshi Inoue and Toshio Nakatani",
title = "Identifying the sources of cache misses in {Java}
programs without relying on hardware counters",
journal = j-SIGPLAN,
volume = "47",
number = "11",
pages = "133--142",
month = nov,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2426642.2259014",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jan 10 08:55:30 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "ISMM '12 conference proceedings.",
abstract = "Cache miss stalls are one of the major sources of
performance bottlenecks for multicore processors. A
Hardware Performance Monitor (HPM) in the processor is
useful for locating the cache misses, but is rarely
used in the real world for various reasons. It would be
better to find a simple approach to locate the sources
of cache misses and apply runtime optimizations without
relying on an HPM. This paper shows that pointer
dereferencing in hot loops is a major source of cache
misses in Java programs. Based on this observation, we
devised a new approach to identify the instructions and
objects that cause frequent cache misses. Our heuristic
technique effectively identifies the majority of the
cache misses in typical Java programs by matching the
hot loops to simple idiomatic code patterns. On
average, our technique selected only 2.8\% of the load
and store instructions generated by the JIT compiler
and these instructions accounted for 47\% of the L1D
cache misses and 49\% of the L2 cache misses caused by
the JIT-compiled code. To prove the effectiveness of
our technique in compiler optimizations, we prototyped
object placement optimizations, which align objects in
cache lines or collocate paired objects in the same
cache line to reduce cache misses. For comparison, we
also implemented the same optimizations based on the
accurate information obtained from the HPM. Our results
showed that our heuristic approach was as effective as
the HPM-based approach and achieved comparable
performance improvements in the {\tt SPECjbb2005} and
{\tt SPECpower\_ssj2008} benchmark programs.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@InProceedings{Islam:2012:HPR,
author = "N. S. Islam and M. W. Rahman and J. Jose and R.
Rajachandrasekar and H. Wang and H. Subramoni and C.
Murthy and D. K. Panda",
title = "High performance {RDMA}-based design of {HDFS} over
{InfiniBand}",
crossref = "Hollingsworth:2012:SPI",
pages = "35:1--35:12",
year = "2012",
bibdate = "Thu Nov 15 07:38:35 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/supercomputing2012.bib",
URL = "http://conferences.computer.org/sc/2012/papers/1000a058.pdf",
abstract = "Hadoop Distributed File System (HDFS) acts as the
primary storage of Hadoop and has been adopted by
reputed organizations (Facebook, Yahoo! etc.) due to
its portability and fault-tolerance. The existing
implementation of HDFS uses Java-socket interface for
communication which delivers suboptimal performance in
terms of latency and throughput. For data-intensive
applications, network performance becomes key component
as the amount of data being stored and replicated to
HDFS increases. In this paper, we present a novel
design of HDFS using Remote Direct Memory Access (RDMA)
over InfiniBand via JNI interfaces. Experimental
results show that, for 5GB HDFS file writes, the new
design reduces the communication time by 87\% and 30\%
over 1Gigabit Ethernet (1GigE) and IP-over-InfiniBand
(IPoIB), respectively, on QDR platform (32Gbps). For
HBase, the Put operation performance is improved by
26\% with our design. To the best of our knowledge,
this is the first design of HDFS over InfiniBand
networks.",
acknowledgement = ack-nhfb,
articleno = "35",
}
@Article{Jara:2012:NVJ,
author = "Carlos A. Jara and Francisco Esquembre and Wolfgang
Christian and Francisco A. Candelas and Fernando Torres
and Sebasti{\'a}n Dormido",
title = "A new {$3$D} visualization {Java} framework based on
physics principles",
journal = j-COMP-PHYS-COMM,
volume = "183",
number = "2",
pages = "231--244",
month = feb,
year = "2012",
CODEN = "CPHCBZ",
DOI = "https://doi.org/10.1016/j.cpc.2011.08.007",
ISSN = "0010-4655 (print), 1879-2944 (electronic)",
ISSN-L = "0010-4655",
bibdate = "Sat Feb 11 10:11:01 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S0010465511002797",
acknowledgement = ack-nhfb,
fjournal = "Computer Physics Communications",
journal-URL = "http://www.sciencedirect.com/science/journal/00104655",
}
@Book{Jendrock:2012:JET,
author = "Eric Jendrock",
title = "The {Java EE 6} Tutorial: advanced topics",
volume = "II",
publisher = pub-AW,
address = pub-AW,
edition = "Fourth",
pages = "????",
year = "2012",
ISBN = "0-13-708186-3 (paperback)",
ISBN-13 = "978-0-13-708186-8 (paperback)",
LCCN = "????",
bibdate = "Mon Jan 28 12:24:06 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
acknowledgement = ack-nhfb,
}
@Article{Ji:2012:PKP,
author = "Ran Ji and Richard Bubel",
title = "{PE-KeY}: a Partial Evaluator for {Java} Programs",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7321",
pages = "283--295",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-30729-4_20",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:20:00 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-30729-4_20/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-30729-4",
book-URL = "http://www.springerlink.com/content/978-3-642-30729-4",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Jin:2012:JMM,
author = "Huafeng Jin and Tuba Yavuz-Kahveci and Beverly A.
Sanders",
title = "{Java} Memory Model-Aware Model Checking",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7214",
pages = "220--236",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28756-5_16",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:26:28 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012c.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28756-5_16/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28756-5",
book-URL = "http://www.springerlink.com/content/978-3-642-28756-5",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Johnsen:2012:SLM,
author = "Einar Broch Johnsen and Thi Mai Thuong Tran and Olaf
Owe",
title = "Safe Locking for Multi-threaded {Java}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7141",
pages = "158--173",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-29320-7_11",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:56 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-29320-7_11/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-29320-7",
book-URL = "http://www.springerlink.com/content/978-3-642-29320-7",
fjournal = "Lecture Notes in Computer Science",
}
@Book{Juneau:2012:JRP,
author = "Josh Juneau and others",
title = "{Java 7} recipes: a problem-solution approach",
publisher = pub-APRESS,
address = pub-APRESS:adr,
pages = "xxii + 848",
year = "2012",
ISBN = "1-4302-4056-3 (paperback)",
ISBN-13 = "978-1-4302-4056-3 (paperback)",
LCCN = "QA76.73.J38 J35946 2012",
bibdate = "Tue May 12 16:05:50 MDT 2015",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/unicode.bib;
z3950.loc.gov:7090/Voyager",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language); Application
software; Development",
tableofcontents = "Getting started with Java 7 \\
Strings \\
Numbers and dates \\
Data structures, conditionals, and iteration \\
Input and output \\
Exceptions and logging \\
Object-oriented Java \\
Concurrency \\
Debugging and unit testing \\
Unicode, internationalization, and currency codes \\
Working with databases \\
Java 2D graphics \\
Java 3D \\
Swing API \\
JavaFX fundamentals \\
Graphics with JavaFX \\
Media with JavaFX \\
Working with servlets and applets \\
Intro to Android \\
JavaFX on the web \\
E-mail \\
XML processing \\
Networking",
}
@Article{Jung:2012:EJA,
author = "Dong-Heon Jung and Soo-Mook Moon and Sung-Hwan Bae",
title = "Evaluation of a {Java} Ahead-of-Time Compiler for
Embedded Systems",
journal = j-COMP-J,
volume = "55",
number = "2",
pages = "232--252",
month = feb,
year = "2012",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/bxr100",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Thu Feb 2 09:12:17 MST 2012",
bibsource = "http://comjnl.oxfordjournals.org/content/55/2.toc;
http://www.math.utah.edu/pub/tex/bib/compj2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://comjnl.oxfordjournals.org/content/55/2/232.full.pdf+html",
acknowledgement = ack-nhfb,
fjournal = "Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
onlinedate = "October 5, 2011",
}
@Article{Kang:2012:FSJ,
author = "Seonghoon Kang and Sukyoung Ryu",
title = "Formal specification of a {JavaScript} module system",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "621--638",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384661",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "The JavaScript programming language, originally
developed as a simple scripting language, is now the
language of choice for web applications. All the top
100 sites on the web use JavaScript and its use outside
web pages is rapidly growing. However, JavaScript is
not yet ready for programming in the large: it does not
support a module system. Lack of namespaces introduces
module patterns, and makes it difficult to use multiple
JavaScript frameworks together. In this paper, we
propose a formal specification of a JavaScript module
system. A module system for JavaScript will allow safe
and incremental development of JavaScript web
applications. While the next version of the JavaScript
standard proposes a module system, it informally
describes its design in prose. We formally specify a
module system as an extension to the existing
JavaScript language, and rigorously describe its
semantics via desugaring to LambdaJS, a prior core
calculus for JavaScript. We implement the desugaring
process and show its faithfulness using real-world test
suites. Finally, we define a set of properties for
valid JavaScript programs using modules and formally
prove that the proposed module system satisfies the
validity properties.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Kastner:2012:TCA,
author = "Christian K{\"a}stner and Sven Apel and Thomas
Th{\"u}m and Gunter Saake",
title = "Type checking annotation-based product lines",
journal = j-TOSEM,
volume = "21",
number = "3",
pages = "14:1--14:??",
month = jun,
year = "2012",
CODEN = "ATSMER",
DOI = "https://doi.org/10.1145/2211616.2211617",
ISSN = "1049-331X (print), 1557-7392 (electronic)",
ISSN-L = "1049-331X",
bibdate = "Fri Jun 29 18:08:30 MDT 2012",
bibsource = "http://www.acm.org/pubs/contents/journals/tosem/;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tosem.bib",
abstract = "Software product line engineering is an efficient
means of generating a family of program variants for a
domain from a single code base. However, because of the
potentially high number of possible program variants,
it is difficult to test them all and ensure properties
like type safety for the entire product line. We
present a product-line-aware type system that can type
check an entire software product line without
generating each variant in isolation. Specifically, we
extend the Featherweight Java calculus with feature
annotations for product-line development and prove
formally that all program variants generated from a
well typed product line are well typed. Furthermore, we
present a solution to the problem of typing mutually
exclusive features. We discuss how results from our
formalization helped implement our own product-line
tool CIDE for full Java and report of our experience
with detecting type errors in four existing software
product line implementations.",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "ACM Transactions on Software Engineering and
Methodology",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J790",
}
@Article{Khyzha:2012:AP,
author = "Artem Khyzha and Pavel Par{\'\i}zek and Corina S.
P{\u{a}}s{\u{a}}reanu",
title = "Abstract pathfinder",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382794",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "We present Abstract Pathfinder, an extension to the
Java Pathfinder (JPF) verification tool-set that
supports data abstraction to reduce the large data
domains of a Java program to small, finite abstract
domains, making the program more amenable to
verification. We use data abstraction to compute an
over-approximation of the original program in such a
way that if a (safety) property is true in the
abstracted program the property is also true in the
original program. Our approach enhances JPF with an
abstract interpreter and abstract state-matching
mechanisms, together with a library of abstractions
from which the user can pick which abstractions to use
for a particular application. We discuss the details of
our implementation together with some preliminary
experiments with analyzing multi-threaded Java
programs, where Abstract Pathfinder achieves
significant time and memory savings as compared with
plain JPF.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Kossakowski:2012:JED,
author = "Grzegorz Kossakowski and Nada Amin and Tiark Rompf and
Martin Odersky",
title = "{JavaScript} as an Embedded {DSL}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7313",
pages = "409--434",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31057-7_19",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:19:51 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31057-7_19/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31057-7",
book-URL = "http://www.springerlink.com/content/978-3-642-31057-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Kouneli:2012:MKD,
author = "Aggeliki Kouneli and Georgia Solomou and Christos
Pierrakeas and Achilles Kameas",
title = "Modeling the Knowledge Domain of the {Java}
Programming Language as an Ontology",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7558",
pages = "152--159",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-33642-3_16",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:55 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012j.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-33642-3_16/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-33642-3",
book-URL = "http://www.springerlink.com/content/978-3-642-33642-3",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Krishnamurthi:2012:SAJ,
author = "Shriram Krishnamurthi",
title = "Semantics and Analyses for {JavaScript} and the
{Web}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7460",
pages = "4--4",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-33125-1_3",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:23:03 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012h.bib",
URL = "http://link.springer.com/accesspage/chapter/10.1007/978-3-642-33125-1_3",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-33125-1",
book-URL = "http://www.springerlink.com/content/978-3-642-33125-1",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Krishnaveni:2012:HOJ,
author = "R. Krishnaveni and C. Chellappan and R. Dhanalakshmi",
title = "Hybrid Obfuscated {Javascript} Strength Analysis
System for Detection of Malicious Websites",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7513",
pages = "129--137",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-35606-3_15",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:06 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012i.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-35606-3_15/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-35606-3",
book-URL = "http://www.springerlink.com/content/978-3-642-35606-3",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Kulkarni:2012:MCO,
author = "Sameer Kulkarni and John Cavazos",
title = "Mitigating the compiler optimization phase-ordering
problem using machine learning",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "147--162",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384628",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Today's compilers have a plethora of optimizations to
choose from, and the correct choice of optimizations
can have a significant impact on the performance of the
code being optimized. Furthermore, choosing the correct
order in which to apply those optimizations has been a
long standing problem in compilation research. Each of
these optimizations interacts with the code and in turn
with all other optimizations in complicated ways.
Traditional compilers typically apply the same set of
optimization in a fixed order to all functions in a
program, without regard the code being optimized.
Understanding the interactions of optimizations is very
important in determining a good solution to the
phase-ordering problem. This paper develops a new
approach that automatically selects good optimization
orderings on a per method basis within a dynamic
compiler. Our approach formulates the phase-ordering
problem as a Markov process and uses a characterization
of the current state of the code being optimized to
creating a better solution to the phase ordering
problem. Our technique uses neuro-evolution to
construct an artificial neural network that is capable
of predicting beneficial optimization ordering for a
piece of code that is being optimized. We implemented
our technique in Jikes RVM and achieved significant
improvements on a set of standard Java benchmarks over
a well-engineered fixed order.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Kumar:2012:WSB,
author = "Vivek Kumar and Daniel Frampton and Stephen M.
Blackburn and David Grove and Olivier Tardieu",
title = "Work-stealing without the baggage",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "297--314",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384639",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Work-stealing is a promising approach for effectively
exploiting software parallelism on parallel hardware. A
programmer who uses work-stealing explicitly identifies
potential parallelism and the runtime then schedules
work, keeping otherwise idle hardware busy while
relieving overloaded hardware of its burden. Prior work
has demonstrated that work-stealing is very effective
in practice. However, work-stealing comes with a
substantial overhead: as much as 2x to 12x slowdown
over orthodox sequential code. In this paper we
identify the key sources of overhead in work-stealing
schedulers and present two significant refinements to
their implementation. We evaluate our work-stealing
designs using a range of benchmarks, four different
work-stealing implementations, including the popular
fork-join framework, and a range of architectures. On
these benchmarks, compared to orthodox sequential Java,
our fastest design has an overhead of just 15\%. By
contrast, fork-join has a 2.3x overhead and the
previous implementation of the system we use has an
overhead of 4.1x. These results and our insight into
the sources of overhead for work-stealing
implementations give further hope to an already
promising technique for exploiting increasingly
available hardware parallelism.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Laskowski:2012:DJP,
author = "Eryk Laskowski and Marek Tudruj and Ivanoe {De Falco}
and Umberto Scafuri and Ernesto Tarantino",
title = "Distributed {Java} Programs Initial Mapping Based on
Extremal Optimization",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7133",
pages = "75--85",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-28151-8_8",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:46 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-28151-8_8/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-28151-8",
book-URL = "http://www.springerlink.com/content/978-3-642-28151-8",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Lin:2012:UKT,
author = "Yi Lin and Stephen M. Blackburn and Daniel Frampton",
title = "Unpicking the knot: teasing apart {VM}\slash
application interdependencies",
journal = j-SIGPLAN,
volume = "47",
number = "7",
pages = "181--190",
month = jul,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2365864.2151048",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Sep 6 10:01:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "VEE '12 conference proceedings.",
abstract = "Flexible and efficient runtime design requires an
understanding of the dependencies among the components
internal to the runtime and those between the
application and the runtime. These dependencies are
frequently unclear. This problem exists in all runtime
design, and is most vivid in a metacircular runtime ---
one that is implemented in terms of itself.
Metacircularity blurs boundaries between application
and runtime implementation, making it harder to
understand and make guarantees about overall system
behavior, affecting isolation, security, and resource
management, as well as reducing opportunities for
optimization. Our goal is to shed new light on VM
interdependencies, helping all VM designers understand
these dependencies and thereby engineer better
runtimes. We explore these issues in the context of a
high-performance Java-in-Java virtual machine. Our
approach is to identify and instrument transition
points into and within the runtime, which allows us to
establish a dynamic execution context. Our
contributions are: (1) implementing and measuring a
system that dynamically maintains execution context
with very low overhead, (2) demonstrating that such a
framework can be used to improve the software
engineering of an existing runtime, and (3) analyzing
the behavior and runtime characteristics of our runtime
across a wide range of benchmarks. Our solution
provides clarity about execution state and allowable
transitions, making it easier to develop, debug, and
understand managed runtimes.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Liu:2012:PAA,
author = "P. Liu and C. Zhang",
title = "{Pert}: The Application-Aware Tailoring of {Java}
Object Persistence",
journal = j-IEEE-TRANS-SOFTW-ENG,
volume = "38",
number = "4",
pages = "909--922",
month = jul # "\slash " # aug,
year = "2012",
CODEN = "IESEDJ",
DOI = "https://doi.org/10.1109/TSE.2011.66",
ISSN = "0098-5589 (print), 1939-3520 (electronic)",
ISSN-L = "0098-5589",
bibdate = "Thu Feb 1 19:49:24 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5963692",
acknowledgement = ack-nhfb,
fjournal = "IEEE Transactions on Software Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}
@Book{Long:2012:COS,
author = "F. W. (Frederick W.) Long and Dhruv Mohindra and
Robert Seacord and Dean Sutherland and David Svoboda",
title = "The {CERT} {Oracle} secure coding standard for
{Java}",
publisher = pub-AW,
address = pub-AW,
pages = "xxxiv + 699",
year = "2012",
ISBN = "0-321-80395-7 (paperback)",
ISBN-13 = "978-0-321-80395-5 (paperback)",
LCCN = "QA76.73.J38 C44 2012",
bibdate = "Thu Dec 1 05:58:24 MST 2011",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
series = "The SEI series in software engineering",
URL = "http://ptgmedia.pearsoncmg.com/images/9780321803955/samplepages/0321803957.pdf",
abstract = "``In the Java world, security is not viewed as an
add-on a feature. It is a pervasive way of thinking.
Those who forget to think in a secure mindset end up in
trouble. But just because the facilities are there
doesn't mean that security is assured automatically. A
set of standard practices has evolved over the years.
The Secure{\'y} Coding{\'y} Standard for Java is a
compendium of these practices. These are not
theoretical research papers or product marketing
blurbs. This is all serious, mission-critical,
battle-tested, enterprise-scale stuff.''-- James A.
Gosling, Father of the Java Programming Language An
essential element of secure coding in the Java
programming language is a well-documented and
enforceable coding standard. Coding standards encourage
programmers to follow a uniform set of rules determined
by the requirements of the project and organization,
rather than by the programmer's familiarity or
preference. Once established, these standards can be
used as a metric to evaluate source code (using manual
or automated processes). The CERT{\'y} Oracle{\'y}
Secure Coding Standard for Java provides rules designed
to eliminate insecure coding practices that can lead to
exploitable vulnerabilities. Application of the
standard's guidelines will lead to higher-quality
systems - robust systems that are more resistant to
attack. Such guidelines are required for the wide range
of products coded in Java - for devices such as PCs,
game players, mobile phones, home appliances, and
automotive electronics. After a high-level introduction
to Java application security, seventeen consistently
organized chapters detail specific rules for key areas
of Java development. For each area, the authors present
noncompliant examples and corresponding compliant
solutions, show how to assess risk, and offer
references for further information. Each rule is
prioritized based on the severity of consequences,
likelihood of introducing exploitable vulnerabilities,
and cost of remediation. The standard provides secure
coding rules for the Java SE 6 Platform including the
Java programming language and libraries, and also
addresses new features of the Java SE 7 Platform. It
describes language behaviors left to the discretion of
JVM and compiler implementers, guides developers in the
proper use of Java's APIs and security architecture,
and considers security concerns pertaining to standard
extension APIs (from the javax package hierarchy).",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language); Computer security;
Oracle (Computer file); Computer programming;
Standards",
tableofcontents = "1: Introduction \\
Misplaced Trust \\
Injection Attacks \\
Leaking Sensitive Data \\
Leaking Capabilities \\
Denial of Service \\
Serialization \\
Concurrency, Visibility, and Memory \\
Principle of Least Privilege \\
Security Managers \\
Class Loaders \\
Summary \\
2: Input Validation and Data Sanitization (IDS) \\
Rules \\
Risk Assessment Summary \\
IDS00-J: Sanitize untrusted data passed across a trust
boundary \\
IDS01-J: Normalize strings before validating them \\
IDS02-J: Canonicalize path names before validating them
\\
IDS03-J: Do not log unsanitized user input \\
IDS04-J: Limit the size of files passed to
ZipInputStream \\
IDS05-J: Use a subset of ASCII for file and path names
\\
IDS06-J: Exclude user input from format strings \\
IDS07-J: Do not pass untrusted, unsanitized data to the
Runtime.exec() method \\
IDS08-J: Sanitize untrusted data passed to a regex \\
IDS09-J: Do not use locale-dependent methods on
locale-dependent data without specifying the
appropriate locale \\
IDS10-J: Do not split characters between two data
structures \\
IDS11-J: Eliminate noncharacter code points before
validation \\
IDS12-J: Perform lossless conversion of String data
between differing character encodings \\
IDS13-J: Use compatible encodings on both sides of file
or network I/O \\
3: Declarations and Initialization (DCL) \\
Rules \\
Risk Assessment Summary \\
DCL00-J: Prevent class initialization cycles \\
DCL01-J: Do not reuse public identifiers from the Java
Standard Library \\
DCL02-J: Declare all enhanced for statement loop
variables final \\
4: Expressions (EXP) \\
Rules \\
Risk Assessment Summary \\
EXP00-J: Do not ignore values returned by methods \\
EXP01-J: Never dereference null pointers \\
EXP02-J: Use the two-argument Arrays.equals() method to
compare the contents of arrays \\
EXP03-J: Do not use the equality operators when
comparing values of boxed primitives \\
EXP04-J: Ensure that autoboxed values have the intended
type \\
EXP05-J: Do not write more than once to the same
variable within an expression \\
EXP06-J: Do not use side-effecting expressions in
assertions \\
5: Numeric Types and Operations (NUM) \\
Rules \\
Risk Assessment Summary \\
NUM00-J: Detect or prevent integer overflow \\
NUM01-J: Do not perform bitwise and arithmetic
operations on the same data \\
NUM02-J: Ensure that division and modulo operations do
not result in divide-by-zero errors \\
NUM03-J: Use integer types that can fully represent the
possible range of unsigned data \\
NUM04-J: Do not use floating-point numbers if precise
computation is required \\
NUM05-J: Do not use denormalized numbers \\
NUM06-J: Use the strictfp modifier for floating-point
calculation consistency across platforms \\
NUM07-J: Do not attempt comparisons with NaN \\
NUM08-J: Check floating-point inputs for exceptional
values \\
NUM09-J: Do not use floating-point variables as loop
counters \\
NUM10-J: Do not construct BigDecimal objects from
floating-point literals \\
NUM11-J: Do not compare or inspect the string
representation of floating-point values \\
NUM12-J: Ensure conversions of numeric types to
narrower types do not result in lost or misinterpreted
data \\
NUM13-J: Avoid loss of precision when converting
primitive integers to floating-point \\
6: Object Orientation (OBJ) \\
Rules \\
Risk Assessment Summary \\
OBJ00-J: Limit extensibility of classes and methods
with invariants to trusted subclasses only \\
OBJ01-J: Declare data members as private and provide
accessible wrapper methods \\
OBJ02-J: Preserve dependencies in subclasses when
changing superclasses \\
OBJ03-J: Do not mix generic with nongeneric raw types
in new code \\
OBJ04-J: Provide mutable classes with copy
functionality to safely allow passing instances to
untrusted code \\
OBJ05-J: Defensively copy private mutable class members
before returning their references \\
OBJ06-J: Defensively copy mutable inputs and mutable
internal components \\
OBJ07-J: Sensitive classes must not let themselves be
copied \\
OBJ08-J: Do not expose private members of an outer
class from within a nested class \\
OBJ09-J: Compare classes and not class names \\
OBJ10-J: Do not use public static nonfinal variables
\\
OBJ11-J: Be wary of letting constructors throw
exceptions \\
7: Methods (MET) \\
Rules \\
Risk Assessment Summary \\
MET00-J: Validate method arguments \\
MET01-J: Never use assertions to validate method
arguments \\
MET02-J: Do not use deprecated or obsolete classes or
methods \\
MET03-J: Methods that perform a security check must be
declared private or final \\
MET04-J: Do not increase the accessibility of
overridden or hidden methods \\
MET05-J: Ensure that constructors do not call
overridable methods \\
MET06-J: Do not invoke overridable methods in clone()
\\
MET07-J: Never declare a class method that hides a
method declared in a superclass or superinterface \\
MET08-J: Ensure objects that are equated are equatable
\\
MET09-J: Classes that define an equals() method must
also define a hashCode() method \\
MET10-J: Follow the general contract when implementing
the compareTo() method \\
MET11-J: Ensure that keys used in comparison operations
are immutable \\
MET12-J: Do not use finalizers \\
8: Exceptional Behavior (ERR) \\
Rules \\
Risk Assessment Summary \\
ERR00-J: Do not suppress or ignore checked exceptions
\\
ERR01-J: Do not allow exceptions to expose sensitive
information \\
ERR02-J: Prevent exceptions while logging data \\
ERR03-J: Restore prior object state on method failure
\\
ERR04-J: Do not exit abruptly from a finally block \\
ERR05-J: Do not let checked exceptions escape from a
finally block \\
ERR06-J: Do not throw undeclared checked exceptions \\
ERR07-J: Do not throw RuntimeException, Exception, or
Throwable \\
ERR08-J: Do not catch NullPerinterException or any of
its ancestors \\
ERR09-J: Do not allow untrusted code to terminate the
JVM \\
9: Visibility and Atomicity (VNA) \\
Rules \\
Risk Assessment Summary \\
VNA00-J: Ensure visibility when accessing shared
primitive variables \\
VNA01-J: Ensure visibility of shared references to
immutable objects \\
VNA02-J: Ensure that compound operations on shared
variables are atomic \\
VNA03-J: Do not assume that a group of calls to
independently atomic methods is atomic \\
VNA04-J: Ensure that calls to chained methods are
atomic \\
VNA05-J: Ensure atomicity when reading and writing
64-bit values \\
10: Locking (LCK) \\
Rules \\
Risk Assessment Summary \\
LCK00-J: Use private final lock objects to synchronize
classes that may interact with untrusted code \\
LCK01-J: Do not synchronize on objects that may be
reused \\
LCK02-J: Do not synchronize on the class object
returned by getClass() \\
LCK03-J: Do not synchronize on the intrinsic locks of
high-level concurrency objects \\
LCK04-J: Do not synchronize on a collection view if the
backing collection is accessible \\
LCK05-J: Synchronize access to static fields that can
be modified by untrusted code \\
LCK06-J: Do not use an instance lock to protect shared
static data \\
LCK07-J: Avoid deadlock by requesting and releasing
locks in the same order \\
LCK08-J: Ensure actively held locks are released on
exceptional conditions \\
LCK09-J: Do not perform operations that can block while
holding a lock \\
LCK10-J: Do not use incorrect forms of the
double-checked locking idiom \\
LCK11-J: Avoid client-side locking when using classes
that do not commit to their locking strategy \\
11: Thread APIs (THI) \\
Rules \\
Risk Assessment Summary \\
THI00-J: Do not invoke Thread.run() \\
THI01-J: Do not invoke ThreadGroup methods \\
THI02-J: Notify all waiting threads rather than a
single thread \\
THI03-J: Always invoke wait() and await() methods
inside a loop \\
THI04-J: Ensure that threads performing blocking
operations can be terminated \\
THI05-J: Do not use Thread.stop() to terminate threads
\\
12: Thread Pools (TPS) \\
Rules \\
Risk Assessment Summary \\
TPS00-J: Use thread pools to enable graceful
degradation of service during traffic bursts \\
TPS01-J: Do not execute interdependent tasks in a
bounded thread pool \\
TPS02-J: Ensure that tasks submitted to a thread pool
are interruptible \\
TPS03-J: Ensure that tasks executing in a thread pool
do not fail silently \\
TPS04-J: Ensure ThreadLocal variables are reinitialized
when using thread pools \\
13: Thread-Safety Miscellaneous (TSM) \\
Rules \\
Risk Assessment Summary \\
TSM00-J: Do not override thread-safe methods with
methods that are not thread-safe \\
TSM01-J: Do not let the this reference escape during
object construction \\
TSM02-J: Do not use background threads during class
initialization \\
TSM03-J: Do not publish partially initialized objects
\\
14: Input Output (FIO) \\
Rules \\
Risk Assessment Summary \\
FIO00-J: Do not operate on files in shared directories
\\
FIO01-J: Create files with appropriate access
permissions \\
FIO02-J: Detect and handle file-related errors \\
FIO03-J: Remove temporary files before termination \\
FIO04-J: Close resources when they are no longer needed
\\
FIO05-J: Do not expose buffers created using the wrap()
or duplicate() methods to untrusted code \\
FIO06-J: Do not create multiple buffered wrappers on a
single InputStream \\
FIO07-J: Do not let external processes block on input
and output streams \\
FIO08-J: Use an int to capture the return value of
methods that read a character or byteNote continued:
FIO09-J: Do not rely on the write() method to output
integers outside the range 0 to 255 \\
FIO10-J: Ensure the array is filled when using read()
to fill an array \\
FIO11-J: Do not attempt to read raw binary data as
character data \\
FIO12-J: Provide methods to read and write
little-endian data \\
FI013-J: Do not log sensitive information outside a
trust boundary \\
FI014-J: Perform proper cleanup at program termination
\\
15: Serialization (SER) \\
Rules \\
Risk Assessment Summary \\
SER00-J: Maintain serialization compatibility during
class evolution \\
SER01-J: Do not deviate from the proper signatures of
serialization methods \\
SER02-J: Sign then seal sensitive objects before
sending them across a trust boundary \\
SER03-J: Do not serialize unencrypted, sensitive data
\\
SER04-J: Do not allow serialization and deserialization
to bypass the security manager \\
SER05-J: Do not serialize instances of inner classes
\\
SER06-J: Make defensive copies of private mutable
components during deserialization \\
SER07-J: Do not use the default serialized form for
implementation-defined invariants \\
SER08-J: Minimize privileges before deserializing from
a privileged context \\
SER09-J: Do not invoke overridable methods from the
readObject() method \\
SER10-J: Avoid memory and resource leaks during
serialization \\
SER11-J: Prevent overwriting of externalizable objects
\\
16: Platform Security (SEC) \\
Rules \\
Risk Assessment Summary \\
SEC00-J: Do not allow privileged blocks to leak
sensitive information across a trust boundary \\
SEC01-J: Do not allow tainted variables in privileged
blocks \\
SEC02-J: Do not base security checks on untrusted
sources \\
SEC03-J: Do not load trusted classes after allowing
untrusted code to load arbitrary classes \\
SEC04-J: Protect sensitive operations with security
manager checks \\
SEC05-J: Do not use reflection to increase
accessibility of classes, methods, or fields \\
SEC06-J: Do not rely on the default automatic signature
verification provided by URLClassLoader and
java.util.jar \\
SEC07-J: Call the superclass's getPermissions() method
when writing a custom class loader \\
SEC08-J: Define wrappers around native methods \\
17: Runtime Environment (ENV) \\
Rules \\
Risk Assessment Summary \\
ENV00-J: Do not sign code that performs only
unprivileged operations \\
ENV01-J: Place all security-sensitive code in a single
jar and sign and seal it \\
ENV02-J: Do not trust the values of environment
variables \\
ENV03-J: Do not grant dangerous combinations of
permissions \\
ENV04-J: Do not disable bytecode verification \\
ENV05-J: Do not deploy an application that can be
remotely monitored \\
18: Miscellaneous (MSC) \\
Rules \\
Risk Assessment Summary \\
MSC00-J: Use SSLSocket rather than Socket for secure
data exchange \\
MSC01-J: Do not use an empty infinite loop \\
MSC02-J: Generate strong random numbers \\
MSC03-J: Never hard code sensitive information \\
MSC04-J: Do not leak memory \\
MSC05-J: Do not exhaust heap space \\
MSC06-J: Do not modify the underlying collection when
an iteration is in progress \\
MSC07-J: Prevent multiple instantiations of singleton
objects",
}
@Article{Lyon:2012:JTW,
author = "Doug Lyon",
title = "The {Java} Tree Withers",
journal = j-COMPUTER,
volume = "45",
number = "1",
pages = "83--85",
month = jan,
year = "2012",
CODEN = "CPTRB4",
DOI = "https://doi.org/10.1109/MC.2012.30",
ISSN = "0018-9162 (print), 1558-0814 (electronic)",
ISSN-L = "0018-9162",
bibdate = "Tue Jan 24 17:27:23 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computer2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "The Java report card: infrastructure gets a D, code
reuse gets an F.",
acknowledgement = ack-nhfb,
fjournal = "Computer",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}
@Article{Magazinius:2012:SWS,
author = "Jonas Magazinius and Phu H. Phung and David Sands",
title = "Safe Wrappers and Sane Policies for Self Protecting
{JavaScript}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7127",
pages = "239--255",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-27937-9_17",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:40 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012b.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-27937-9_17/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-27937-9",
book-URL = "http://www.springerlink.com/content/978-3-642-27937-9",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Mayer:2012:ESI,
author = "Clemens Mayer and Stefan Hanenberg and Romain Robbes
and {\'E}ric Tanter and Andreas Stefik",
title = "An empirical study of the influence of static type
systems on the usability of undocumented software",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "683--702",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384666",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Abstract Although the study of static and dynamic type
systems plays a major role in research, relatively
little is known about the impact of type systems on
software development. Perhaps one of the more common
arguments for static type systems in languages such as
Java or C++ is that they require developers to annotate
their code with type names, which is thus claimed to
improve the documentation of software. In contrast, one
common argument against static type systems is that
they decrease flexibility, which may make them harder
to use. While these arguments are found in the
literature, rigorous empirical evidence is lacking. We
report on a controlled experiment where 27 subjects
performed programming tasks on an undocumented API with
a static type system (requiring type annotations) as
well as a dynamic type system (which does not). Our
results show that for some tasks, programmers had
faster completion times using a static type system,
while for others, the opposite held. We conduct an
exploratory study to try and theorize why.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{McIntosh:2012:EJB,
author = "Shane McIntosh and Bram Adams and Ahmed E. Hassan",
title = "The evolution of {Java} build systems",
journal = j-EMPIR-SOFTWARE-ENG,
volume = "17",
number = "4--5",
pages = "578--608",
month = aug,
year = "2012",
CODEN = "ESENFW",
DOI = "https://doi.org/10.1007/s10664-011-9169-5",
ISSN = "1382-3256 (print), 1573-7616 (electronic)",
ISSN-L = "1382-3256",
bibdate = "Fri Dec 2 09:14:25 MST 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://link.springer.com/accesspage/article/10.1007/s10664-011-9169-5",
acknowledgement = ack-nhfb,
fjournal = "Empirical Software Engineering",
journal-URL = "http://link.springer.com/journal/10664",
}
@Article{McIntyre:2012:FJB,
author = "Timothy J. McIntyre and Alexis I. Bishop",
title = "{Fringe} --- a {Java}-based finite fringe analysis
package",
journal = j-COMP-PHYS-COMM,
volume = "183",
number = "9",
pages = "2014--2018",
month = sep,
year = "2012",
CODEN = "CPHCBZ",
DOI = "https://doi.org/10.1016/j.cpc.2012.04.011",
ISSN = "0010-4655 (print), 1879-2944 (electronic)",
ISSN-L = "0010-4655",
bibdate = "Thu Jun 7 13:25:14 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/compphyscomm2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S0010465512001506",
acknowledgement = ack-nhfb,
fjournal = "Computer Physics Communications",
journal-URL = "http://www.sciencedirect.com/science/journal/00104655",
}
@Article{Meawad:2012:EBS,
author = "Fadi Meawad and Gregor Richards and Flor{\'e}al
Morandat and Jan Vitek",
title = "{Eval} begone!: semi-automated removal of {\tt eval}
from {JavaScript} programs",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "607--620",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384660",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Eval endows JavaScript developers with great power. It
allows developers and end-users, by turning text into
executable code, to seamlessly extend and customize the
behavior of deployed applications as they are running.
With great power comes great responsibility, though not
in our experience. In previous work we demonstrated
through a large corpus study that programmers wield
that power in rather irresponsible and arbitrary ways.
We showed that most calls to eval fall into a small
number of very predictable patterns. We argued that
those patterns could easily be recognized by an
automated algorithm and that they could almost always
be replaced with safer JavaScript idioms. In this paper
we set out to validate our claim by designing and
implementing a tool, which we call Evalorizer, that can
assist programmers in getting rid of their unneeded
evals. We use the tool to remove eval from a real-world
website and validated our approach over logs taken from
the top 100 websites with a success rate over 97\%
under an open world assumption.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Mercer:2012:CVI,
author = "Eric Mercer and Suzette Person and Neha Rungta",
title = "Computing and visualizing the impact of change with
{Java PathFinder} extensions",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382801",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Change impact analysis techniques estimate the
potential effects of changes made to software. Directed
Incremental Symbolic Execution (DiSE) is a Java
PathFinder extension that computes the impact of
changes on program execution behaviors. The results of
DiSE are a set of impacted path conditions that can be
efficiently processed by a subsequent client analysis.
Path conditions, however, may not be intuitive for
software developers without the context of the source
code. In this paper we present a framework for
visualizing the results of DiSE. The visualization
includes annotated source code and control ow graphs
indicating program statements that are changed and
statements that may be impacted by the changes. A
simulation mode enables users to also observe the
impact of changes on symbolic execution of the program,
by showing the changes to the path conditions as the
user steps through the sequences of statements
executed.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Mesbah:2012:CAB,
author = "Ali Mesbah and Arie van Deursen and Stefan Lenselink",
title = "Crawling {Ajax}-Based {Web} Applications through
Dynamic Analysis of User Interface State Changes",
journal = j-TWEB,
volume = "6",
number = "1",
pages = "3:1--3:??",
month = mar,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.1145/2109205.2109208",
ISSN = "1559-1131 (print), 1559-114X (electronic)",
ISSN-L = "1559-1131",
bibdate = "Fri Mar 16 12:37:41 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tweb.bib",
abstract = "Using JavaScript and dynamic DOM manipulation on the
client side of Web applications is becoming a
widespread approach for achieving rich interactivity
and responsiveness in modern Web applications. At the
same time, such techniques---collectively known as
Ajax---shatter the concept of webpages with unique
URLs, on which traditional Web crawlers are based. This
article describes a novel technique for crawling
Ajax-based applications through automatic dynamic
analysis of user-interface-state changes in Web
browsers. Our algorithm scans the DOM tree, spots
candidate elements that are capable of changing the
state, fires events on those candidate elements, and
incrementally infers a state machine that models the
various navigational paths and states within an Ajax
application. This inferred model can be used in program
comprehension and in analysis and testing of dynamic
Web states, for instance, or for generating a static
version of the application. In this article, we discuss
our sequential and concurrent Ajax crawling algorithms.
We present our open source tool called Crawljax, which
implements the concepts and algorithms discussed in
this article. Additionally, we report a number of
empirical studies in which we apply our approach to a
number of open-source and industrial Web applications
and elaborate on the obtained results.",
acknowledgement = ack-nhfb,
articleno = "3",
fjournal = "ACM Transactions on the Web (TWEB)",
}
@Article{Mirshokraie:2012:JJA,
author = "Shabnam Mirshokraie and Ali Mesbah",
title = "{JSART}: {JavaScript} Assertion-Based Regression
Testing",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7387",
pages = "238--252",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31753-8_18",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:21:29 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012f.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31753-8_18/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31753-8",
book-URL = "http://www.springerlink.com/content/978-3-642-31753-8",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Mirzaei:2012:TAA,
author = "Nariman Mirzaei and Sam Malek and Corina S.
P{\u{a}}s{\u{a}}reanu and Naeem Esfahani and Riyadh
Mahmood",
title = "Testing {Android} apps through symbolic execution",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382798",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
abstract = "There is a growing need for automated testing
techniques aimed at Android apps. A critical challenge
is the systematic generation of test cases. One method
of systematically generating test cases for Java
programs is symbolic execution. But applying symbolic
execution tools, such as Symbolic Pathfinder (SPF), to
generate test cases for Android apps is challenged by
the fact that Android apps run on the Dalvik Virtual
Machine (DVM) instead of JVM. In addition, Android apps
are event driven and susceptible to path-divergence due
to their reliance on an application development
framework. This paper provides an overview of a
two-pronged approach to alleviate these issues. First,
we have developed a model of Android libraries in Java
Pathfinder (JPF) to enable execution of Android apps in
a way that addresses the issues of incompatibility with
JVM and path-divergence. Second, we have leveraged
program analysis techniques to correlate events with
their handlers for automatically generating
Android-specific drivers that simulate all valid
events.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Misra:2012:JSC,
author = "Janardan Misra and Annervaz KM and Vikrant Kaulgud and
Shubhashis Sengupta and Gary Titus",
title = "{Java} source-code clustering: Unifying syntactic and
semantic features",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--8",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382766",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "This is a report from an international workshop on
``Social and Algorithmic Issues in Business Support''
(SAIBS), which was organized in conjunction with the
16th ADBIS Conference in Poznan, Poland, on September
17, 2012. The main focus of this workshop was to
provide a venue for the discussion whether social
stands in opposition to algorithmic or systematic. We
analyzed social contribution to business processes
taking into account possible benefits and risk factors.
Questions raised in collected research and discussion
related to how far business could relay on social input
and what were the limits or what were the areas where
introducing crowdsourced components might increase
overall risk value to unacceptable level? Algorithmic
approach to observe and collect social behaviour was
discussed in the context of internet auctions
participants and car drivers equipped in mobile
application for instant route planning and collecting
feedback cartracking data. Having in mind Andrew Keen's
critique of social contribution in Web 2.0-related
phenomena we looked for the Wisdom of Crowds [1].
Collected conclusions and further dissemination of
research results should lead to an improvement in
utilizing social impact on software development and
business processes.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Naik:2012:AT,
author = "Mayur Naik and Hongseok Yang and Ghila Castelnuovo and
Mooly Sagiv",
title = "Abstractions from tests",
journal = j-SIGPLAN,
volume = "47",
number = "1",
pages = "373--386",
month = jan,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2103621.2103701",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Mar 15 18:16:55 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "We present a framework for leveraging dynamic analysis
to find good abstractions for static analysis. A static
analysis in our framework is parametrised. Our main
insight is to directly and efficiently compute from a
concrete trace, a necessary condition on the parameter
configurations to prove a given query, and thereby
prune the space of parameter configurations that the
static analysis must consider. We provide constructive
algorithms for two instance analyses in our framework:
a flow- and context-sensitive thread-escape analysis
and a flow- and context-insensitive points-to analysis.
We show the efficacy of these analyses, and our
approach, on six Java programs comprising two million
bytecodes: the thread-escape analysis resolves 80\% of
queries on average, disproving 28\% and proving 52\%;
the points-to analysis resolves 99\% of queries on
average, disproving 29\% and proving 70\%.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "POPL '12 conference proceedings.",
}
@Article{Ngo:2012:BRE,
author = "Terry Ngo",
title = "Book Review: {{\booktitle{Essential app engine:
building high-performance Java apps with Google app
engine}} by Adriaan de Jonge}",
journal = j-SIGSOFT,
volume = "37",
number = "2",
pages = "37--37",
month = mar,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2108144.2108173",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:11 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Nikolic:2012:DEA,
author = "{\Dbar}urica Nikoli{\'c} and Fausto Spoto",
title = "Definite Expression Aliasing Analysis for {Java}
Bytecode",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7521",
pages = "74--89",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-32943-2_6",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:15 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012i.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-32943-2_6/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-32943-2",
book-URL = "http://www.springerlink.com/content/978-3-642-32943-2",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Nilsen:2012:RTJ,
author = "Kelvin Nilsen",
title = "Real-time {Java} in modernization of the {Aegis Weapon
System}",
journal = j-SIGADA-LETTERS,
volume = "32",
number = "3",
pages = "63--70",
month = dec,
year = "2012",
CODEN = "AALEE5",
DOI = "https://doi.org/10.1145/2402709.2402699",
ISSN = "1094-3641 (print), 1557-9476 (electronic)",
ISSN-L = "1094-3641",
bibdate = "Sun May 5 10:05:12 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigada.bib",
note = "HILT '12 conference proceedings.",
abstract = "The U.S. Navy's Aegis system, considered to be the
``shield of the fleet'', provides area air defense for
a carrier battle group in addition to providing
long-range ballistic missile defense. A typical Aegis
deployment consists of about 100 computers, many of
which have multiple cores. The application is
distributed, with typical real-time threads spanning 4
or 5 different computers. End-to-end distributed thread
timing constraints measured from stimulus to response
are typically under 100 ms. The target jitter
constraints on the individual contributions of
processors to the end-to-end deadline constraint are
well below 1 ms. The system is fully redundant to
support fault tolerance. The software is considered to
be safety critical because it aims and fires weapons.
The Aegis Weapons System software was recently
rewritten into real-time Java as part of the Aegis
Modernization activity. This project involved
replacement of about 200,000 lines of CMS-2 and Ada
code with roughly 500,000 lines of Java. The effort
began in 2003 and the new Java implementation of Aegis
Weapons System is now being deployed on warships. This
paper describes the motivation for the modernization
effort and provides a summary of Lockheed Martin's
experiences with this project.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGADA Ada Letters",
}
@Article{Nilsen:2012:TOU,
author = "Kelvin Nilsen",
title = "Tutorial overview: understanding dynamic memory
management in safety critical {Java}",
journal = j-SIGADA-LETTERS,
volume = "32",
number = "3",
pages = "15--22",
month = dec,
year = "2012",
CODEN = "AALEE5",
DOI = "https://doi.org/10.1145/2402709.2402685",
ISSN = "1094-3641 (print), 1557-9476 (electronic)",
ISSN-L = "1094-3641",
bibdate = "Sun May 5 10:05:12 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigada.bib",
note = "HILT '12 conference proceedings.",
abstract = "In spite of the high-level abstraction benefits of
automatic tracing garbage collection, current
prevailing sentiment within the safety certification
community is that a simpler memory model is required
for the most rigorous levels of software safety
certification. Thus, the draft JSR-302 specification
for safety critical Java relies on scope-based memory
allocation rather than tracing garbage collection. The
scoped memory model for JSR-302 is a simplification of
the RTSJ model. JSR-302 enforces a strict hierarchy of
scopes and distinguishes private scopes, which can be
seen only by one thread, from mission scopes, which can
be accessed by all the threads that comprise a mission,
including threads running within inner-nested
sub-missions. The hierarchical memory structure allows
implementations to guarantee the absence of memory
fragmentation for scope management, unlike the
Real-Time Specification for Java from which the JSR-302
specification was derived. In the absence of block
structure, it is more difficult in Java to safely
manage references to stack-allocated objects than in
Ada. While the simplified hierarchical management of
scoped memory that is part of JSR-302 addresses memory
fragmentation concerns, it does not guarantee the
absence of dangling pointers. As with the Real-Time
Specification for Java, JSR-302 requires a run-time
check to enforce that no reference assignment creates a
relationship whereby an outer-nested object is allowed
to point to an inner-nested object. This rule assures
the absence of dangling pointers, but it introduces a
different problem: every assignment to a reference
field must be accompanied by a run-time check to
validate the appropriate scope nesting relationship.
This run-time check will throw a run-time exception if
the assignment is deemed inappropriate. The safety
certification evidence for a given safety-critical Java
program must therefore include an argument for every
reference assignment that it will not cause the program
to abort with a run-time exception. Furthermore, the
certification evidence must prove that sufficient
memory is available to reliably execute each
safety-critical task in the system. This tutorial
provides an overview of dynamic memory management in
Safety Critical Java and describes two annotation
systems that have been designed to support static
(compile-time) enforcement of memory safety properties.
The first annotation system is described in an appendix
to the draft JSR-302 standard. This relatively simple
annotation system, which is not considered normative,
serves to demonstrate that memory safety can be
statically proven without requiring extensive
annotations throughout existing library code. The
second annotation system is the system implemented in
Perc Pico. This annotation system, which is much richer
than the draft JSR-302 annotation, has been in
experimental use for over five years. During that time,
tens of thousands of lines of experimental application
code have been developed, with the experience
motivating a variety of refinements to the original
design.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGADA Ada Letters",
}
@Article{Noll:2012:IDO,
author = "Albert Noll and Thomas R. Gross",
title = "An infrastructure for dynamic optimization of parallel
programs",
journal = j-SIGPLAN,
volume = "47",
number = "8",
pages = "325--326",
month = aug,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2370036.2145877",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Sep 12 12:11:57 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPOPP '12 conference proceedings.",
abstract = "Object-oriented programming languages like Java
provide only low-level constructs (e.g., starting a
thread) to describe concurrency. High-level
abstractions (e.g., thread pools) are merely provided
as a library. As a result, a compiler is not aware of
the high-level semantics of a parallel library and
therefore misses important optimization opportunities.
This paper presents a simple source language extension
based on which a compiler is provided with the
opportunity to perform new optimizations that are
particularly effective for parallel code.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Olszak:2012:RJP,
author = "Andrzej Olszak and Bo N{\o}rregaard J{\o}rgensen",
title = "Remodularizing {Java} programs for improved locality
of feature implementations in source code",
journal = j-SCI-COMPUT-PROGRAM,
volume = "77",
number = "3",
pages = "131--151",
day = "1",
month = mar,
year = "2012",
CODEN = "SCPGD4",
DOI = "https://doi.org/10.1016/j.scico.2010.10.007",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Sat Feb 4 14:59:10 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642310001917",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Panizo:2012:EJP,
author = "Laura Panizo and Mar{\'\i}a del Mar Gallardo",
title = "An extension of {Java PathFinder} for hybrid systems",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382793",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Hybrid systems are characterized by combining discrete
and continuous behaviors. Verification of hybrid
systems is, in general, a difficult task due to the
potential complexity of the continuous dynamics.
Currently, there are different formalisms and tools
which are able to analyze specific types of hybrid
systems, model checking being one of the most used
approaches. In this paper, we describe an extension of
Java PathFinder in order to analyze hybrid systems. We
apply a general methodology which has been successfully
used to extend Spin. This methodology is non-intrusive,
and uses external libraries, such as the Parma
Polyhedra Library, to abstract the continuous behavior
of the hybrid system.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Parizek:2012:PAJ,
author = "Pavel Par{\'\i}zek and OndYej Lhot{\'a}k",
title = "Predicate abstraction of {Java} programs with
collections",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "75--94",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384623",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Our goal is to develop precise and scalable
verification techniques for Java programs that use
collections and properties that depend on their
content. We apply the popular approach of predicate
abstraction to Java programs and collections. The main
challenge in this context is precise and compact
modeling of collections that enables practical
verification. We define a predicate language for
modeling the observable state of Java collections at
the interface level. Changes of the state by API
methods are captured by weakest preconditions. We adapt
existing techniques for construction of abstract
programs. Most notably, we designed optimizations based
on specific features of the predicate language. We
evaluated our approach on Java programs that use
collections in advanced ways. Our results show that
interesting properties, such as consistency between
multiple collections, can be verified using our
approach. The properties are specified using logic
formulas that involve predicates introduced by our
language.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Park:2012:CB,
author = "Chang-Seo Park and Koushik Sen",
title = "Concurrent breakpoints",
journal = j-SIGPLAN,
volume = "47",
number = "8",
pages = "331--332",
month = aug,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2370036.2145880",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Sep 12 12:11:57 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPOPP '12 conference proceedings.",
abstract = "In program debugging, reproducibility of bugs is a key
requirement. Unfortunately, bugs in concurrent programs
are notoriously difficult to reproduce because bugs due
to concurrency happen under very specific thread
schedules and the likelihood of taking such corner-case
schedules during regular testing is very low. We
propose concurrent breakpoints, a light-weight and
programmatic way to make a concurrency bug
reproducible. We describe a mechanism that helps to hit
a concurrent breakpoint in a concurrent execution with
high probability. We have implemented concurrent
breakpoints as a light-weight library for Java and
C/C++ programs. We have used the implementation to
deterministically reproduce several known
non-deterministic bugs in real-world concurrent Java
and C/C++ programs with almost 100\% probability.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@InProceedings{Pham-Quang:2012:JAD,
author = "Phuong Pham-Quang and Benoit Delinchant",
title = "{Java} Automatic Differentiation Tool Using Virtual
Operator Overloading",
crossref = "Forth:2012:RAA",
volume = "87",
pages = "241--250",
year = "2012",
DOI = "https://doi.org/10.1007/978-3-642-30023-3_22",
bibdate = "Sat Dec 22 08:35:46 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncse.bib",
URL = "http://link.springer.com/content/pdf/10.1007/978-3-642-30023-3_22",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-30023-3",
book-URL = "http://www.springerlink.com/content/978-3-642-30023-3",
}
@Article{Phan:2012:SQI,
author = "Quoc-Sang Phan and Pasquale Malacaria and Oksana
Tkachuk and Corina S. P{\u{a}}s{\u{a}}reanu",
title = "Symbolic quantitative information flow",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382791",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Quantitative Information Flow (QIF) is a powerful
approach to quantify leaks of confidential information
in a software system. Here we present a novel method
that precisely quantifies information leaks. In order
to mitigate the state-space explosion problem, we
propose a symbolic representation of data, and a
general SMT-based framework to explore systematically
the state space. Symbolic Execution fits well with our
framework, so we implement a method of QIF analysis
employing Symbolic Execution. We develop our method as
a prototype tool that can perform QIF analysis for a
software system developed in Java. The tool is built on
top of Java Pathfinder, an open source model checking
platform, and it is the first tool in the field to
support information-theoretic QIF analysis.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Pradel:2012:FAP,
author = "Michael Pradel and Thomas R. Gross",
title = "Fully automatic and precise detection of thread safety
violations",
journal = j-SIGPLAN,
volume = "47",
number = "6",
pages = "521--530",
month = jun,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2345156.2254126",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 6 16:31:49 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "PLDI '12 proceedings.",
abstract = "Concurrent, object-oriented programs often use
thread-safe library classes. Existing techniques for
testing a thread-safe class either rely on tests using
the class, on formal specifications, or on both.
Unfortunately, these techniques often are not fully
automatic as they involve the user in analyzing the
output. This paper presents an automatic testing
technique that reveals concurrency bugs in supposedly
thread-safe classes. The analysis requires as input
only the class under test and reports only true
positives. The key idea is to generate tests in which
multiple threads call methods on a shared instance of
the tested class. If a concurrent test exhibits an
exception or a deadlock that cannot be triggered in any
linearized execution of the test, the analysis reports
a thread safety violation. The approach is easily
applicable, because it is independent of hand-written
tests and explicit specifications. The analysis finds
15 concurrency bugs in popular Java libraries,
including two previously unknown bugs in the Java
standard library.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Ramirez-Deantes:2012:MTA,
author = "D. Ram{\'\i}rez-Deantes and J. Correas and G. Puebla",
title = "Modular Termination Analysis of {Java} Bytecode and
Its Application to {phoneME} Core Libraries",
journal = j-LECT-NOTES-COMP-SCI,
volume = "6921",
pages = "218--236",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-27269-1_13",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:20:22 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012a.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-27269-1_13/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-27269-1",
book-URL = "http://www.springerlink.com/content/978-3-642-27269-1",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Ravn:2012:SCJ,
author = "Anders P. Ravn and Martin Schoeberl",
title = "Safety-critical {Java} with cyclic executives on
chip-multiprocessors",
journal = j-CCPE,
volume = "24",
number = "8",
pages = "772--788",
month = "????",
year = "2012",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1754",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Sat May 26 08:11:47 MDT 2012",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Prac\-tice and
Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "10 May 2011",
}
@Article{Razafindralambo:2012:FFH,
author = "Tiana Razafindralambo and Guillaume Bouffard and
Jean-Louis Lanet",
title = "A Friendly Framework for Hidding fault enabled virus
for {Java} Based {Smartcard}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7371",
pages = "122--128",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31540-4_10",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:21:06 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012f.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31540-4_10/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31540-4",
book-URL = "http://www.springerlink.com/content/978-3-642-31540-4",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Reichenbach:2012:PPD,
author = "Christoph Reichenbach and Yannis Smaragdakis and Neil
Immerman",
title = "{PQL}: a Purely-Declarative {Java} Extension for
Parallel Programming",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7313",
pages = "53--78",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31057-7_4",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:19:51 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31057-7_4/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31057-7",
book-URL = "http://www.springerlink.com/content/978-3-642-31057-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Reza:2012:JS,
author = "Juan Rolando Reza",
title = "{Java} supervenience",
journal = j-COMP-LANGS-SYS-STRUCT,
volume = "38",
number = "1",
pages = "73--97",
month = apr,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.1016/j.cl.2011.08.002",
ISSN = "1477-8424 (print), 1873-6866 (electronic)",
ISSN-L = "1477-8424",
bibdate = "Wed Apr 11 16:28:12 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/complngs.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.sciencedirect.com/science/journal/14778424",
URL = "http://www.sciencedirect.com/science/article/pii/S1477842411000182",
acknowledgement = ack-nhfb,
fjournal = "Computer Languages, Systems {\&} Structures",
journal-URL = "http://www.sciencedirect.com/science/journal/14778424",
}
@Article{Rimlinger:2012:TGS,
author = "Frank Rimlinger",
title = "Test generation via symbolic simulation",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382795",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "The Mango extension project of JPF is an Eclipse
Workbench plugin which creates a functional
specification of Java source code. The specification is
presented as a series of navigable pages within Eclipse
views. Representative code examples containing faults
are processed by Mango. The output specification views
are then navigated for the purpose of discovering
robust fault recognition rules for automated testing.
This paper describes how the analyst and tool work
together to generate a test for a selected
vulnerability described in an Oracle publication, the
exposition of confidential data by the exception
handler mechanism.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Rompf:2012:LMS,
author = "Tiark Rompf and Martin Odersky",
title = "Lightweight modular staging: a pragmatic approach to
runtime code generation and compiled {DSLs}",
journal = j-CACM,
volume = "55",
number = "6",
pages = "121--130",
month = jun,
year = "2012",
CODEN = "CACMA2",
DOI = "https://doi.org/10.1145/2184319.2184345",
ISSN = "0001-0782 (print), 1557-7317 (electronic)",
ISSN-L = "0001-0782",
bibdate = "Wed Jun 6 15:21:16 MDT 2012",
bibsource = "http://www.acm.org/pubs/contents/journals/cacm/;
http://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Good software engineering practice demands
generalization and abstraction, whereas high
performance demands specialization and concretization.
These goals are at odds, and compilers can only rarely
translate expressive high-level programs to modern
hardware platforms in a way that makes best use of the
available resources. Generative programming is a
promising alternative to fully automatic translation.
Instead of writing down the target program directly,
developers write a program generator, which produces
the target program as its output. The generator can be
written in a high-level, generic style and can still
produce efficient, specialized target programs. In
practice, however, developing high-quality program
generators requires a very large effort that is often
hard to amortize. We present lightweight modular
staging (LMS), a generative programming approach that
lowers this effort significantly. LMS seamlessly
combines program generator logic with the generated
code in a single program, using only types to
distinguish the two stages of execution. Through
extensive use of component technology, LMS makes a
reusable and extensible compiler framework available at
the library level, allowing programmers to tightly
integrate domain-specific abstractions and
optimizations into the generation process, with common
generic optimizations provided by the framework. LMS is
well suited to develop embedded domain-specific
languages (DSLs) and has been used to develop powerful
performance-oriented DSLs for demanding domains such as
machine learning, with code generation for
heterogeneous platforms including GPUs. LMS has also
been used to generate SQL for embedded database queries
and JavaScript for web applications.",
acknowledgement = ack-nhfb,
fjournal = "Communications of the ACM",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J79",
}
@Article{Samuelson:2012:LSO,
author = "Pamela Samuelson",
title = "Legally speaking: {Oracle} v. {Google}: are {APIs}
copyrightable?",
journal = j-CACM,
volume = "55",
number = "11",
pages = "25--27",
month = nov,
year = "2012",
CODEN = "CACMA2",
DOI = "https://doi.org/10.1145/2366316.2366325",
ISSN = "0001-0782 (print), 1557-7317 (electronic)",
ISSN-L = "0001-0782",
bibdate = "Thu Oct 25 09:59:18 MDT 2012",
bibsource = "http://www.acm.org/pubs/contents/journals/cacm/;
http://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Assessing the first phase of the trial based on claims
that Google's Android platform infringes Oracle's
Java-related copyrights and patents.",
acknowledgement = ack-nhfb,
fjournal = "Communications of the ACM",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J79",
}
@Article{Sartor:2012:EMT,
author = "Jennfer B. Sartor and Lieven Eeckhout",
title = "Exploring multi-threaded {Java} application
performance on multicore hardware",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "281--296",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384638",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
abstract = "While there have been many studies of how to schedule
applications to take advantage of increasing numbers of
cores in modern-day multicore processors, few have
focused on multi-threaded managed language applications
which are prevalent from the embedded to the server
domain. Managed languages complicate performance
studies because they have additional virtual machine
threads that collect garbage and dynamically compile,
closely interacting with application threads. Further
complexity is introduced as modern multicore machines
have multiple sockets and dynamic frequency scaling
options, broadening opportunities to reduce both power
and running time. In this paper, we explore the
performance of Java applications, studying how best to
map application and virtual machine (JVM) threads to a
multicore, multi-socket environment. We explore both
the cost of separating JVM threads from application
threads, and the opportunity to speed up or slow down
the clock frequency of isolated threads. We perform
experiments with the multi-threaded DaCapo benchmarks
and pseudojbb2005 running on the Jikes Research Virtual
Machine, on a dual-socket, 8-core Intel Nehalem machine
to reveal several novel, and sometimes
counter-intuitive, findings. We believe these insights
are a first but important step towards understanding
and optimizing managed language performance on modern
hardware.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Schafer:2012:CAN,
author = "M. Sch{\"a}fer and A. Thies and F. Steimann and F.
Tip",
title = "A Comprehensive Approach to Naming and Accessibility
in Refactoring {Java} Programs",
journal = j-IEEE-TRANS-SOFTW-ENG,
volume = "38",
number = "6",
pages = "1233--1257",
month = nov # "\slash " # dec,
year = "2012",
CODEN = "IESEDJ",
DOI = "https://doi.org/10.1109/TSE.2012.13",
ISSN = "0098-5589 (print), 1939-3520 (electronic)",
ISSN-L = "0098-5589",
bibdate = "Thu Feb 1 19:49:24 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6152131",
acknowledgement = ack-nhfb,
fjournal = "IEEE Transactions on Software Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}
@Article{Scheben:2012:VIF,
author = "Christoph Scheben and Peter H. Schmitt",
title = "Verification of Information Flow Properties of {Java}
Programs without Approximations",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7421",
pages = "232--249",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31762-0_15",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:22:12 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012g.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31762-0_15/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31762-0",
book-URL = "http://www.springerlink.com/content/978-3-642-31762-0",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Severance:2012:DJO,
author = "Charles Severance",
title = "Discovering {JavaScript} Object Notation",
journal = j-COMPUTER,
volume = "45",
number = "4",
pages = "6--8",
month = apr,
year = "2012",
CODEN = "CPTRB4",
DOI = "https://doi.org/10.1109/MC.2012.132",
ISSN = "0018-9162 (print), 1558-0814 (electronic)",
ISSN-L = "0018-9162",
bibdate = "Thu Apr 26 16:52:47 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computer2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Computer",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}
@Article{Severance:2012:JDL,
author = "Charles Severance",
title = "{JavaScript}: Designing a Language in 10 Days",
journal = j-COMPUTER,
volume = "45",
number = "2",
pages = "7--8",
month = feb,
year = "2012",
CODEN = "CPTRB4",
DOI = "https://doi.org/10.1109/MC.2012.57",
ISSN = "0018-9162 (print), 1558-0814 (electronic)",
ISSN-L = "0018-9162",
bibdate = "Thu Mar 15 16:00:49 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computer2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Computer",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}
@Article{Sewe:2012:NSI,
author = "Andreas Sewe and Mira Mezini and Aibek Sarimbekov and
Danilo Ansaloni and Walter Binder and Nathan Ricci and
Samuel Z. Guyer",
title = "{{\tt New Scala() instanceof}} {Java}: a comparison of
the memory behaviour of {Java} and {Scala} programs",
journal = j-SIGPLAN,
volume = "47",
number = "11",
pages = "97--108",
month = nov,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2426642.2259010",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jan 10 08:55:30 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "ISMM '12 conference proceedings.",
abstract = "While often designed with a single language in mind,
managed runtimes like the Java virtual machine (JVM)
have become the target of not one but many languages,
all of which benefit from the runtime's services. One
of these services is automatic memory management. In
this paper, we compare and contrast the memory
behaviour of programs written in Java and Scala,
respectively, two languages which both target the same
platform: the JVM. We both analyze core object
demographics like object lifetimes as well as secondary
properties of objects like their associated monitors
and identity hash-codes. We find that objects in Scala
programs have lower survival rates and higher rates of
immutability, which is only partly explained by the
memory behaviour of objects representing closures or
boxed primitives. Other metrics vary more by benchmark
than language.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Sewell:2012:TJ,
author = "Peter Sewell",
title = "Tales from the jungle",
journal = j-SIGPLAN,
volume = "47",
number = "9",
pages = "271--272",
month = sep,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398856.2364566",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:19 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "We rely on a computational infrastructure that is a
densely interwined mass of software and hardware:
programming languages, network protocols, operating
systems, and processors. It has accumulated great
complexity, from a combination of engineering design
decisions, contingent historical choices, and sheer
scale, yet it is defined at best by prose
specifications, or, all too often, just by the common
implementations. Can we do better? More specifically,
can we apply rigorous methods to this mainstream
infrastructure, taking the accumulated complexity
seriously, and if we do, does it help? My colleagues
and I have looked at these questions in several
contexts: the TCP/IP network protocols with their
Sockets API; programming language design, including the
Java module system and the C11/C++11 concurrency model;
the hardware concurrency behaviour of x86, IBM POWER,
and ARM multiprocessors; and compilation of concurrent
code. In this talk I will draw some lessons from what
did and did not succeed, looking especially at the
empirical nature of some of the work, at the social
process of engagement with the various different
communities, and at the mathematical and software tools
we used. Domain-specific modelling languages (based on
functional programming ideas) and proof assistants were
invaluable for working with the large and loose
specifications involved: idioms within HOL4 for TCP,
our Ott tool for programming language specification,
and Owens's Lem tool for portable semantic definitions,
with HOL4, Isabelle, and Coq, for the relaxed-memory
concurrency semantics work. Our experience with these
suggests something of what is needed to make full-scale
rigorous semantics a commonplace reality.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ICFP '12 conference proceedings.",
}
@Article{Shafiei:2012:MCL,
author = "Nastaran Shafiei and Peter Mehlitz",
title = "Modeling class loaders in {Java PathFinder} version
7",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382800",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "The class loading mechanism is one of the essential
components of the Java runtime environment. Java class
loading is performed on-demand, allows multiple, user
extensible class loaders, and can associate a separate
type namespace with each class loader. Previous
versions of the Java Pathfinder (JPF) model checker
only provided a single, hardcoded class loading
mechanism. As one of the cornerstones of the upcoming
JPF version 7 (JPF v7), we have implemented a standard
Java conforming class loader infrastructure. Our
implementation does not only support different class
loaders and type namespaces, but also allows explicit
instantiation of multiple bootstrap class loaders which
is essential for model checking of distributed
applications --- the primary motivation for our work.
With the new class loading mechanism, such applications
can be mapped to threads using different bootstrap
class loaders, thus effectively separating all static
fields between application threads. In addition, the
JPF v7 class loading is considered to be the basis for
future verification of Java security properties.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Shah:2012:AMJ,
author = "Syed Muhammad Ali Shah and Jens Dietrich and Catherine
McCartin",
title = "On the Automated Modularisation of {Java} Programs
Using Service Locators",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7306",
pages = "132--147",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-30564-1_9",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:19:42 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-30564-1_9/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-30564-1",
book-URL = "http://www.springerlink.com/content/978-3-642-30564-1",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Shan:2012:OAC,
author = "Zhe Shan and Akhil Kumar",
title = "Optimal Adapter Creation for Process Composition in
Synchronous vs. Asynchronous Communication",
journal = j-TMIS,
volume = "3",
number = "2",
pages = "8:1--8:??",
month = jul,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.1145/2229156.2229160",
ISSN = "2158-656X (print), 2158-6578 (electronic)",
ISSN-L = "2158-656X",
bibdate = "Tue Nov 6 19:02:09 MST 2012",
bibsource = "http://www.acm.org/pubs/contents/journals/tmis/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tmis.bib",
abstract = "A key issue in process-aware e-commerce collaboration
is to orchestrate business processes of multiple
business partners throughout a supply chain network in
an automated and seamless way. Since each partner has
its own internal processes with different control flow
structures and message interfaces, the real challenge
lies in verifying the correctness of process
collaboration, and reconciling conflicts in an
automated manner to make collaboration successful. The
purpose of business process adaptation is to mediate
the communication between independent processes to
overcome their mismatches and incompatibilities. The
goal of this article is to develop and compare
efficient approaches of optimal adapter (i.e. one that
minimizes the number of messages to be adapted)
creation for multiple interacting processes under both
synchronous and asynchronous communication. We start
with an analysis of interactions of each message pair,
and show how to identify incompatible cases and their
adaptation elements for both types of communication.
Then, we show how to extend this analysis into more
general cases involving M messages and N processes ( M,
N {$>$} 2). Further, we present optimal adapter
creation algorithms for both scenarios based on our
analysis technique. The algorithms were implemented in
a Java-based prototype system, and results of two
experiments are reported. We compare and discuss the
insights gained about adapter creation in these two
scenarios.",
acknowledgement = ack-nhfb,
articleno = "8",
fjournal = "ACM Transactions on Management Information Systems
(TMIS)",
}
@Article{Siek:2012:FDT,
author = "Konrad Siek and Pawe{\l} T. Wojciechowski",
title = "A Formal Design of a Tool for Static Analysis of Upper
Bounds on Object Calls in {Java}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7437",
pages = "192--206",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-32469-7_13",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:22:33 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012g.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-32469-7_13/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-32469-7",
book-URL = "http://www.springerlink.com/content/978-3-642-32469-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Simao:2012:CER,
author = "Jos{\'e} Sim{\~a}o and Tiago Garrochinho and Lu{\'\i}s
Veiga",
title = "A checkpointing-enabled and resource-aware {Java
Virtual Machine} for efficient and robust {e-Science}
applications in grid environments",
journal = j-CCPE,
volume = "24",
number = "13",
pages = "1421--1442",
day = "10",
month = sep,
year = "2012",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1879",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Nov 5 07:44:52 MST 2012",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "21 Dec 2011",
}
@Article{Singh:2012:EPS,
author = "Abhayendra Singh and Daniel Marino and Satish
Narayanasamy and Todd Millstein and Madan Musuvathi",
title = "Efficient processor support for {DRFx}, a memory model
with exceptions",
journal = j-SIGPLAN,
volume = "47",
number = "4",
pages = "53--66",
month = apr,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2248487.1950375",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Jun 7 08:15:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "A longstanding challenge of shared-memory concurrency
is to provide a memory model that allows for efficient
implementation while providing strong and simple
guarantees to programmers. The C++0x and Java memory
models admit a wide variety of compiler and hardware
optimizations and provide sequentially consistent (SC)
semantics for data-race-free programs. However, they
either do not provide any semantics (C++0x) or provide
a hard-to-understand semantics (Java) for racy
programs, compromising the safety and debuggability of
such programs. In earlier work we proposed the DRFx
memory model, which addresses this problem by
dynamically detecting potential violations of SC due to
the interaction of compiler or hardware optimizations
with data races and halting execution upon detection.
In this paper, we present a detailed micro-architecture
design for supporting the DRFx memory model, formalize
the design and prove its correctness, and evaluate the
design using a hardware simulator. We describe a set of
DRFx-compliant complexity-effective optimizations which
allow us to attain performance close to that of TSO
(Total Store Model) and DRF0 while providing strong
guarantees for all programs.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "ASPLOS '12 conference proceedings.",
}
@Article{Snellenburg:2012:GJB,
author = "Joris J. Snellenburg and Sergey Laptenok and Ralf
Seger and Katharine M. Mullen and Ivo H. M. van
Stokkum",
title = "{Glotaran}: a {Java}-Based Graphical User Interface
for the {R} Package {TIMP}",
journal = j-J-STAT-SOFT,
volume = "49",
number = "3",
pages = "??--??",
month = jun,
year = "2012",
CODEN = "JSSOBK",
ISSN = "1548-7660",
bibdate = "Mon Oct 29 18:54:10 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jstatsoft.bib",
URL = "http://www.jstatsoft.org/v49/i03",
acknowledgement = ack-nhfb,
fjournal = "Journal of Statistical Software",
journal-URL = "http://www.jstatsoft.org/",
pubdates = "Submitted 2011-01-20; Accepted 2011-09-16",
}
@Article{Sridharan:2012:CTP,
author = "Manu Sridharan and Julian Dolby and Satish Chandra and
Max Sch{\"a}fer and Frank Tip",
title = "Correlation Tracking for Points-To Analysis of
{JavaScript}",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7313",
pages = "435--458",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-31057-7_20",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:19:51 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012e.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-31057-7_20/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-31057-7",
book-URL = "http://www.springerlink.com/content/978-3-642-31057-7",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Stuchlik:2012:SVD,
author = "Andreas Stuchlik and Stefan Hanenberg",
title = "Static vs. dynamic type systems: an empirical study
about the relationship between type casts and
development time",
journal = j-SIGPLAN,
volume = "47",
number = "2",
pages = "97--106",
month = feb,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2168696.2047861",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Apr 20 17:34:09 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Static type systems are essential in computer science.
However, there is hardly any knowledge about the impact
of type systems on the resulting piece of software.
While there are authors that state that static types
increase the development speed, other authors argue the
other way around. A previous experiment suggests that
there are multiple factors that play a role for a
comparison of statically and dynamically typed
language. As a follow-up, this paper presents an
empirical study with 21 subjects that compares
programming tasks performed in Java and Groovy ---
programming tasks where the number of expected type
casts vary in the statically typed language. The result
of the study is, that the dynamically typed group
solved the complete programming tasks significantly
faster for most tasks --- but that for larger tasks
with a higher number of type casts no significant
difference could be found.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "DSL '11 conference proceedings.",
}
@Article{Szweda:2012:ANB,
author = "{\L}ukasz Szweda and Daniel Wilusz and Jakub
Floty{\'n}ski",
title = "Application of {NXT} Based Robots for Teaching
{Java}-Based Concurrency",
journal = j-LECT-NOTES-COMP-SCI,
volume = "7516",
pages = "54--64",
year = "2012",
CODEN = "LNCSD9",
DOI = "https://doi.org/10.1007/978-3-642-33466-5_6",
ISSN = "0302-9743 (print), 1611-3349 (electronic)",
ISSN-L = "0302-9743",
bibdate = "Wed Dec 19 15:24:08 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/lncs2012i.bib",
URL = "http://link.springer.com/chapter/10.1007/978-3-642-33466-5_6/",
acknowledgement = ack-nhfb,
book-DOI = "https://doi.org/10.1007/978-3-642-33466-5",
book-URL = "http://www.springerlink.com/content/978-3-642-33466-5",
fjournal = "Lecture Notes in Computer Science",
}
@Article{Taboada:2012:FMS,
author = "Guillermo L. Taboada and Juan Touri{\~n}o and
Ram{\'o}n Doallo",
title = "{F-MPJ}: scalable {Java} message-passing
communications on parallel systems",
journal = j-J-SUPERCOMPUTING,
volume = "60",
number = "1",
pages = "117--140",
month = apr,
year = "2012",
CODEN = "JOSUED",
ISSN = "0920-8542 (print), 1573-0484 (electronic)",
ISSN-L = "0920-8542",
bibdate = "Fri Apr 6 17:45:24 MDT 2012",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=60&issue=1;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jsuper.bib",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=60&issue=1&spage=117",
acknowledgement = ack-nhfb,
fjournal = "The Journal of Supercomputing",
journal-URL = "http://link.springer.com/journal/11227",
}
@Article{Takikawa:2012:GTF,
author = "Asumu Takikawa and T. Stephen Strickland and Christos
Dimoulas and Sam Tobin-Hochstadt and Matthias
Felleisen",
title = "Gradual typing for first-class classes",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "793--810",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384674",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/python.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Dynamic type-checking and object-oriented programming
often go hand-in-hand; scripting languages such as
Python, Ruby, and JavaScript all embrace
object-oriented (OO) programming. When scripts written
in such languages grow and evolve into large programs,
the lack of a static type discipline reduces
maintainability. A programmer may thus wish to migrate
parts of such scripts to a sister language with a
static type system. Unfortunately, existing type
systems neither support the flexible OO composition
mechanisms found in scripting languages nor accommodate
sound interoperation with untyped code. In this paper,
we present the design of a gradual typing system that
supports sound interaction between statically- and
dynamically-typed units of class-based code. The type
system uses row polymorphism for classes and thus
supports mixin-based OO composition. To protect
migration of mixins from typed to untyped components,
the system employs a novel form of contracts that
partially seal classes. The design comes with a theorem
that guarantees the soundness of the type system even
in the presence of untyped components.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Tamayo:2012:UBD,
author = "Juan M. Tamayo and Alex Aiken and Nathan Bronson and
Mooly Sagiv",
title = "Understanding the behavior of database operations
under program control",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "983--996",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384688",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Applications that combine general program logic with
persistent databases (e.g., three-tier applications)
often suffer large performance penalties from poor use
of the database. We introduce a program analysis
technique that combines information flow in the program
with commutativity analysis of its database operations
to produce a unified dependency graph for database
statements, which provides programmers with a
high-level view of how costly database operations are
and how they are connected in the program. As an
example application of our analysis we describe three
optimizations that can be discovered by examining the
structure of the dependency graph; each helps remove
communication latency from the critical path of a
multi-tier system. We implement our technique in a tool
for Java applications using JDBC and experimentally
validate it using the multi-tier component of the
Dacapo benchmark.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Tardieu:2012:WSS,
author = "Olivier Tardieu and Haichuan Wang and Haibo Lin",
title = "A work-stealing scheduler for {X10}'s task parallelism
with suspension",
journal = j-SIGPLAN,
volume = "47",
number = "8",
pages = "267--276",
month = aug,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2370036.2145850",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Wed Sep 12 12:11:57 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPOPP '12 conference proceedings.",
abstract = "The X10 programming language is intended to ease the
programming of scalable concurrent and distributed
applications. X10 augments a familiar imperative
object-oriented programming model with constructs to
support light-weight asynchronous tasks as well as
execution across multiple address spaces. A crucial
aspect of X10's runtime system is the scheduling of
concurrent tasks. Work-stealing schedulers have been
shown to efficiently load balance fine-grain
divide-and-conquer task-parallel program on SMPs and
multicores. But X10 is not limited to shared-memory
fork-join parallelism. X10 permits tasks to suspend and
synchronize by means of conditional atomic blocks and
remote task invocations. In this paper, we demonstrate
that work-stealing scheduling principles are applicable
to a rich programming language such as X10, achieving
performance at scale without compromising expressivity,
ease of use, or portability. We design and implement a
portable work-stealing execution engine for X10. While
this engine is biased toward the efficient execution of
fork-join parallelism in shared memory, it handles the
full X10 language, especially conditional atomic blocks
and distribution. We show that this engine improves the
run time of a series of benchmark programs by several
orders of magnitude when used in combination with the
C++ backend compiler and runtime for X10. It achieves
scaling comparable to state-of-the art work-stealing
scheduler implementations---the Cilk++ compiler and the
Java fork/join framework---despite the dramatic
increase in generality.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Teodorovici:2012:BRC,
author = "Vasile G. Teodorovici",
title = "Book Review: {{\booktitle{Continuous testing with
Ruby, Rails and JavaScript}} by Ben Rady and Rod
Coffin}",
journal = j-SIGSOFT,
volume = "37",
number = "1",
pages = "36--36",
month = jan,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2088883.2088906",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:09 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Toegl:2012:SSJ,
author = "Ronald Toegl and Thomas Winkler and Mohammad Nauman
and Theodore W. Hong",
title = "Specification and Standardization of a {Java Trusted
Computing API}",
journal = j-SPE,
volume = "42",
number = "8",
pages = "945--965",
month = aug,
year = "2012",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.1095",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Tue Nov 6 17:14:12 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "13 Jul 2011",
}
@Article{Toledo:2012:AJA,
author = "R. Toledo and A. Nunez and E. Tanter and J. Noye",
title = "Aspectizing {Java} Access Control",
journal = j-IEEE-TRANS-SOFTW-ENG,
volume = "38",
number = "1",
pages = "101--117",
month = jan # "\slash " # feb,
year = "2012",
CODEN = "IESEDJ",
DOI = "https://doi.org/10.1109/TSE.2011.6",
ISSN = "0098-5589 (print), 1939-3520 (electronic)",
ISSN-L = "0098-5589",
bibdate = "Thu Feb 1 19:49:24 MST 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5680915",
acknowledgement = ack-nhfb,
fjournal = "IEEE Transactions on Software Engineering",
journal-URL = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}
@Article{vanderMerwe:2012:VAA,
author = "Heila van der Merwe and Brink van der Merwe and Willem
Visser",
title = "Verifying {Android} applications using {Java
PathFinder}",
journal = j-SIGSOFT,
volume = "37",
number = "6",
pages = "1--5",
month = nov,
year = "2012",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2382756.2382797",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:18 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Mobile application testing is a specialised and
complex field. Due to mobile applications' event driven
design and mobile runtime environment, there currently
exist only a small number of tools to verify these
applications. This paper describes the development of
JPF-ANDROID, an Android application verification tool.
JPF-ANDROID is built on Java Pathfinder, a Java model
checking engine. JPF-ANDROID provides a simplified
model of the Android framework on which an Android
application can run. It then allows the user to script
input events to drive the application flow. JPF-ANDROID
provides a way to detect common property violations
such as deadlocks and runtime exceptions in Android
applications.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Vitek:2012:ISI,
author = "Jan Vitek and Tomas Kalibera",
title = "Introduction to the {Special Issue on Java
Technologies for Real-Time and Embedded Systems}",
journal = j-CCPE,
volume = "24",
number = "8",
pages = "751--752",
month = "????",
year = "2012",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1769",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Sat May 26 08:11:47 MDT 2012",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Prac\-tice and
Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "23 Jun 2011",
}
@Article{Walker:2012:SNJ,
author = "Henry M. Walker",
title = "{SIGCSE} by the numbers: {JavaScript}",
journal = j-SIGCSE,
volume = "44",
number = "1",
pages = "8--8",
month = jan,
year = "2012",
CODEN = "SIGSD3",
DOI = "https://doi.org/10.1145/2132499.2132502",
ISSN = "0097-8418 (print), 2331-3927 (electronic)",
ISSN-L = "0097-8418",
bibdate = "Sat Nov 17 15:44:30 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigcse2010.bib",
abstract = "As you may know, SIGCSE 2000 was the first SIGCSE
conference that utilized an online system for the
submission and reviewing of papers. Naively, for that
first conference, I relied upon JavaScript for error
checking, so I assumed error checking was not needed at
the server --- after all, checking had already been
done by the browser, right?",
acknowledgement = ack-nhfb,
fjournal = "SIGCSE Bulletin (ACM Special Interest Group on
Computer Science Education)",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J688",
}
@Article{Wellings:2012:AEH,
author = "Andy Wellings and MinSeong Kim",
title = "Asynchronous event handling and {Safety Critical
Java}",
journal = j-CCPE,
volume = "24",
number = "8",
pages = "813--832",
month = "????",
year = "2012",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1756",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Sat May 26 08:11:47 MDT 2012",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Prac\-tice and
Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "1 May 2011",
}
@Article{Xi:2012:MDA,
author = "Kai Xi and Jiankun Hu and Fengling Han",
title = "Mobile device access control: an improved correlation
based face authentication scheme and its {Java ME}
application",
journal = j-CCPE,
volume = "24",
number = "10",
pages = "1066--1085",
month = jul,
year = "2012",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.1797",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Mon Nov 5 07:44:49 MST 2012",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "28 Jul 2011",
}
@Article{Xue:2012:RJC,
author = "Jingling Xue",
title = "Rethinking {Java} call stack design for tiny embedded
devices",
journal = j-SIGPLAN,
volume = "47",
number = "5",
pages = "1--10",
month = may,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2345141.2248420",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 6 16:31:46 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "LCTES '12 proceedings.",
abstract = "The ability of tiny embedded devices to run large
feature-rich programs is typically constrained by the
amount of memory installed on such devices.
Furthermore, the useful operation of these devices in
wireless sensor applications is limited by their
battery life. This paper presents a call stack redesign
targeted at an efficient use of RAM storage and CPU
cycles by a Java program running on a wireless sensor
mote. Without compromising the application programs,
our call stack redesign saves 30\% of RAM, on average,
evaluated over a large number of benchmarks. On the
same set of bench-marks, our design also avoids
frequent RAM allocations and deallocations, resulting
in average 80\% fewer memory operations and 23\% faster
program execution. These may be critical improvements
for tiny embedded devices that are equipped with small
amount of RAM and limited battery life. However, our
call stack redesign is equally effective for any
complex multi-threaded object oriented program
developed for desktop computers. We describe the
redesign, measure its performance and report the
resulting savings in RAM and execution time for a wide
variety of programs.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Yang:2012:MPD,
author = "Cheng-Hong Yang and Yu-Huei Cheng and Cheng-Huei Yang
and Li-Yeh Chuang",
title = "Mutagenic Primer Design for Mismatch {PCR-RFLP} {SNP}
Genotyping Using a Genetic Algorithm",
journal = j-TCBB,
volume = "9",
number = "3",
pages = "837--845",
month = may,
year = "2012",
CODEN = "ITCBCY",
DOI = "https://doi.org/10.1109/TCBB.2012.25",
ISSN = "1545-5963 (print), 1557-9964 (electronic)",
ISSN-L = "1545-5963",
bibdate = "Thu Apr 19 17:58:10 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tcbb.bib",
abstract = "Polymerase chain reaction-restriction fragment length
polymorphism (PCR-RFLP) is useful in small-scale basic
research studies of complex genetic diseases that are
associated with single nucleotide polymorphism (SNP).
Designing a feasible primer pair is an important work
before performing PCR-RFLP for SNP genotyping. However,
in many cases, restriction enzymes to discriminate the
target SNP resulting in the primer design is not
applicable. A mutagenic primer is introduced to solve
this problem. GA-based Mismatch PCR-RFLP Primers Design
(GAMPD) provides a method that uses a genetic algorithm
to search for optimal mutagenic primers and available
restriction enzymes from REBASE. In order to improve
the efficiency of the proposed method, a mutagenic
matrix is employed to judge whether a hypothetical
mutagenic primer can discriminate the target SNP by
digestion with available restriction enzymes. The
available restriction enzymes for the target SNP are
mined by the updated core of SNP-RFLPing. GAMPD has
been used to simulate the SNPs in the human SLC6A4 gene
under different parameter settings and compared with
SNP Cutter for mismatch PCR-RFLP primer design. The in
silico simulation of the proposed GAMPD program showed
that it designs mismatch PCR-RFLP primers. The GAMPD
program is implemented in JAVA and is freely available
at http://bio.kuas.edu.tw/gampd/",
acknowledgement = ack-nhfb,
fjournal = "IEEE/ACM Transactions on Computational Biology and
Bioinformatics",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J954",
}
@Article{Yerima:2012:AMB,
author = "Suleiman Y. Yerima and Gerard P. Parr and Sally I.
McClean and Philip J. Morrow",
title = "Adaptive Measurement-Based Policy-Driven {QoS}
Management with Fuzzy-Rule-based Resource Allocation",
journal = j-FUTURE-INTERNET,
volume = "4",
number = "3",
pages = "646--671",
day = "04",
month = jul,
year = "2012",
CODEN = "????",
DOI = "https://doi.org/10.3390/fi4030646",
ISSN = "1999-5903",
bibdate = "Thu Nov 21 16:50:48 MST 2019",
bibsource = "http://www.math.utah.edu/pub/tex/bib/future-internet.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "https://www.mdpi.com/1999-5903/4/3/646",
abstract = "Fixed and wireless networks are increasingly
converging towards common connectivity with IP-based
core networks. Providing effective end-to-end resource
and QoS management in such complex heterogeneous
converged network scenarios requires unified, adaptive
and scalable solutions to integrate and co-ordinate
diverse QoS mechanisms of different access technologies
with IP-based QoS. Policy-Based Network Management
(PBNM) is one approach that could be employed to
address this challenge. Hence, a policy-based framework
for end-to-end QoS management in converged networks,
CNQF (Converged Networks QoS Management Framework) has
been proposed within our project. In this paper, the
CNQF architecture, a Java implementation of its
prototype and experimental validation of key elements
are discussed. We then present a fuzzy-based CNQF
resource management approach and study the performance
of our implementation with real traffic flows on an
experimental testbed. The results demonstrate the
efficacy of our resource-adaptive approach for
practical PBNM systems.",
acknowledgement = ack-nhfb,
remark = "Special Issue Selected Papers from ITA 11.",
}
@Book{Zakhour:2012:JTS,
author = "Sharon Zakhour",
title = "The {Java} tutorial: a short course on the basics",
publisher = pub-PH,
address = pub-PH:adr,
edition = "Fifth",
pages = "????",
year = "2012",
ISBN = "0-13-276169-6 (paperback)",
ISBN-13 = "978-0-13-276169-7 (paperback)",
LCCN = "????",
bibdate = "Mon Jan 28 14:57:26 MST 2013",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language); Object-oriented
programming (Computer science)",
}
@Article{Zhang:2012:RAJ,
author = "Ying Zhang and Gang Huang and Xuanzhe Liu and Wei
Zhang and Hong Mei and Shunxiang Yang",
title = "Refactoring {Android Java} code for on-demand
computation offloading",
journal = j-SIGPLAN,
volume = "47",
number = "10",
pages = "233--248",
month = oct,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2398857.2384634",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Nov 15 16:40:23 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Computation offloading is a promising way to improve
the performance as well as reducing the battery power
consumption of a smartphone application by executing
some parts of the application on a remote server.
Supporting such capability is not easy for smartphone
application developers due to (1) correctness: some
code, e.g., that for GPS, gravity, and other sensors,
can run only on the smartphone so that developers have
to identify which parts of the application cannot be
offloaded; (2) effectiveness: the reduced execution
time must be greater than the network delay caused by
computation offloading so that developers need to
calculate which parts are worth offloading; (3)
adaptability: smartphone applications often face
changes of user requirements and runtime environments
so that developers need to implement the adaptation on
offloading. More importantly, considering the large
number of today's smartphone applications, solutions
applicable for legacy applications will be much more
valuable. In this paper, we present a tool, named
DPartner, that automatically refactors Android
applications to be the ones with computation offloading
capability. For a given Android application, DPartner
first analyzes its bytecode for discovering the parts
worth offloading, then rewrites the bytecode to
implement a special program structure supporting
on-demand offloading, and finally generates two
artifacts to be deployed onto an Android phone and the
server, respectively. We evaluated DPartner on three
real-world Android applications, demonstrating the
reduction of execution time by 46\%-97\% and battery
power consumption by 27\%-83\%.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "OOPSLA '12 conference proceedings.",
}
@Article{Zhang:2012:SRB,
author = "Yuan Zhang and Min Yang and Bo Zhou and Zhemin Yang
and Weihua Zhang and Binyu Zang",
title = "{Swift}: a register-based {JIT} compiler for embedded
{JVMs}",
journal = j-SIGPLAN,
volume = "47",
number = "7",
pages = "63--74",
month = jul,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2365864.2151035",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Thu Sep 6 10:01:03 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "VEE '12 conference proceedings.",
abstract = "Code quality and compilation speed are two challenges
to JIT compilers, while selective compilation is
commonly used to trade-off these two issues. Meanwhile,
with more and more Java applications running in mobile
devices, selective compilation meets many problems.
Since these applications always have flat execution
profile and short live time, a lightweight JIT
technique without losing code quality is extremely
needed. However, the overhead of compiling stack-based
Java bytecode to heterogeneous register-based machine
code is significant in embedded devices. This paper
presents a fast and effective JIT technique for mobile
devices, building on a register-based Java bytecode
format which is more similar to the underlying machine
architecture. Through a comprehensive study on the
characteristics of Java applications, we observe that
virtual registers used by more than 90\% Java methods
can be directly fulfilled by 11 physical registers.
Based on this observation, this paper proposes Swift, a
novel JIT compiler on register-based bytecode, which
generates native code for RISC machines. After mapping
virtual registers to physical registers, the code is
generated efficiently by looking up a translation
table. And the code quality is guaranteed by the static
compiler which is used to generate register-based
bytecode. Besides, we design two lightweight
optimizations and an efficient code unloader to make
Swift more suitable for embedded environment. As the
prevalence of Android, a prototype of Swift is
implemented upon DEX bytecode which is the official
distribution format of Android applications. Swift is
evaluated with three benchmarks (SPECjvm98,
EmbeddedCaffeineMark3 and JemBench2) on two different
ARM SOCs: S3C6410 (armv6) and OMAP3530 (armv7). The
results show that Swift achieves a speedup of 3.13 over
the best-performing interpreter on the selected
benchmarks. Compared with the state-of-the-art JIT
compiler in Android, JITC-Droid, Swift achieves a
speedup of 1.42.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Zhao:2012:PTI,
author = "Tian Zhao",
title = "Polymorphic type inference for scripting languages
with object extensions",
journal = j-SIGPLAN,
volume = "47",
number = "2",
pages = "37--50",
month = feb,
year = "2012",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2168696.2047855",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Fri Apr 20 17:34:09 MDT 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2000.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "This paper presents a polymorphic type inference
algorithm for a small subset of JavaScript. The goal is
to prevent accessing undefined members of objects. We
define a type system that allows explicit extension of
objects through add operation and implicit extension
through method calls. The type system also permits
strong updates and unrestricted extensions to new
objects. The type inference algorithm is modular so
that each function definition is only analyzed once and
larger programs can be checked incrementally.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "DSL '11 conference proceedings.",
}
@Book{Ament:2013:ATG,
author = "John Ament",
title = "{Arquillian} Testing Guide: get familiarized with the
{Arquillian} framework and its capabilities to carry
out integration and functional testing on a {Java}
virtual machine",
publisher = "Packt Publishing",
address = "Birmingham, UK",
pages = "v + 224",
year = "2013",
ISBN = "1-78216-070-1",
ISBN-13 = "978-1-78216-070-0",
LCCN = "QA76.73.J3",
bibdate = "Thu Dec 4 08:31:46 MST 2014",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
URL = "http://proquest.tech.safaribooksonline.de/9781782160700",
acknowledgement = ack-nhfb,
}
@Article{Anonymous:2013:FAM,
author = "Anonymous",
title = "{Facebook}, {Apple} and {Microsoft} hit by {Java}
exploit at watering hole",
journal = j-NETWORK-SECURITY,
volume = "2013",
number = "3",
pages = "1--2",
month = mar,
year = "2013",
CODEN = "NTSCF5",
DOI = "https://doi.org/10.1016/S1353-4858(13)70035-7",
ISSN = "1353-4858 (print), 1872-9371 (electronic)",
ISSN-L = "1353-4858",
bibdate = "Mon Dec 4 17:00:52 MST 2017",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/network-security.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S1353485813700357",
acknowledgement = ack-nhfb,
fjournal = "Network Security",
journal-URL = "https://www.sciencedirect.com/journal/network-security",
}
@Article{Autili:2013:HAR,
author = "Marco Autili and Paolo {Di Benedetto} and Paola
Inverardi",
title = "A hybrid approach for resource-based comparison of
adaptable {Java} applications",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "8",
pages = "987--1009",
day = "1",
month = aug,
year = "2013",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Sep 3 06:34:35 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642312000147",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Axelsen:2013:PTD,
author = "Eyvind W. Axelsen and Stein Krogdahl",
title = "{Package Templates}: a definition by
semantics-preserving source-to-source transformations
to efficient {Java} code",
journal = j-SIGPLAN,
volume = "48",
number = "3",
pages = "50--59",
month = mar,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2480361.2371409",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 1 17:15:18 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Package Templates (PT) is a mechanism designed for
writing reusable modules, called templates, each
consisting of a set of classes that can be adapted to
their use in a program through compile-time
specialization. A template must be instantiated in a
program before its classes can be used. The mechanism
supports type-safe renaming, merging, type
parameterization and refinement in the form of static
additions and overrides that are orthogonal to the
corresponding concepts of ordinary inheritance. In this
paper, we consider PT as an extension to Java, and a PT
program will then consist of a number of Java packages
and templates, where templates are instantiated in
packages or other templates. Our aim and main
contribution is to define the meaning of such a
program, and to show that this definition is
consistent. We first show this for a core subset of PT,
C-PT, and define a set of source-to-source
transformations for converting C-PT programs to plain
Java programs using semantics we have described
informally in previous papers. We can then define the
meaning of a C-PT program in terms of the resulting
Java program. Thus, we have to verify that the
transformations will always convert a legal C-PT
program to a legal Java program. Finally, we briefly
discuss how this approach can be extended to full PT. A
main challenge is to preserve externally visible names
(for classes, methods and fields), and at the same time
prevent unwanted subsequent rebindings caused e.g. by
over-load resolution in the Java compiler. Names that
are bound to declarations in a template should not be
rebound to different declarations by subsequent
compositions or adaptions. In addition to defining the
runtime semantics of PT constructs in terms of their
translation to Java, the transformation rules can also
be seen as a high-level approach to how a compiler for
this language might be implemented.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "GPCE '12 conference proceedings.",
}
@Article{Bacon:2013:PRT,
author = "David F. Bacon and Perry Cheng and V. T. Rajan",
title = "{POPL 2003}: a real-time garbage collector with low
overhead and consistent utilization",
journal = j-SIGPLAN,
volume = "48",
number = "4S",
pages = "58--71",
month = apr,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2502508.2502523",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 15 15:53:11 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Now that the use of garbage collection in languages
like Java is becoming widely accepted due to the safety
and software engineering benefits it provides, there is
significant interest in applying garbage collection to
hard real-time systems. Past approaches have generally
suffered from one of two major flaws: either they were
not provably real-time, or they imposed large space
overheads to meet the real-time bounds. We present a
mostly non-moving, dynamically defragmenting collector
that overcomes both of these limitations: by avoiding
copying in most cases, space requirements are kept low;
and by fully incrementalizing the collector we are able
to meet real-time bounds. We implemented our algorithm
in the Jikes RVM and show that at real-time resolution
we are able to obtain mutator utilization rates of 45\%
with only 1.6--2.5 times the actual space required by
the application, a factor of 4 improvement in
utilization over the best previously published results.
Defragmentation causes no more than 4\% of the traced
data to be copied.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Bainomugisha:2013:SRP,
author = "Engineer Bainomugisha and Andoni Lombide Carreton and
Tom van Cutsem and Stijn Mostinckx and Wolfgang de
Meuter",
title = "A survey on reactive programming",
journal = j-COMP-SURV,
volume = "45",
number = "4",
pages = "52:1--52:??",
month = aug,
year = "2013",
CODEN = "CMSVAN",
DOI = "https://doi.org/10.1145/2501654.2501666",
ISSN = "0360-0300 (print), 1557-7341 (electronic)",
ISSN-L = "0360-0300",
bibdate = "Mon Aug 26 17:21:41 MDT 2013",
bibsource = "http://www.acm.org/pubs/contents/journals/surveys/;
http://www.math.utah.edu/pub/tex/bib/compsurv.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
abstract = "Reactive programming has recently gained popularity as
a paradigm that is well-suited for developing
event-driven and interactive applications. It
facilitates the development of such applications by
providing abstractions to express time-varying values
and automatically managing dependencies between such
values. A number of approaches have been recently
proposed embedded in various languages such as Haskell,
Scheme, JavaScript, Java, .NET, etc. This survey
describes and provides a taxonomy of existing reactive
programming approaches along six axes: representation
of time-varying values, evaluation model, lifting
operations, multidirectionality, glitch avoidance, and
support for distribution. From this taxonomy, we
observe that there are still open challenges in the
field of reactive programming. For instance,
multidirectionality is supported only by a small number
of languages, which do not automatically track
dependencies between time-varying values. Similarly,
glitch avoidance, which is subtle in reactive programs,
cannot be ensured in distributed reactive programs
using the current techniques.",
acknowledgement = ack-nhfb,
articleno = "52",
fjournal = "ACM Computing Surveys",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J204",
}
@Article{Balatsouras:2013:CHC,
author = "George Balatsouras and Yannis Smaragdakis",
title = "Class hierarchy complementation: soundly completing a
partial type graph",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "515--532",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509530",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "We present the problem of class hierarchy
complementation: given a partially known hierarchy of
classes together with subtyping constraints (``A has to
be a transitive subtype of B'') complete the hierarchy
so that it satisfies all constraints. The problem has
immediate practical application to the analysis of
partial programs--e.g., it arises in the process of
providing a sound handling of ``phantom classes'' in
the Soot program analysis framework. We provide
algorithms to solve the hierarchy complementation
problem in the single inheritance and multiple
inheritance settings. We also show that the problem in
a language such as Java, with single inheritance but
multiple subtyping and distinguished class vs.
interface types, can be decomposed into separate
single- and multiple-subtyping instances. We implement
our algorithms in a tool, JPhantom, which complements
partial Java bytecode programs so that the result is
guaranteed to satisfy the Java verifier requirements.
JPhantom is highly scalable and runs in mere seconds
even for large input applications and complex
constraints (with a maximum of 14s for a 19MB
binary).",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Basanta-Val:2013:JRA,
author = "P. Basanta-Val and M. Garc{\'\i}a-Valls and I.
Est{\'e}vez-Ayres",
title = "Enhancing {OSGi} with real-time {Java} support",
journal = j-SPE,
volume = "43",
number = "1",
pages = "33--65",
month = jan,
year = "2013",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.2101",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Fri Dec 21 11:42:46 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "29 Jan 2012",
}
@Article{Bedi:2013:MMT,
author = "Punam Bedi and Vandana Gandotra and Archana Singhal
and Himanshi Narang and Sumit Sharma",
title = "Mitigating multi-threats optimally in proactive threat
management",
journal = j-SIGSOFT,
volume = "38",
number = "1",
pages = "1--7",
month = jan,
year = "2013",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2413038.2413041",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:22 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "In turbulent economic times, the cost effectiveness of
security measures is of the utmost importance when
designing safeguards or countermeasures. This paper
presents an optimal approach: MMT-O, Mitigating
Multi-Threats Optimally, to meet the above challenges.
The proposed approach is based on an optimum mitigation
path set generation algorithm that provides optimal
plans for threat/vulnerability management which can be
adopted at the design level of the software life cycle.
In MMT-O, a multi-threat attack graph is generated by
combining all of the individual threats responsible for
security compromise of the system. It identifies a
unique set of attacks needing mitigation by removing
redundant nodes, as an attack can be a part of multiple
threats. The proposed algorithm, implemented in Java,
provides the minimum mitigation paths required to be
blocked to avert the threat. Countermeasures using a
multi-agent system are inducted in these identified
mitigation paths to avert the threat optimally. The
proposed approach has been applied on different test
cases and the results validate its economic
justification over traditional security solutions as a
part of proactive threat management.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Bellia:2013:JST,
author = "Marco Bellia and M. Eugenia Occhiuto",
title = "{Java} {SAM} Typed Closures: A Sound and Complete Type
Inference System for Nominal Types",
journal = j-FUND-INFO,
volume = "128",
number = "1--2",
pages = "17--33",
month = jan,
year = "2013",
CODEN = "FUMAAJ",
DOI = "https://doi.org/10.3233/FI-2013-930",
ISSN = "0169-2968 (print), 1875-8681 (electronic)",
ISSN-L = "0169-2968",
bibdate = "Sat Mar 5 17:17:45 MST 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fundinfo2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Fundamenta Informaticae",
journal-URL = "http://content.iospress.com/journals/fundamenta-informaticae",
}
@Article{Bettini:2013:CTB,
author = "Lorenzo Bettini and Ferruccio Damiani and Kathrin
Geilmann and Jan Sch{\"a}fer",
title = "Combining traits with boxes and ownership types in a
{Java}-like setting",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "2",
pages = "218--247",
day = "1",
month = feb,
year = "2013",
CODEN = "SCPGD4",
DOI = "https://doi.org/10.1016/j.scico.2011.10.006",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Fri Nov 16 06:35:12 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642311001833",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Bettini:2013:FDT,
author = "Lorenzo Bettini and Sara Capecchi and Ferruccio
Damiani",
title = "On flexible dynamic trait replacement for {Java}-like
languages",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "7",
pages = "907--932",
day = "1",
month = jul,
year = "2013",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Mon May 13 13:51:09 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642312002092",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Bodden:2013:SLS,
author = "Eric Bodden and T{\'a}rsis Tol{\^e}do and M{\'a}rcio
Ribeiro and Claus Brabrand and Paulo Borba and Mira
Mezini",
title = "{SPL LIFT}: statically analyzing software product
lines in minutes instead of years",
journal = j-SIGPLAN,
volume = "48",
number = "6",
pages = "355--364",
month = jun,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2499370.2491976",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 1 17:15:38 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "A software product line (SPL) encodes a potentially
large variety of software products as variants of some
common code base. Up until now, re-using traditional
static analyses for SPLs was virtually intractable, as
it required programmers to generate and analyze all
products individually. In this work, however, we show
how an important class of existing inter-procedural
static analyses can be transparently lifted to SPLs.
Without requiring programmers to change a single line
of code, our approach SPLLIFT automatically converts
any analysis formulated for traditional programs within
the popular IFDS framework for inter-procedural,
finite, distributive, subset problems to an SPL-aware
analysis formulated in the IDE framework, a well-known
extension to IFDS. Using a full implementation based on
Heros, Soot, CIDE and JavaBDD, we show that with
SPLLIFT one can reuse IFDS-based analyses without
changing a single line of code. Through experiments
using three static analyses applied to four Java-based
product lines, we were able to show that our approach
produces correct results and outperforms the
traditional approach by several orders of magnitude.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "PLDI '13 conference proceedings.",
}
@Article{Bois:2013:BGV,
author = "Kristof {Du Bois} and Jennifer B. Sartor and Stijn
Eyerman and Lieven Eeckhout",
title = "Bottle graphs: visualizing scalability bottlenecks in
multi-threaded applications",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "355--372",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509529",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Understanding and analyzing multi-threaded program
performance and scalability is far from trivial, which
severely complicates parallel software development and
optimization. In this paper, we present bottle graphs,
a powerful analysis tool that visualizes multi-threaded
program performance, in regards to both per-thread
parallelism and execution time. Each thread is
represented as a box, with its height equal to the
share of that thread in the total program execution
time, its width equal to its parallelism, and its area
equal to its total running time. The boxes of all
threads are stacked upon each other, leading to a stack
with height equal to the total program execution time.
Bottle graphs show exactly how scalable each thread is,
and thus guide optimization towards those threads that
have a smaller parallel component (narrower), and a
larger share of the total execution time (taller), i.e.
to the 'neck' of the bottle. Using light-weight OS
modules, we calculate bottle graphs for unmodified
multi-threaded programs running on real processors with
an average overhead of 0.68\%. To demonstrate their
utility, we do an extensive analysis of 12 Java
benchmarks running on top of the Jikes JVM, which
introduces many JVM service threads. We not only reveal
and explain scalability limitations of several
well-known Java benchmarks; we also analyze the reasons
why the garbage collector itself does not scale, and in
fact performs optimally with two collector threads for
all benchmarks, regardless of the number of application
threads. Finally, we compare the scalability of Jikes
versus the OpenJDK JVM. We demonstrate how useful and
intuitive bottle graphs are as a tool to analyze
scalability and help optimize multi-threaded
applications.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Bond:2013:OCC,
author = "Michael D. Bond and Milind Kulkarni and Man Cao and
Minjia Zhang and Meisam Fathi Salmi and Swarnendu
Biswas and Aritra Sengupta and Jipeng Huang",
title = "{OCTET}: capturing and controlling cross-thread
dependences efficiently",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "693--712",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509519",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Parallel programming is essential for reaping the
benefits of parallel hardware, but it is notoriously
difficult to develop and debug reliable, scalable
software systems. One key challenge is that modern
languages and systems provide poor support for ensuring
concurrency correctness properties --- atomicity,
sequential consistency, and multithreaded determinism
--- because all existing approaches are impractical.
Dynamic, software-based approaches slow programs by up
to an order of magnitude because capturing and
controlling cross-thread dependences (i.e., conflicting
accesses to shared memory) requires synchronization at
virtually every access to potentially shared memory.
This paper introduces a new software-based concurrency
control mechanism called OCTET that soundly captures
cross-thread dependences and can be used to build
dynamic analyses for concurrency correctness. OCTET
achieves low overheads by tracking the locality state
of each potentially shared object. Non-conflicting
accesses conform to the locality state and require no
synchronization; only conflicting accesses require a
state change and heavyweight synchronization. This
optimistic tradeoff leads to significant efficiency
gains in capturing cross-thread dependences: a
prototype implementation of OCTET in a high-performance
Java virtual machine slows real-world concurrent
programs by only 26\% on average. A dependence
recorder, suitable for record {\&} replay, built on top
of OCTET adds an additional 5\% overhead on average.
These results suggest that OCTET can provide a
foundation for developing low-overhead analyses that
check and enforce concurrency correctness.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Bonetta:2013:TPE,
author = "Daniele Bonetta and Walter Binder and Cesare
Pautasso",
title = "{TigerQuoll}: parallel event-based {JavaScript}",
journal = j-SIGPLAN,
volume = "48",
number = "8",
pages = "251--260",
month = aug,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2517327.2442541",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 26 13:48:51 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPoPP '13 Conference proceedings.",
abstract = "JavaScript, the most popular language on the Web, is
rapidly moving to the server-side, becoming even more
pervasive. Still, JavaScript lacks support for shared
memory parallelism, making it challenging for
developers to exploit multicores present in both
servers and clients. In this paper we present
TigerQuoll, a novel API and runtime for parallel
programming in JavaScript. TigerQuoll features an
event-based API and a parallel runtime allowing
applications to exploit a mutable shared memory space.
The programming model of TigerQuoll features automatic
consistency and concurrency management, such that
developers do not have to deal with shared-data
synchronization. TigerQuoll supports an innovative
transaction model that allows for eventual consistency
to speed up high-contention workloads. Experiments show
that TigerQuoll applications scale well, allowing one
to implement common parallelism patterns in
JavaScript.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Bu:2013:BAD,
author = "Yingyi Bu and Vinayak Borkar and Guoqing Xu and
Michael J. Carey",
title = "A bloat-aware design for big data applications",
journal = j-SIGPLAN,
volume = "48",
number = "11",
pages = "119--130",
month = nov,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2555670.2466485",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 08:04:34 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "ISMM '13 conference proceedings.",
abstract = "Over the past decade, the increasing demands on
data-driven business intelligence have led to the
proliferation of large-scale, data-intensive
applications that often have huge amounts of data
(often at terabyte or petabyte scale) to process. An
object-oriented programming language such as Java is
often the developer's choice for implementing such
applications, primarily due to its quick development
cycle and rich community resource. While the use of
such languages makes programming easier, significant
performance problems can often be seen --- the
combination of the inefficiencies inherent in a managed
run-time system and the impact of the huge amount of
data to be processed in the limited memory space often
leads to memory bloat and performance degradation at a
surprisingly early stage. This paper proposes a
bloat-aware design paradigm towards the development of
efficient and scalable Big Data applications in
object-oriented GC enabled languages. To motivate this
work, we first perform a study on the impact of several
typical memory bloat patterns. These patterns are
summarized from the user complaints on the mailing
lists of two widely-used open-source Big Data
applications. Next, we discuss our design paradigm to
eliminate bloat. Using examples and real-world
experience, we demonstrate that programming under this
paradigm does not incur significant programming burden.
We have implemented a few common data processing tasks
both using this design and using the conventional
object-oriented design. Our experimental results show
that this new design paradigm is extremely effective in
improving performance --- even for the moderate-size
data sets processed, we have observed 2.5x+ performance
gains, and the improvement grows substantially with the
size of the data set.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{Campbell:2013:ICC,
author = "Bill Campbell and Swami Iyer and Bahar Akbal-Delibas",
title = "Introduction to compiler construction in a {Java}
world",
publisher = pub-CRC,
address = pub-CRC:adr,
pages = "????",
year = "2013",
ISBN = "1-4398-6088-2 (hardcover)",
ISBN-13 = "978-1-4398-6088-5 (hardcover)",
LCCN = "QA76.73.J38 C363 2013",
bibdate = "Thu Nov 15 17:16:13 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
acknowledgement = ack-nhfb,
subject = "Compilers (Computer programs); Java (Computer program
language)",
}
@Article{Carro:2013:MDA,
author = "Manuel Carro and {\'A}ngel Herranz and Julio
Mari{\~n}o",
title = "A model-driven approach to teaching concurrency",
journal = j-TOCE,
volume = "13",
number = "1",
pages = "5:1--5:??",
month = jan,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1145/2414446.2414451",
ISSN = "1946-6226",
bibdate = "Sat Feb 2 06:44:42 MST 2013",
bibsource = "http://www.acm.org/pubs/toce;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/toce.bib",
abstract = "We present an undergraduate course on concurrent
programming where formal models are used in different
stages of the learning process. The main practical
difference with other approaches lies in the fact that
the ability to develop correct concurrent software
relies on a systematic transformation of formal models
of inter-process interaction (so called shared
resources), rather than on the specific constructs of
some programming language. Using a resource-centric
rather than a language-centric approach has some
benefits for both teachers and students. Besides the
obvious advantage of being independent of the
programming language, the models help in the early
validation of concurrent software design, provide
students and teachers with a lingua franca that greatly
simplifies communication at the classroom and during
supervision, and help in the automatic generation of
tests for the practical assignments. This method has
been in use, with slight variations, for some 15 years,
surviving changes in the programming language and
course length. In this article, we describe the
components and structure of the current incarnation of
the course --- which uses Java as target language ---
and some tools used to support our method. We provide a
detailed description of the different outcomes that the
model-driven approach delivers (validation of the
initial design, automatic generation of tests, and
mechanical generation of code) from a teaching
perspective. A critical discussion on the perceived
advantages and risks of our approach follows, including
some proposals on how these risks can be minimized. We
include a statistical analysis to show that our method
has a positive impact in the student ability to
understand concurrency and to generate correct code.",
acknowledgement = ack-nhfb,
articleno = "5",
fjournal = "ACM Transactions on Computing Education",
}
@Article{Carter:2013:SSA,
author = "Kyle Carter and Adam Foltzer and Joe Hendrix and Brian
Huffman and Aaron Tomb",
title = "{SAW}: the software analysis workbench",
journal = j-SIGADA-LETTERS,
volume = "33",
number = "3",
pages = "15--18",
month = dec,
year = "2013",
CODEN = "AALEE5",
DOI = "https://doi.org/10.1145/2658982.2527277",
ISSN = "1094-3641 (print), 1557-9476 (electronic)",
ISSN-L = "1094-3641",
bibdate = "Wed Sep 3 16:38:30 MDT 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigada.bib",
abstract = "Galois has developed a suite of symbolic simulation
and formal analysis tools, collectively called the
Software Analysis Workbench (SAW). SAW provides
security analysts and engineers with the ability to
generate formal models from C and Java programs and
prove properties of those programs using several
automated verification tools. SAW is primarily used to
verify the correctness of cryptographic
implementations, and is able to import specifications
written in Cryptol, a language developed by Galois for
specifying cryptographic primitives. In this short
paper, we describe the main components of SAW. We then
given an overview of the cryptographic implementations
that have been verified.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGADA Ada Letters",
journal-URL = "http://portal.acm.org/citation.cfm?id=J32",
remark = "HILT '13 conference proceedings.",
}
@Article{Cavalcanti:2013:SCJ,
author = "Ana Cavalcanti and Andy Wellings and Jim Woodcock",
title = "The {Safety-Critical Java} memory model formalised",
journal = j-FORM-ASP-COMPUT,
volume = "25",
number = "1",
pages = "37--57",
month = jan,
year = "2013",
CODEN = "FACME5",
DOI = "https://doi.org/10.1007/s00165-012-0253-4",
ISSN = "0934-5043 (print), 1433-299X (electronic)",
ISSN-L = "0934-5043",
bibdate = "Tue Mar 17 20:58:44 MDT 2015",
bibsource = "http://www.math.utah.edu/pub/tex/bib/formaspcomput.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://link.springer.com/article/10.1007/s00165-012-0253-4",
acknowledgement = ack-nhfb,
fjournal = "Formal Aspects of Computing",
journal-URL = "http://link.springer.com/journal/165",
}
@Article{Choi:2013:GGT,
author = "Wontae Choi and George Necula and Koushik Sen",
title = "Guided {GUI} testing of {Android} apps with minimal
restart and approximate learning",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "623--640",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509552",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Smartphones and tablets with rich graphical user
interfaces (GUI) are becoming increasingly popular.
Hundreds of thousands of specialized applications,
called apps, are available for such mobile platforms.
Manual testing is the most popular technique for
testing graphical user interfaces of such apps. Manual
testing is often tedious and error-prone. In this
paper, we propose an automated technique, called
Swift-Hand, for generating sequences of test inputs for
Android apps. The technique uses machine learning to
learn a model of the app during testing, uses the
learned model to generate user inputs that visit
unexplored states of the app, and uses the execution of
the app on the generated inputs to refine the model. A
key feature of the testing algorithm is that it avoids
restarting the app, which is a significantly more
expensive operation than executing the app on a
sequence of inputs. An important insight behind our
testing algorithm is that we do not need to learn a
precise model of an app, which is often computationally
intensive, if our goal is to simply guide test
execution into unexplored parts of the state space. We
have implemented our testing algorithm in a publicly
available tool for Android apps written in Java. Our
experimental results show that we can achieve
significantly better coverage than traditional random
testing and L*-based testing in a given time budget.
Our algorithm also reaches peak coverage faster than
both random and L*-based testing.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{DElia:2013:BLP,
author = "Daniele Cono D'Elia and Camil Demetrescu",
title = "{Ball--Larus} path profiling across multiple loop
iterations",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "373--390",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509521",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Identifying the hottest paths in the control flow
graph of a routine can direct optimizations to portions
of the code where most resources are consumed. This
powerful methodology, called path profiling, was
introduced by Ball and Larus in the mid 90's [4] and
has received considerable attention in the last 15
years for its practical relevance. A shortcoming of the
Ball-Larus technique was the inability to profile
cyclic paths, making it difficult to mine execution
patterns that span multiple loop iterations. Previous
results, based on rather complex algorithms, have
attempted to circumvent this limitation at the price of
significant performance losses even for a small number
of iterations. In this paper, we present a new approach
to multi-iteration path profiling, based on data
structures built on top of the original Ball-Larus
numbering technique. Our approach allows the profiling
of all executed paths obtained as a concatenation of up
to k Ball-Larus acyclic paths, where k is a
user-defined parameter. We provide examples showing
that this method can reveal optimization opportunities
that acyclic-path profiling would miss. An extensive
experimental investigation on a large variety of Java
benchmarks on the Jikes RVM shows that our approach can
be even faster than Ball-Larus due to fewer operations
on smaller hash tables, producing compact
representations of cyclic paths even for large values
of k.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{DelRa:2013:BRJ,
author = "William {Del Ra III}",
title = "Book Review: {{\booktitle{Java application
architecture: modularity patterns with examples using
OSGi}} by Kirk Knoernschild}",
journal = j-SIGSOFT,
volume = "38",
number = "1",
pages = "55--55",
month = jan,
year = "2013",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2413038.2413053",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:22 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Demange:2013:PBB,
author = "Delphine Demange and Vincent Laporte and Lei Zhao and
Suresh Jagannathan and David Pichardie and Jan Vitek",
title = "{Plan B}: a buffered memory model for {Java}",
journal = j-SIGPLAN,
volume = "48",
number = "1",
pages = "329--342",
month = jan,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2480359.2429110",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 1 17:15:03 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Recent advances in verification have made it possible
to envision trusted implementations of real-world
languages. Java with its type-safety and fully
specified semantics would appear to be an ideal
candidate; yet, the complexity of the translation steps
used in production virtual machines have made it a
challenging target for verifying compiler technology.
One of Java's key innovations, its memory model, poses
significant obstacles to such an endeavor. The Java
Memory Model is an ambitious attempt at specifying the
behavior of multithreaded programs in a portable,
hardware agnostic, way. While experts have an intuitive
grasp of the properties that the model should enjoy,
the specification is complex and not well-suited for
integration within a verifying compiler infrastructure.
Moreover, the specification is given in an axiomatic
style that is distant from the intuitive
reordering-based reasonings traditionally used to
justify or rule out behaviors, and ill suited to the
kind of operational reasoning one would expect to
employ in a compiler. This paper takes a step back, and
introduces a Buffered Memory Model (BMM) for Java. We
choose a pragmatic point in the design space
sacrificing generality in favor of a model that is
fully characterized in terms of the reorderings it
allows, amenable to formal reasoning, and which can be
efficiently applied to a specific hardware family,
namely x86 multiprocessors. Although the BMM restricts
the reorderings compilers are allowed to perform, it
serves as the key enabling device to achieving a
verification pathway from bytecode to machine
instructions. Despite its restrictions, we show that it
is backwards compatible with the Java Memory Model and
that it does not cripple performance on TSO
architectures.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "POPL '13 conference proceedings.",
}
@Article{Dey:2013:STA,
author = "Akon Dey and Alan Fekete and Uwe R{\"o}hm",
title = "Scalable transactions across heterogeneous {NoSQL}
key-value data stores",
journal = j-PROC-VLDB-ENDOWMENT,
volume = "6",
number = "12",
pages = "1434--1439",
month = aug,
year = "2013",
CODEN = "????",
ISSN = "2150-8097",
bibdate = "Fri Dec 13 05:57:00 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/vldbe.bib",
abstract = "Many cloud systems provide data stores with limited
features, especially they may not provide transactions,
or else restrict transactions to a single item. We
propose a approach that gives multi-item transactions
across heterogeneous data stores, using only a minimal
set of features from each store such as single item
consistency, conditional update, and the ability to
include extra metadata within a value. We offer a
client-coordinated transaction protocol that does not
need a central coordinating infrastructure. A prototype
implementation has been built as a Java library and
measured with an extension of YCSB benchmark to
exercise multi-item transactions.",
acknowledgement = ack-nhfb,
fjournal = "Proceedings of the VLDB Endowment",
}
@Article{Dias:2013:SIP,
author = "Ricardo J. Dias and Tiago M. Vale and Jo{\~a}o M.
Louren{\c{c}}o",
title = "Special Issue Papers: Efficient support for in-place
metadata in {Java} software transactional memory",
journal = j-CCPE,
volume = "25",
number = "17",
pages = "2394--2411",
day = "10",
month = dec,
year = "2013",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.3098",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Tue Dec 3 10:37:48 MST 2013",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "19 Jul 2013",
}
@Article{Diaz:2013:LEU,
author = "Oscar D{\'\i}az and Crist{\'o}bal Arellano and Maider
Azanza",
title = "A language for end-user {Web} augmentation: Caring for
producers and consumers alike",
journal = j-TWEB,
volume = "7",
number = "2",
pages = "9:1--9:??",
month = may,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1145/2460383.2460388",
ISSN = "1559-1131 (print), 1559-114X (electronic)",
ISSN-L = "1559-1131",
bibdate = "Thu Mar 13 08:28:18 MDT 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tweb.bib",
abstract = "Web augmentation is to the Web what augmented reality
is to the physical world: layering relevant
content/layout/navigation over the existing Web to
customize the user experience. This is achieved through
JavaScript (JS) using browser weavers (e.g.,
Greasemonkey). To date, over 43 million of downloads of
Greasemonkey scripts ground the vitality of this
movement. However, Web augmentation is hindered by
being programming intensive and prone to malware. This
prevents end-users from participating as both producers
and consumers of scripts: producers need to know JS,
consumers need to trust JS. This article aims at
promoting end-user participation in both roles. The
vision is for end-users to prosume (the act of
simultaneously caring for producing and consuming)
scripts as easily as they currently prosume their
pictures or videos. Encouraging production requires
more ``natural'' and abstract constructs. Promoting
consumption calls for augmentation scripts to be easier
to understand, share, and trust upon. To this end, we
explore the use of Domain-Specific Languages (DSLs) by
introducing Sticklet. Sticklet is an internal DSL on
JS, where JS generality is reduced for the sake of
learnability and reliability. Specifically, Web
augmentation is conceived as fixing in existing web
sites (i.e., the wall ) HTML fragments extracted from
either other sites or Web services (i.e., the stickers
). Sticklet targets hobby programmers as producers, and
computer literates as consumers. From a producer
perspective, benefits are threefold. As a restricted
grammar on top of JS, Sticklet expressions are domain
oriented and more declarative than their JS
counterparts, hence speeding up development. As
syntactically correct JS expressions, Sticklet scripts
can be installed as traditional scripts and hence,
programmers can continue using existing JS tools. As
declarative expressions, they are easier to maintain,
and amenable for optimization. From a consumer
perspective, domain specificity brings
understandability (due to declarativeness), reliability
(due to built-in security), and ``consumability''
(i.e., installation/enactment/sharing of Sticklet
expressions are tuned to the shortage of time and
skills of the target audience). Preliminary evaluations
indicate that 77\% of the subjects were able to develop
new Sticklet scripts in less than thirty minutes while
84\% were able to consume these scripts in less than
ten minutes. Sticklet is available to download as a
Mozilla add-on.",
acknowledgement = ack-nhfb,
articleno = "9",
fjournal = "ACM Transactions on the Web (TWEB)",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J1062",
}
@Article{Efftinge:2013:XID,
author = "Sven Efftinge and Moritz Eysholdt and Jan K{\"o}hnlein
and Sebastian Zarnekow and Robert von Massow and
Wilhelm Hasselbring and Michael Hanus",
title = "{Xbase}: implementing domain-specific languages for
{Java}",
journal = j-SIGPLAN,
volume = "48",
number = "3",
pages = "112--121",
month = mar,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2480361.2371419",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 1 17:15:18 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Xtext is an open-source framework for implementing
external, textual domain-specific languages (DSLs). So
far, most DSLs implemented with Xtext and similar tools
focus on structural aspects such as service
specifications and entities. Because behavioral aspects
are significantly more complicated to implement, they
are often delegated to general-purpose programming
languages. This approach introduces complex integration
patterns and the DSL's high level of abstraction is
compromised. We present Xbase as part of Xtext, an
expression language that can be reused via language
inheritance in any DSL implementation based on Xtext.
Xbase expressions provide both control structures and
program expressions in a uniform way. Xbase is
statically typed and tightly integrated with the Java
type system. Languages extending Xbase inherit the
syntax of a Java-like expression language as well as
language infrastructure components, including a parser,
an unparser, a linker, a compiler and an interpreter.
Furthermore, the framework provides integration into
the Eclipse IDE including debug and refactoring
support. The application of Xbase is presented by means
of a domain model language which serves as a tutorial
example and by the implementation of the programming
language Xtend. Xtend is a functional and
object-oriented general purpose language for the Java
Virtual Machine (JVM). It is built on top of Xbase
which is the reusable expression language that is the
foundation of Xtend.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "GPCE '12 conference proceedings.",
}
@Article{Eugster:2013:SUP,
author = "Patrick Eugster",
title = "Safe uniform proxies for {Java}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "9",
pages = "1490--1520",
day = "1",
month = sep,
year = "2013",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Tue Sep 3 06:34:36 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642312002043",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Book{Evans:2013:WGJ,
author = "Benjamin J. Evans and Martijn Verburg",
title = "The well-grounded {Java} developer: vital techniques
of {Java 7} and polyglot programming",
publisher = pub-MANNING,
address = pub-MANNING:adr,
pages = "xxx + 462",
year = "2013",
ISBN = "1-61729-006-8",
ISBN-13 = "978-1-61729-006-0",
LCCN = "QA76.73.J38 E93 2013",
bibdate = "Fri Dec 28 05:47:55 MST 2012",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
note = "Foreword by Heinz Kabutz.",
URL = "http://www.loc.gov/catdir/enhancements/fy1304/2012288194-b.html;
http://www.loc.gov/catdir/enhancements/fy1304/2012288194-d.html",
acknowledgement = ack-nhfb,
subject = "Java virtual machine; Java (Computer program
language); Functional programming (Computer science);
Application software; Development",
tableofcontents = "Developing with Java 7 \\
Vital techniques \\
Polyglot programming on the JVM \\
Crafting the polyglot project",
}
@Article{Feldthaus:2013:SAR,
author = "Asger Feldthaus and Anders M{\o}ller",
title = "Semi-automatic rename refactoring for {JavaScript}",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "323--338",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509520",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Modern IDEs support automated refactoring for many
programming languages, but support for JavaScript is
still primitive. To perform renaming, which is one of
the fundamental refactorings, there is often no
practical alternative to simple syntactic
search-and-replace. Although more sophisticated
alternatives have been developed, they are limited by
whole-program assumptions and poor scalability. We
propose a technique for semi-automatic refactoring for
JavaScript, with a focus on renaming. Unlike
traditional refactoring algorithms, semi-automatic
refactoring works by a combination of static analysis
and interaction with the programmer. With this
pragmatic approach, we can provide scalable and
effective refactoring support for real-world code,
including libraries and incomplete applications.
Through a series of experiments that estimate how much
manual effort our technique demands from the
programmer, we show that our approach is a useful
improvement compared to search-and-replace tools.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Ferrara:2013:GSA,
author = "P. Ferrara",
title = "A generic static analyzer for multithreaded {Java}
programs",
journal = j-SPE,
volume = "43",
number = "6",
pages = "663--684",
month = jun,
year = "2013",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.2126",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Tue Dec 3 10:30:05 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software --- Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "9 May 2012",
}
@Article{Flanagan:2013:PES,
author = "Cormac Flanagan and K. Rustan M. Leino and Mark
Lillibridge and Greg Nelson and James B. Saxe and
Raymie Stata",
title = "{PLDI 2002}: Extended static checking for {Java}",
journal = j-SIGPLAN,
volume = "48",
number = "4S",
pages = "22--33",
month = apr,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2502508.2502520",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 15 15:53:11 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Software development and maintenance are costly
endeavors. The cost can be reduced if more software
defects are detected earlier in the development cycle.
This paper introduces the Extended Static Checker for
Java (ESC/Java), an experimental compile-time program
checker that finds common programming errors. The
checker is powered by verification-condition generation
and automatic theorem-proving techniques. It provides
programmers with a simple annotation language with
which programmer design decisions can be expressed
formally. ESC/Java examines the annotated software and
warns of inconsistencies between the design decisions
recorded in the annotations and the actual code, and
also warns of potential runtime errors in the code.
This paper gives an overview of the checker
architecture and annotation language and describes our
experience applying the checker to tens of thousands of
lines of Java programs.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Fournet:2013:FAC,
author = "Cedric Fournet and Nikhil Swamy and Juan Chen and
Pierre-Evariste Dagand and Pierre-Yves Strub and
Benjamin Livshits",
title = "Fully abstract compilation to {JavaScript}",
journal = j-SIGPLAN,
volume = "48",
number = "1",
pages = "371--384",
month = jan,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2480359.2429114",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 1 17:15:03 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "Many tools allow programmers to develop applications
in high-level languages and deploy them in web browsers
via compilation to JavaScript. While practical and
widely used, these compilers are ad hoc: no guarantee
is provided on their correctness for whole programs,
nor their security for programs executed within
arbitrary JavaScript contexts. This paper presents a
compiler with such guarantees. We compile an ML-like
language with higher-order functions and references to
JavaScript, while preserving all source program
properties. Relying on type-based invariants and
applicative bisimilarity, we show full abstraction: two
programs are equivalent in all source contexts if and
only if their wrapped translations are equivalent in
all JavaScript contexts. We evaluate our compiler on
sample programs, including a series of secure
libraries.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "POPL '13 conference proceedings.",
}
@Article{Gadyatskaya:2013:LTC,
author = "Olga Gadyatskaya and Fabio Massacci and Quang-Huy
Nguyen and Boutheina Chetali",
title = "Load time code validation for mobile phone {Java}
Cards",
journal = j-J-INFO-SEC-APPL,
volume = "18",
number = "2--3",
pages = "108--129",
month = sep,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1016/j.jisa.2013.07.004",
ISSN = "2214-2126",
ISSN-L = "2214-2126",
bibdate = "Sun May 8 11:59:03 MDT 2022",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/jinfosecappl.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S2214212613000318",
acknowledgement = ack-nhfb,
ajournal = "J. Info. Sec. Appl.",
fjournal = "Journal of Information Security and Applications
(JISA)",
journal-URL = "http://www.sciencedirect.com/science/journal/22142126",
}
@Article{Gerakios:2013:FIS,
author = "Prodromos Gerakios and Aggelos Biboudis and Yannis
Smaragdakis",
title = "Forsaking inheritance: supercharged delegation in
{DelphJ}",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "233--252",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509535",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "We propose DelphJ: a Java-based OO language that
eschews inheritance completely, in favor of a
combination of class morphing and (deep) delegation.
Compared to past delegation approaches, the novel
aspect of our design is the ability to emulate the best
aspects of inheritance while retaining maximum
flexibility: using morphing, a class can select any of
the methods of its delegatee and export them (if
desired) or transform them (e.g., to add extra
arguments or modify type signatures), yet without
needing to name these methods explicitly and handle
them one-by-one. Compared to past work on morphing, our
approach adopts and adapts advanced delegation
mechanisms, in order to add late binding capabilities
and, thus, provide a full substitute of inheritance.
Additionally, we explore complex semantic issues in the
interaction of delegation with late binding. We present
our language design both informally, with numerous
examples, and formally in a core calculus.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Gonzalez:2013:HBP,
author = "Apolinar Gonzalez and Walter Mata and Alfons Crespo
and Miguel Masmano and Jos{\'e} F{\'e}lix and Alvaro
Aburto",
title = "A hypervisor based platform to support real-time
safety critical embedded {Java} applications",
journal = j-INT-J-COMPUT-SYST-SCI-ENG,
volume = "28",
number = "3",
pages = "??--??",
month = "????",
year = "2013",
CODEN = "CSSEEI",
ISSN = "0267-6192",
ISSN-L = "0267-6192",
bibdate = "Tue Dec 3 12:04:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/computsystscieng.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "International Journal of Computer Systems Science and
Engineering",
}
@Book{Gosling:2013:JLS,
author = "James Gosling and Bill Joy and Guy L. {Steele Jr.} and
Gilad Bracha and Alex Buckley",
title = "The {Java} Language Specification",
publisher = pub-AW,
address = pub-AW:adr,
edition = "{Java SE 7}",
pages = "xxvii + 644",
year = "2013",
ISBN = "0-13-326022-4 (paperback)",
ISBN-13 = "978-0-13-326022-9 (paperback)",
LCCN = "QA76.73.J38 G68 2013",
bibdate = "Mon Jan 28 14:57:19 MST 2013",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/mathcw.bib",
acknowledgement = ack-nhfb,
remark = "Previous ed.: Boston, Mass.; London: Addison-Wesley,
2005.",
subject = "Java (Computer program language)",
}
@Article{Gvero:2013:BRC,
author = "Igor Gvero",
title = "Book Review: {{\booktitle{Core Java volume I:
fundamentals}}, 9th edition by Cay S. Horstmann and
Gary Cornell}",
journal = j-SIGSOFT,
volume = "38",
number = "3",
pages = "33--33",
month = may,
year = "2013",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2464526.2464552",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:25 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Haddad:2013:SIP,
author = "Ghaith Haddad and Gary T. Leavens",
title = "Special Issue Papers: Specifying subtypes in {Safety
Critical Java} programs",
journal = j-CCPE,
volume = "25",
number = "16",
pages = "2290--2306",
month = nov,
year = "2013",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.2930",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Tue Dec 3 10:37:44 MST 2013",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "4 Oct 2012",
}
@Article{Haubl:2013:CST,
author = "Christian H{\"a}ubl and Christian Wimmer and Hanspeter
M{\"o}ssenb{\"o}ck",
title = "Context-sensitive trace inlining for {Java}",
journal = j-COMP-LANGS-SYS-STRUCT,
volume = "39",
number = "4",
pages = "123--141",
month = dec,
year = "2013",
CODEN = "????",
ISSN = "1477-8424 (print), 1873-6866 (electronic)",
ISSN-L = "1477-8424",
bibdate = "Thu Mar 6 07:28:19 MST 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/complngs.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://www.sciencedirect.com/science/article/pii/S1477842413000146",
acknowledgement = ack-nhfb,
fjournal = "Computer Languages, Systems and Structures",
journal-URL = "http://www.sciencedirect.com/science/journal/14778424/",
}
@Article{Hauswirth:2013:TJP,
author = "Matthias Hauswirth and Andrea Adamoli",
title = "Teaching {Java} programming with the {Informa} clicker
system",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "5",
pages = "499--520",
day = "1",
month = may,
year = "2013",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Wed Mar 27 07:52:16 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642311001468",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Herczeg:2013:TFF,
author = "Zolt{\'a}n Herczeg and G{\'a}bor L{\'o}ki and
Tam{\'a}s Szirbucz and {\'A}kos Kiss",
title = "Validating {JavaScript} Guidelines across Multiple
{Web} Browsers",
journal = j-NORDIC-J-COMPUT,
volume = "15",
number = "1",
pages = "18--31",
month = "Summer",
year = "2013",
CODEN = "NJCOFR",
ISSN = "1236-6064",
bibdate = "Sun May 5 11:09:02 MDT 2013",
bibsource = "http://www.cs.helsinki.fi/njc/njc15.html;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Nordic Journal of Computing",
}
@Article{Herhut:2013:RTP,
author = "Stephan Herhut and Richard L. Hudson and Tatiana
Shpeisman and Jaswanth Sreeram",
title = "{River Trail}: a path to parallelism in {JavaScript}",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "729--744",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509516",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "JavaScript is the most popular language on the web and
is a crucial component of HTML5 applications and
services that run on consumer platforms ranging from
desktops to phones. However, despite ample amount of
hardware parallelism available to web applications on
such platforms, JavaScript web applications remain
predominantly sequential. Common parallel programming
solutions accepted by other programming languages
failed to transfer themselves to JavaScript due to
differences in programming models, the additional
requirements of the web and different developer
expectations. In this paper we present River Trail ---
a parallel programming model and API for JavaScript
that provides safe, portable, programmer-friendly,
deterministic parallelism to JavaScript applications.
River Trail allows web applications to effectively
utilize multiple cores, vector instructions, and GPUs
on client platforms while allowing the web developer to
remain within the environment of JavaScript. We
describe the implementation of the River Trail compiler
and runtime and present experimental results that show
the impact of River Trail on performance and
scalability for a variety of realistic HTML5
applications. Our experiments show that River Trail has
a dramatic positive impact on overall performance and
responsiveness of computationally intense JavaScript
based applications achieving up to 33.6 times speedup
for kernels and up to 11.8 times speedup for realistic
web applications compared to sequential JavaScript.
Moreover, River Trail enables new interactive web
usages that are simply not even possible with standard
sequential JavaScript.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Heumann:2013:TEM,
author = "Stephen T. Heumann and Vikram S. Adve and Shengjie
Wang",
title = "The tasks with effects model for safe concurrency",
journal = j-SIGPLAN,
volume = "48",
number = "8",
pages = "239--250",
month = aug,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2517327.2442540",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 26 13:48:51 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "PPoPP '13 Conference proceedings.",
abstract = "Today's widely-used concurrent programming models
either provide weak safety guarantees, making it easy
to write code with subtle errors, or are limited in the
class of programs that they can express. We propose a
new concurrent programming model based on tasks with
effects that offers strong safety guarantees while
still providing the flexibility needed to support the
many ways that concurrency is used in complex
applications. The core unit of work in our model is a
dynamically-created task. The model's key feature is
that each task has programmer-specified effects, and a
run-time scheduler is used to ensure that two tasks are
run concurrently only if they have non-interfering
effects. Through the combination of statically
verifying the declared effects of tasks and using an
effect-aware run-time scheduler, our model is able to
guarantee strong safety properties, including data race
freedom and atomicity. It is also possible to use our
model to write programs and computations that can be
statically proven to behave deterministically. We
describe the tasks with effects programming model and
provide a formal dynamic semantics for it. We also
describe our implementation of this model in an
extended version of Java and evaluate its use in
several programs exhibiting various patterns of
concurrency.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{Hinojosa:2013:TS,
author = "Daniel Hinojosa",
title = "Testing in {Scala}",
publisher = pub-ORA-MEDIA,
address = pub-ORA-MEDIA:adr,
pages = "xiv + 148",
year = "2013",
ISBN = "1-4493-1511-9, 1-4493-6034-3 (e-book), 1-4493-6033-5
(e-book)",
ISBN-13 = "978-1-4493-1511-5, 978-1-4493-6034-4 (e-book),
978-1-4493-6033-7 (e-book)",
LCCN = "QA76.7 .H555 2013",
bibdate = "Thu Dec 4 08:38:57 MST 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/ora.bib;
z3950.loc.gov:7090/Voyager",
URL = "http://proquest.tech.safaribooksonline.de/9781449360313;
http://www.loc.gov/catdir/enhancements/fy1310/2012554271-b.html;
http://www.loc.gov/catdir/enhancements/fy1310/2012554271-d.html",
acknowledgement = ack-nhfb,
subject = "Programming languages (Electronic computers);
Multiparadigm programming (Computer science);
Object-oriented programming (Computer science);
Functional programming (Computer science); Java virtual
machine; Functional programming languages;
Object-oriented programming languages",
}
@Article{Hoppe:2013:DDB,
author = "Michael Hoppe and Stefan Hanenberg",
title = "Do developers benefit from generic types?: an
empirical comparison of generic and raw types in
{Java}",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "457--474",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509528",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Type systems that permit developers to express
themselves more precisely are one of the primary topics
in programming language research, as well as in
industrial software development. While it seems
plausible that an expressive static type system
increases developer productivity, there is little
empirical evidence for or against this hypothesis.
Generic types in Java are an example: as an extension
of Java's original type system, some claim that Java
1.5 improves the type system's ``expressiveness.'' Even
if this claim is true, there exists little empirical
evidence that claimed expressiveness leads to a
measurable increase in developer productivity. This
paper introduces an experiment where generic types (in
comparison to raw types) have been evaluated in three
different directions: (1) the documentation impact on
undocumented APIs, (2) the time required for fixing
type errors, and (3) the extensibility of a generic
type hierarchy. The results of the experiment suggest
that generic types improve documentation and reduce
extensibility --- without revealing a difference in the
time required for fixing type errors.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Book{Horstmann:2013:CJF,
author = "Cay S. Horstmann and Gary Cornell",
title = "Core {Java}: Fundamentals",
volume = "1",
publisher = pub-PH,
address = pub-PH:adr,
edition = "Ninth",
pages = "xxvi + 974",
year = "2013",
ISBN = "0-13-708189-8 (paperback)",
ISBN-13 = "978-0-13-708189-9 (paperback)",
LCCN = "QA76.73.J38 H6753 2013",
bibdate = "Mon Jan 28 14:54:07 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
library.ox.ac.uk:210/ADVANCE",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language)",
tableofcontents = "Vol. 1. Fundamentals \\
vol. 2. Advance features",
xxaddress = "Redwood Shores, CA, USA",
}
@Article{Huang:2013:ECS,
author = "Jipeng Huang and Michael D. Bond",
title = "Efficient context sensitivity for dynamic analyses via
calling context uptrees and customized memory
management",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "53--72",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509510",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "State-of-the-art dynamic bug detectors such as data
race and memory leak detectors report program locations
that are likely causes of bugs. However, programmers
need more than static program locations to understand
the behavior of increasingly complex and concurrent
software. Dynamic calling context provides additional
information, but it is expensive to record calling
context frequently, e.g., at every read and write.
Context-sensitive dynamic analyses can build and
maintain a calling context tree (CCT) to track calling
context--but in order to reuse existing nodes,
CCT-based approaches require an expensive lookup. This
paper introduces a new approach for context sensitivity
that avoids this expensive lookup. The approach uses a
new data structure called the calling context uptree
(CCU) that adds low overhead by avoiding the lookup and
instead allocating a new node for each context. A key
contribution is that the approach can mitigate the
costs of allocating many nodes by extending tracing
garbage collection (GC): GC collects unused CCU nodes
naturally and efficiently, and we extend GC to merge
duplicate nodes lazily. We implement our CCU-based
approach in a high-performance Java virtual machine and
integrate it with a staleness-based memory leak
detector and happens-before data race detector, so they
can report context-sensitive program locations that
cause bugs. We show that the CCU-based approach, in
concert with an extended GC, provides a compelling
alternative to CCT-based approaches for adding context
sensitivity to dynamic analyses.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Jaffer:2013:EAR,
author = "Aubrey Jaffer",
title = "Easy Accurate Reading and Writing of Floating-Point
Numbers",
journal = "arXiv.org",
volume = "??",
number = "??",
pages = "1--7",
day = "28",
month = oct,
year = "2013",
CODEN = "????",
ISSN = "????",
ISSN-L = "????",
MRclass = "65G04",
bibdate = "Wed Sep 30 12:43:49 MDT 2015",
bibsource = "http://www.math.utah.edu/pub/tex/bib/fparith.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://arxiv.org/abs/1310.8121",
abstract = "Presented here are algorithms for converting between
(decimal) scientific-notation and (binary) IEEE-754
double-precision floating-point numbers. By employing a
rounding integer quotient operation these algorithms
are much simpler than those previously published. The
values are stable under repeated conversions between
the formats. Unlike Java-1.6, the scientific
representations generated use only the minimum number
of mantissa digits needed to convert back to the
original binary values. Implemented in Java these
algorithms execute as fast or faster than Java's native
conversions over nearly all of the IEEE-754
double-precision range.",
acknowledgement = ack-nhfb,
keywords = "base conversion; input-output conversion; radix
conversion; round-trip base conversion",
subject = "Numerical Analysis (cs.NA)",
}
@Article{Jantz:2013:ESM,
author = "Michael R. Jantz and Prasad A. Kulkarni",
title = "Exploring single and multilevel {JIT} compilation
policy for modern machines 1",
journal = j-TACO,
volume = "10",
number = "4",
pages = "22:1--22:??",
month = dec,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1145/2541228.2541229",
ISSN = "1544-3566 (print), 1544-3973 (electronic)",
ISSN-L = "1544-3566",
bibdate = "Mon Dec 23 10:31:41 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/csharp.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/taco.bib",
abstract = "Dynamic or Just-in-Time (JIT) compilation is essential
to achieve high-performance emulation for programs
written in managed languages, such as Java and C\#. It
has been observed that a conservative JIT compilation
policy is most effective to obtain good runtime
performance without impeding application progress on
single-core machines. At the same time, it is often
suggested that a more aggressive dynamic compilation
strategy may perform best on modern machines that
provide abundant computing resources, especially with
virtual machines (VMs) that are also capable of
spawning multiple concurrent compiler threads. However,
comprehensive research on the best JIT compilation
policy for such modern processors and VMs is currently
lacking. The goal of this work is to explore the
properties of single-tier and multitier JIT compilation
policies that can enable existing and future VMs to
realize the best program performance on modern
machines. In this work, we design novel experiments and
implement new VM configurations to effectively control
the compiler aggressiveness and optimization levels (
if and when methods are compiled) in the
industry-standard Oracle HotSpot Java VM to achieve
this goal. We find that the best JIT compilation policy
is determined by the nature of the application and the
speed and effectiveness of the dynamic compilers. We
extend earlier results showing the suitability of
conservative JIT compilation on single-core machines
for VMs with multiple concurrent compiler threads. We
show that employing the free compilation resources
(compiler threads and hardware cores) to aggressively
compile more program methods quickly reaches a point of
diminishing returns. At the same time, we also find
that using the free resources to reduce compiler queue
backup (compile selected hot methods early )
significantly benefits program performance, especially
for slower (highly optimizing) JIT compilers. For such
compilers, we observe that accurately prioritizing JIT
method compiles is crucial to realize the most
performance benefit with the smallest hardware budget.
Finally, we show that a tiered compilation policy,
although complex to implement, greatly alleviates the
impact of more and early JIT compilation of programs on
modern machines.",
acknowledgement = ack-nhfb,
articleno = "22",
fjournal = "ACM Transactions on Architecture and Code Optimization
(TACO)",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J924",
}
@Article{Kaufmann:2013:SCO,
author = "Marco Kaufmann and Rainer G. Spallek",
title = "Superblock compilation and other optimization
techniques for a {Java}-based {DBT} machine emulator",
journal = j-SIGPLAN,
volume = "48",
number = "7",
pages = "33--40",
month = jul,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2517326.2451521",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Aug 26 13:55:17 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
note = "VEE '13 Conference proceedings.",
abstract = "Superblock compilation techniques such as control flow
graph (CFG) or trace compilation have become a widely
adopted approach to increase the performance of
dynamically compiling virtual machines even further.
While this was shown to be successful for many
conventional virtual machines, it did not result in a
higher performance for Java-based DBT machine emulators
so far. These emulators dynamically translate
application binaries of a target machine into Java
bytecode, which is then eventually compiled into the
native code of the emulating host by the Java Virtual
Machine (JVM). Successful superblock compilation
techniques for this class of emulators must consider
the special requirements that result from the two-stage
translation as well as the characteristics of the JVM,
such as the inability of most Java JIT compilers to
handle large bytecode methods efficiently. In this
paper, we present a superblock compilation approach for
a Java-based DBT machine emulator that generates a
performance increase of up to 90 percent and of 32
percent on average. The key idea of our design is to
provide a large scope over the control flow of target
applications across basic block boundaries for the JVM,
while still keeping small bytecode methods for the
execution units. In addition, we also present two
further optimizations --- interpreter context
elimination and program counter elimination --- which
increase the emulation performance by 16 percent again.
In total, the optimization techniques discussed in this
paper provide an average performance gain of 48 percent
for the surveyed emulator.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Kerschbaumer:2013:IFT,
author = "Christoph Kerschbaumer and Eric Hennigan and Per
Larsen and Stefan Brunthaler and Michael Franz",
title = "Information flow tracking meets just-in-time
compilation",
journal = j-TACO,
volume = "10",
number = "4",
pages = "38:1--38:??",
month = dec,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1145/2541228.2555295",
ISSN = "1544-3566 (print), 1544-3973 (electronic)",
ISSN-L = "1544-3566",
bibdate = "Thu Jan 9 10:42:35 MST 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/taco.bib",
abstract = "Web applications are vulnerable to cross-site
scripting attacks that enable data thefts. Information
flow tracking in web browsers can prevent communication
of sensitive data to unintended recipients and thereby
stop such data thefts. Unfortunately, existing
solutions have focused on incorporating information
flow into browsers' JavaScript interpreters, rather
than just-in-time compilers, rendering the resulting
performance noncompetitive. Few users will switch to a
safer browser if it comes at the cost of significantly
degrading web application performance. We present the
first information flow tracking JavaScript engine that
is based on a true just-in-time compiler, and that
thereby outperforms all previous interpreter-based
information flow tracking JavaScript engines by more
than a factor of two. Our JIT-based engine (i) has the
same coverage as previous interpreter- based solutions,
(ii) requires reasonable implementation effort, and
(iii) introduces new optimizations to achieve
acceptable performance. When evaluated against three
industry-standard JavaScript benchmark suites, there is
still an average slowdown of 73\% over engines that do
not support information flow, but this is now well
within the range that many users will find an
acceptable price for obtaining substantially increased
security.",
acknowledgement = ack-nhfb,
articleno = "38",
fjournal = "ACM Transactions on Architecture and Code Optimization
(TACO)",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J924",
}
@Article{Kienle:2013:BRE,
author = "Holger M. Kienle",
title = "Book Review: {{\booktitle{Effective JavaScript: 68
specific ways to harness the power of JavaScript}} by
David Herman}",
journal = j-SIGSOFT,
volume = "38",
number = "6",
pages = "40--41",
month = nov,
year = "2013",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2532780.2532791",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:31 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Leung:2013:PEJ,
author = "Alan Leung and Ondrej Lhot{\'a}k and Ghulam Lashari",
title = "Parallel execution of {Java} loops on {Graphics
Processing Units}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "5",
pages = "458--480",
day = "1",
month = may,
year = "2013",
CODEN = "SCPGD4",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Wed Mar 27 07:52:16 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642311001444",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Book{Lewis:2013:IAP,
author = "Mark C. Lewis",
title = "Introduction to the art of programming using {Scala}",
publisher = pub-CRC,
address = pub-CRC:adr,
pages = "????",
year = "2013",
ISBN = "1-4398-9666-6 (paperback)",
ISBN-13 = "978-1-4398-9666-2 (paperback)",
LCCN = "QA76.73.S28 L49 2013",
bibdate = "Fri Nov 16 06:30:37 MST 2012",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
z3950.loc.gov:7090/Voyager",
series = "Chapman and Hall/CRC textbooks in computing",
acknowledgement = ack-nhfb,
subject = "Scala (Computer program language); Textbooks; Computer
programming; COMPUTERS / Programming Languages /
General.; MATHEMATICS / General.",
}
@Book{Lindholm:2013:JVMa,
author = "Tim Lindholm and Frank Yellin and Gilad Bracha and
Alex Buckley",
title = "The {Java Virtual Machine} Specification",
publisher = pub-PH,
address = pub-PH:adr,
edition = "Third",
pages = "????",
year = "2013",
ISBN = "0-13-326044-5 (paperback)",
ISBN-13 = "978-0-13-326044-1 (paperback)",
LCCN = "????",
bibdate = "Mon Jan 28 14:57:22 MST 2013",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
series = "The Java series",
acknowledgement = ack-nhfb,
subject = "Java (Computer program language)",
xxaddress = "Harlow",
}
@Book{Lindholm:2013:JVMb,
author = "Tim Lindholm and Frank Yellin and Gilad Bracha and
Alex Buckley",
title = "The {Java Virtual Machine} Specification",
publisher = pub-AW,
address = pub-AW,
edition = "{Java SE 7}",
pages = "xvii + 587 (est.)",
year = "2013",
ISBN = "0-13-326049-6, 0-13-326044-5",
ISBN-13 = "978-0-13-326049-6, 978-0-13-326044-1",
LCCN = "QA76.73.J38 L56 1999",
bibdate = "Thu Dec 4 07:52:39 MST 2014",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/mathcw.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
URL = "http://proquest.tech.safaribooksonline.de/9780133260496",
acknowledgement = ack-nhfb,
remark = "Previous edition: 2nd, 1999.",
subject = "Java (Computer program language); Internet; Virtual
computer systems; Java (Computer program language);
Internet; Virtual computer systems",
}
@Article{Lochbihler:2013:MJM,
author = "Andreas Lochbihler",
title = "Making the {Java} memory model safe",
journal = j-TOPLAS,
volume = "35",
number = "4",
pages = "12:1--12:??",
month = dec,
year = "2013",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/2518191",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Tue Dec 31 14:22:03 MST 2013",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/toplas.bib",
abstract = "This work presents a machine-checked formalisation of
the Java memory model and connects it to an operational
semantics for Java and Java bytecode. For the whole
model, I prove the data race freedom guarantee and type
safety. The model extends previous formalisations by
dynamic memory allocation, thread spawns and joins,
infinite executions, the wait-notify mechanism, and
thread interruption, all of which interact in subtle
ways with the memory model. The formalisation resulted
in numerous clarifications of and fixes to the existing
JMM specification.",
acknowledgement = ack-nhfb,
articleno = "12",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
}
@Book{Long:2013:JCG,
author = "Fred Long and Dhruv Mohindra and Robert Seacord and
Dean Sutherland and David Svoboda",
title = "{Java} coding guidelines: 75 recommendations for
reliable and secure programs",
publisher = pub-AW,
address = pub-AW:adr,
year = "2013",
ISBN = "0-13-343952-6, 0-13-343954-2 (e-book), 0-321-93315-X
(paperback)",
ISBN-13 = "978-0-13-343952-6, 978-0-13-343954-0 (e-book),
978-0-321-93315-7 (paperback)",
LCCN = "QA76.73.J38 L664 2014",
bibdate = "Wed Apr 15 06:20:13 MDT 2020",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
series = "The SEI series in software engineering",
URL = "http://0proquest.safaribooksonline.com/9780133439526",
abstract = "``A must-read for all Java developers. Every developer
has a responsibility to author code that is free of
significant security vulnerabilities. This book
provides realistic guidance to help Java developers
implement desired functionality with security,
reliability, and maintainability goals in mind.'' --
Mary Ann Davidson, Chief Security Officer, Oracle
Corporation Organizations worldwide rely on Java code
to perform mission-critical tasks, and therefore that
code must be reliable, robust, fast, maintainable, and
secure. \booktitle{Java Coding Guidelines} brings
together expert guidelines, recommendations, and code
examples to help you meet these demands. Written by the
same team that brought you \booktitle{The CERT Oracle
Secure Coding Standard for Java}, this guide extends
that previous work's expert security advice to address
many additional quality attributes. You'll find 75
guidelines, each presented consistently and
intuitively. For each guideline, conformance
requirements are specified; for most, noncompliant code
examples and compliant solutions are also offered. The
authors explain when to apply each guideline and
provide references to even more detailed information.
Reflecting pioneering research on Java security, Java
Coding Guidelines offers updated techniques for
protecting against both deliberate attacks and other
unexpected events. You'll find best practices for
improving code reliability and clarity, and a full
chapter exposing common misunderstandings that lead to
suboptimal code. With a Foreword by James A. Gosling,
Father of the Java Programming Language.",
acknowledgement = ack-nhfb,
tableofcontents = "Security \\
Defensive programming \\
Reliability \\
Program understandability \\
Programmer misconceptions",
}
@Article{Loureiro:2013:EDS,
author = "Andr{\'e} Loureiro and Jo{\~a}o Paulo Porto and Guido
Araujo",
title = "Extending decoupled software pipeline to parallelize
{Java} programs",
journal = j-SPE,
volume = "43",
number = "5",
pages = "525--541",
month = may,
year = "2013",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.2120",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Sat Apr 27 13:41:04 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "15 May 2012",
}
@Article{Malhotra:2013:DFT,
author = "Ruchika Malhotra and Divya Tiwari",
title = "Development of a framework for test case
prioritization using genetic algorithm",
journal = j-SIGSOFT,
volume = "38",
number = "3",
pages = "1--6",
month = may,
year = "2013",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2464526.2464536",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:25 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "Software Testing is a time and effort consuming part
of the software development life cycle. Retesting a
software application during the maintenance phase, with
the entire test suite and additional test cases for the
modifications in the software, within budget and time,
is a challenge for software testers. Test Case
Prioritization is used to overcome this problem by
prioritizing the test cases in order to maximize
certain testing objectives like fault detection rate,
statement coverage, etc. In this paper, we propose a
framework for test case prioritization that emphasizes
a new metric, APBC$_m$ (modified Average Percentage of
Block Coverage). This metric evaluates the rate of code
coverage by incorporating knowledge about the
significance of blocks of code in the form of weights.
We have used this metric as fitness evaluation function
in a Genetic Algorithm in order to evaluate the
effectiveness of a test case sequence. We have also
developed a tool that implements the Genetic Algorithm
in the Java language in order to compute and validate
the results. Thereafter, we use the tool for test case
prioritization, and compare and assess the results with
those produced by the tool when APBC (Average
Percentage of Block Coverage) is used as fitness
function.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Marinescu:2013:FSJ,
author = "Maria-Cristina Marinescu and C{\'e}sar S{\'a}nchez",
title = "Fusing statecharts and {Java}",
journal = j-TECS,
volume = "12",
number = "1s",
pages = "45:1--45:??",
month = mar,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1145/2435227.2435241",
ISSN = "1539-9087 (print), 1558-3465 (electronic)",
ISSN-L = "1539-9087",
bibdate = "Tue Mar 19 07:54:21 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/tecs.bib",
abstract = "This article presents FUSE, an approach for modeling
and implementing embedded software components which
starts from a main-stream programming language and
brings some of the key concepts of Statecharts as
first-class elements within this language. Our approach
provides a unified programming environment which not
only preserves some of the advantages of Statecharts'
formal foundation but also directly supports features
of object-orientation and strong typing. By specifying
Statecharts directly in FUSE we eliminate the
out-of-synch between the model and the generated code
and we allow the tuning and debugging to be done within
the same programming model. This article describes the
main language constructs of FUSE and presents its
semantics by translation into the Java programming
language. We conclude by discussing extensions to the
base language which enable the efficient static
checking of program properties.",
acknowledgement = ack-nhfb,
articleno = "45",
fjournal = "ACM Transactions on Embedded Computing Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?&idx=J840",
}
@Article{Miller:2013:IPG,
author = "Heather Miller and Philipp Haller and Eugene Burmako
and Martin Odersky",
title = "Instant pickles: generating object-oriented pickler
combinators for fast and extensible serialization",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "183--202",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509547",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "As more applications migrate to the cloud, and as
``big data'' edges into even more production
environments, the performance and simplicity of
exchanging data between compute nodes/devices is
increasing in importance. An issue central to
distributed programming, yet often under-considered, is
serialization or pickling, i.e., persisting runtime
objects by converting them into a binary or text
representation. Pickler combinators are a popular
approach from functional programming; their
composability alleviates some of the tedium of writing
pickling code by hand, but they don't translate well to
object-oriented programming due to qualities like open
class hierarchies and subtyping polymorphism.
Furthermore, both functional pickler combinators and
popular, Java-based serialization frameworks tend to be
tied to a specific pickle format, leaving programmers
with no choice of how their data is persisted. In this
paper, we present object-oriented pickler combinators
and a framework for generating them at compile-time,
called scala/pickling, designed to be the default
serialization mechanism of the Scala programming
language. The static generation of OO picklers enables
significant performance improvements, outperforming
Java and Kryo in most of our benchmarks. In addition to
high performance and the need for little to no
boilerplate, our framework is extensible: using the
type class pattern, users can provide both (1) custom,
easily interchangeable pickle formats and (2) custom
picklers, to override the default behavior of the
pickling framework. In benchmarks, we compare
scala/pickling with other popular industrial
frameworks, and present results on time, memory usage,
and size when pickling/unpickling a number of data
types used in real-world, large-scale distributed
applications and frameworks.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Miller:2013:TSG,
author = "Mark Miller",
title = "A tested semantics for getters, setters, and eval in
{JavaScript}",
journal = j-SIGPLAN,
volume = "48",
number = "2",
pages = "1--16",
month = feb,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2480360.2384579",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Jul 1 17:15:12 MDT 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
abstract = "We present S5, a semantics for the strict mode of the
ECMAScript 5.1 (JavaScript) programming language. S5
shrinks the large source language into a manageable
core through an implemented transformation. The
resulting specification has been tested against
real-world conformance suites for the language. This
paper focuses on two aspects of S5: accessors (getters
and setters) and eval. Since these features are complex
and subtle in JavaScript, they warrant special study.
Variations on both features are found in several other
programming languages, so their study is likely to have
broad applicability.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
remark = "DLS '12 conference proceedings.",
}
@Article{Misra:2013:JSC,
author = "Janardan Misra and Annervaz KM and Vikrant Kaulgud and
Shubhashis Sengupta and Gary Titus",
title = "{Java} source-code clustering: Unifying syntactic and
semantic features",
journal = j-SIGSOFT,
volume = "38",
number = "1",
pages = "41--43",
month = jan,
year = "2013",
CODEN = "SFENDP",
DOI = "https://doi.org/10.1145/2413038.2382766",
ISSN = "0163-5948 (print), 1943-5843 (electronic)",
ISSN-L = "0163-5948",
bibdate = "Wed Aug 1 17:16:22 MDT 2018",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib",
abstract = "This is a report from an international workshop on
``Social and Algorithmic Issues in Business Support''
(SAIBS), which was organized in conjunction with the
16th ADBIS Conference in Poznan, Poland, on September
17, 2012. The main focus of this workshop was to
provide a venue for the discussion whether social
stands in opposition to algorithmic or systematic. We
analyzed social contribution to business processes
taking into account possible benefits and risk factors.
Questions raised in collected research and discussion
related to how far business could relay on social input
and what were the limits or what were the areas where
introducing crowdsourced components might increase
overall risk value to unacceptable level? Algorithmic
approach to observe and collect social behaviour was
discussed in the context of internet auctions
participants and car drivers equipped in mobile
application for instant route planning and collecting
feedback car-tracking data. Having in mind Andrew
Keen's critique of social contribution in Web
2.0-related phenomena we looked for the Wisdom of
Crowds [1]. Collected conclusions and further
dissemination of research results should lead to an
improvement in utilizing social impact on software
development and business processes.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGSOFT Software Engineering Notes",
journal-URL = "https://dl.acm.org/citation.cfm?id=J728",
}
@Article{Nikolic:2013:RAP,
author = "Durica Nikoli{\'c} and Fausto Spoto",
title = "Reachability analysis of program variables",
journal = j-TOPLAS,
volume = "35",
number = "4",
pages = "14:1--14:??",
month = dec,
year = "2013",
CODEN = "ATPSDT",
DOI = "https://doi.org/10.1145/2529990",
ISSN = "0164-0925 (print), 1558-4593 (electronic)",
ISSN-L = "0164-0925",
bibdate = "Tue Dec 31 14:22:03 MST 2013",
bibsource = "http://www.acm.org/pubs/contents/journals/toplas/;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/toplas.bib",
abstract = "Reachability from a program variable $v$ to a program
variable $w$ states that from $v$, it is possible to
follow a path of memory locations that leads to the
object bound to $w$. We present a new abstract domain
for the static analysis of possible reachability
between program variables or, equivalently, definite
unreachability between them. This information is
important for improving the precision of other static
analyses, such as side-effects, field initialization,
cyclicity and path-length analysis, as well as more
complex analyses built upon them, such as nullness and
termination analysis. We define and prove correct our
reachability analysis for Java bytecode, defined as a
constraint-based analysis, where the constraint is a
graph whose nodes are the program points and whose arcs
propagate reachability information in accordance to the
abstract semantics of each bytecode instruction. For
each program point $p$, our reachability analysis
produces an overapproximation of the ordered pairs of
variables $ \langle v, w \rangle $ such that $v$ might
reach $w$ at $p$. Seen the other way around, if a pair
$ \langle v, w \rangle $ is not present in the
overapproximation at $p$, then $v$ definitely does not
reach $w$ at $p$. We have implemented the analysis
inside the Julia static analyzer. Our experiments of
analysis of nontrivial Java and Android programs show
the improvement of precision due to the presence of
reachability information. Moreover, reachability
analysis actually reduces the overall cost of nullness
and termination analysis.",
acknowledgement = ack-nhfb,
articleno = "14",
fjournal = "ACM Transactions on Programming Languages and
Systems",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J783",
}
@Article{Noll:2013:OFD,
author = "Albert Noll and Thomas Gross",
title = "Online feedback-directed optimizations for parallel
{Java} code",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "713--728",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509518",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "The performance of parallel code significantly depends
on the parallel task granularity (PTG). If the PTG is
too coarse, performance suffers due to load imbalance;
if the PTG is too fine, performance suffers from the
overhead that is induced by parallel task creation and
scheduling. This paper presents a software platform
that automatically determines the PTG at run-time.
Automatic PTG selection is enabled by concurrent calls,
which are special source language constructs that
provide a late decision (at run-time) of whether
concurrent calls are executed sequentially or
concurrently (as a parallel task). Furthermore, the
execution semantics of concurrent calls permits the
runtime system to merge two (or more) concurrent calls
thereby coarsening the PTG. We present an integration
of concurrent calls into the Java programming language,
the Java Memory Model, and show how the Java Virtual
Machine can adapt the PTG based on dynamic profiling.
The performance evaluation shows that our runtime
system performs competitively to Java programs for
which the PTG is tuned manually. Compared to an
unfortunate choice of the PTG, this approach performs
up to 3x faster than standard Java code.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Nuzman:2013:JTC,
author = "Dorit Nuzman and Revital Eres and Sergei Dyshel and
Marcel Zalmanovici and Jose Castanos",
title = "{JIT} technology with {C\slash C++}: Feedback-directed
dynamic recompilation for statically compiled
languages",
journal = j-TACO,
volume = "10",
number = "4",
pages = "59:1--59:??",
month = dec,
year = "2013",
CODEN = "????",
DOI = "https://doi.org/10.1145/2541228.2555315",
ISSN = "1544-3566 (print), 1544-3973 (electronic)",
ISSN-L = "1544-3566",
bibdate = "Thu Jan 9 10:42:35 MST 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/taco.bib",
abstract = "The growing gap between the advanced capabilities of
static compilers as reflected in benchmarking results
and the actual performance that users experience in
real-life scenarios makes client-side dynamic
optimization technologies imperative to the domain of
static languages. Dynamic optimization of software
distributed in the form of a platform-agnostic
Intermediate-Representation (IR) has been very
successful in the domain of managed languages, greatly
improving upon interpreted code, especially when online
profiling is used. However, can such feedback-directed
IR-based dynamic code generation be viable in the
domain of statically compiled, rather than interpreted,
languages? We show that fat binaries, which combine the
IR together with the statically compiled executable,
can provide a practical solution for software vendors,
allowing their software to be dynamically optimized
without the limitation of binary-level approaches,
which lack the high-level IR of the program, and
without the warm-up costs associated with the IR-only
software distribution approach. We describe and
evaluate the fat-binary-based runtime compilation
approach using SPECint2006, demonstrating that the
overheads it incurs are low enough to be successfully
surmounted by dynamic optimization. Building on Java
JIT technologies, our results already improve upon
common real-world usage scenarios, including very small
workloads.",
acknowledgement = ack-nhfb,
articleno = "59",
fjournal = "ACM Transactions on Architecture and Code Optimization
(TACO)",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J924",
}
@Article{Ogawa:2013:RJA,
author = "Yuki Ogawa and Masahiro Iida and Motoki Amagasaki and
Morihiro Kuga and Toshinori Sueyoshi",
title = "A reconfigurable {Java} accelerator with software
compatibility for embedded systems",
journal = j-COMP-ARCH-NEWS,
volume = "41",
number = "5",
pages = "71--76",
month = dec,
year = "2013",
CODEN = "CANED2",
DOI = "https://doi.org/10.1145/2641361.2641373",
ISSN = "0163-5964 (print), 1943-5851 (electronic)",
ISSN-L = "0163-5964",
bibdate = "Mon Aug 18 17:12:43 MDT 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigarch.bib",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGARCH Computer Architecture News",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J89",
}
@Article{Ohkawa:2013:RHO,
author = "Takeshi Ohkawa and Daichi Uetake and Takashi Yokota
and Kanemitsu Ootsu and Takanobu Baba",
title = "Reconfigurable and hardwired {ORB} engine on {FPGA} by
{Java-to-HDL} synthesizer for realtime application",
journal = j-COMP-ARCH-NEWS,
volume = "41",
number = "5",
pages = "77--82",
month = dec,
year = "2013",
CODEN = "CANED2",
DOI = "https://doi.org/10.1145/2641361.2641374",
ISSN = "0163-5964 (print), 1943-5851 (electronic)",
ISSN-L = "0163-5964",
bibdate = "Mon Aug 18 17:12:43 MDT 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigarch.bib",
abstract = "A platform for networked FPGA system design, which is
named ``ORB Engine'', is proposed to add more
controllability and design productivity on FPGA-based
systems composed of software and hardwired IPs. A
developer can define an object-oriented interface for
the circuit IP in FPGA, and implement the control
sequence part using Java. The circuit IP in FPGA can be
handled through object-oriented interface from variety
of programming languages like C++, Java, Python, Ruby
and so on. Application specific and high-efficiency
circuit for ORB (Object Request Broker) protocol
processing is synthesized from easy-handling Java code
using JavaRock Java-to-HDL synthesizer within the
de-facto standard CORBA (Common Object Request Broker
Architecture). The measurement result shows a very low
latency as low as 200us of UDP/IP packet in/out and
exhibits a fluctuation free delay performance, which is
desirable for real-time applications.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGARCH Computer Architecture News",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J89",
}
@Article{Parnin:2013:AUJ,
author = "Chris Parnin and Christian Bird and Emerson
Murphy-Hill",
title = "Adoption and use of {Java} generics",
journal = j-EMPIR-SOFTWARE-ENG,
volume = "18",
number = "6",
pages = "1047--1089",
month = dec,
year = "2013",
CODEN = "ESENFW",
DOI = "https://doi.org/10.1007/s10664-012-9236-6",
ISSN = "1382-3256 (print), 1573-7616 (electronic)",
ISSN-L = "1382-3256",
bibdate = "Fri Dec 2 09:14:30 MST 2016",
bibsource = "http://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://link.springer.com/accesspage/article/10.1007/s10664-012-9236-6",
acknowledgement = ack-nhfb,
fjournal = "Empirical Software Engineering",
journal-URL = "http://link.springer.com/journal/10664",
}
@Article{Plumbridge:2013:BPR,
author = "Gary Plumbridge and Jack Whitham and Neil Audsley",
title = "{Blueshell}: a platform for rapid prototyping of
multiprocessor {NoCs} and accelerators",
journal = j-COMP-ARCH-NEWS,
volume = "41",
number = "5",
pages = "107--117",
month = dec,
year = "2013",
CODEN = "CANED2",
DOI = "https://doi.org/10.1145/2641361.2641379",
ISSN = "0163-5964 (print), 1943-5851 (electronic)",
ISSN-L = "0163-5964",
bibdate = "Mon Aug 18 17:12:43 MDT 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigarch.bib",
abstract = "The rapid increase in FPGA logic capacity has enabled
the prototyping of multiprocessor Network-on-Chip (NoC)
architectures. However, the design space exploration of
these complex architectures is highly time consuming
with traditional methodologies for FPGA design. Our
paper addresses the challenges of multiprocessor
network design with the Blueshell framework for
generating multiprocessor networks on chip (NoC) and a
coupled Java software stack, Network-Chi. With
Blueshell hardware is constructed from high-level
components including processors and routers using
concise Bluespec System Verilog. The Network-Chi
software framework is also presented to enable
programming the on-chip processors in a familiar Java
style and without exposing the low-level systems
programming to the application designer. We demonstrate
that Blueshell systems with as many as 20 processors
can be implemented on a modestly sized FPGA.
Performance figures for a selection of distributed
applications are also provided.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGARCH Computer Architecture News",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J89",
}
@Article{Puffitsch:2013:SIP,
author = "Wolfgang Puffitsch",
title = "Special Issue Papers: Design and analysis of a hard
real-time garbage collector for a {Java} chip
multi-processor",
journal = j-CCPE,
volume = "25",
number = "16",
pages = "2269--2289",
month = nov,
year = "2013",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.2921",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Tue Dec 3 10:37:44 MST 2013",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "17 Sep 2012",
}
@Article{Pukall:2013:JFR,
author = "Mario Pukall and Christian K{\"a}stner and Walter
Cazzola and Sebastian G{\"o}tz and Alexander Grebhahn
and Reimar Schr{\"o}ter and Gunter Saake",
title = "{JavAdaptor} ---Flexible runtime updates of {Java}
applications",
journal = j-SPE,
volume = "43",
number = "2",
pages = "153--185",
month = feb,
year = "2013",
CODEN = "SPEXBL",
DOI = "https://doi.org/10.1002/spe.2107",
ISSN = "0038-0644 (print), 1097-024X (electronic)",
ISSN-L = "0038-0644",
bibdate = "Thu Mar 7 08:19:39 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/spe.bib;
http://www3.interscience.wiley.com/journalfinder.html",
acknowledgement = ack-nhfb,
fjournal = "Software---Practice and Experience",
journal-URL = "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
onlinedate = "17 Feb 2012",
}
@Article{Ramos:2013:DSJ,
author = "Sabela Ramos and Guillermo L. Taboada and Roberto R.
Exp{\'o}sito and Juan Touri{\~n}o and Ram{\'o}n
Doallo",
title = "Design of Scalable {Java} Communication Middleware for
Multi-Core Systems",
journal = j-COMP-J,
volume = "56",
number = "2",
pages = "214--228",
month = feb,
year = "2013",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/bxs122",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Sat Feb 2 06:33:23 MST 2013",
bibsource = "http://comjnl.oxfordjournals.org/content/56/2.toc;
http://www.math.utah.edu/pub/tex/bib/compj2010.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
URL = "http://comjnl.oxfordjournals.org/content/56/2/214.full.pdf+html",
acknowledgement = ack-nhfb,
fjournal = "Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
onlinedate = "September 5, 2012",
}
@Article{Ravn:2013:EIS,
author = "Anders P. Ravn and M. Teresa Higuera-Toledano",
title = "Editorials: Introduction to the special issue on
{Java} technologies for real-time and embedded systems:
{JTRES2011}",
journal = j-CCPE,
volume = "25",
number = "16",
pages = "2225--2226",
month = nov,
year = "2013",
CODEN = "CCPEBO",
DOI = "https://doi.org/10.1002/cpe.3023",
ISSN = "1532-0626 (print), 1532-0634 (electronic)",
ISSN-L = "1532-0626",
bibdate = "Tue Dec 3 10:37:44 MST 2013",
bibsource = "http://www.interscience.wiley.com/jpages/1532-0626;
http://www.math.utah.edu/pub/tex/bib/ccpe.bib;
http://www.math.utah.edu/pub/tex/bib/java2010.bib",
acknowledgement = ack-nhfb,
fjournal = "Concurrency and Computation: Practice and Experience",
journal-URL = "http://www.interscience.wiley.com/jpages/1532-0626",
onlinedate = "29 Apr 2013",
}
@Book{Rayns:2013:CJS,
author = "Chris Rayns and others",
title = "{CICS} and the {JVM} server developing and deploying
{Java} applications",
publisher = "IBM Corporation, International Technical Support
Organization",
address = "Poughkeepsie, NY, USA",
pages = "????",
year = "2013",
ISBN = "0-7384-3833-2",
ISBN-13 = "978-0-7384-3833-7",
LCCN = "????",
bibdate = "Thu Dec 4 08:14:09 MST 2014",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
series = "IBM redbooks",
URL = "http://proquest.tech.safaribooksonline.de/0738438332",
acknowledgement = ack-nhfb,
subject = "CICS (Syst{\`e}me informatique); Java (Langage de
programmation); Logiciels d'application;
D{\'e}veloppement; Syst{\`e}mes virtuels
(Informatique); CICS (Computer system); Java (Computer
program language); Application software; Development;
Virtual computer systems; Development.; CICS (Computer
system); Java (Computer program language); Virtual
computer systems.",
}
@Article{Reynolds:2013:MJB,
author = "Mark C. Reynolds",
title = "Modeling the {Java Bytecode Verifier}",
journal = j-SCI-COMPUT-PROGRAM,
volume = "78",
number = "3",
pages = "327--342",
day = "1",
month = mar,
year = "2013",
CODEN = "SCPGD4",
DOI = "https://doi.org/10.1016/j.scico.2011.03.008",
ISSN = "0167-6423 (print), 1872-7964 (electronic)",
ISSN-L = "0167-6423",
bibdate = "Sat Jan 5 18:54:31 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
http://www.sciencedirect.com/science/journal/01676423",
URL = "http://www.sciencedirect.com/science/article/pii/S0167642311000943",
acknowledgement = ack-nhfb,
fjournal = "Science of Computer Programming",
journal-URL = "http://www.sciencedirect.com/science/journal/01676423",
}
@Article{Ricci:2013:ETP,
author = "Nathan P. Ricci and Samuel Z. Guyer and J. Eliot B.
Moss",
title = "{Elephant Tracks}: portable production of complete and
precise {GC} traces",
journal = j-SIGPLAN,
volume = "48",
number = "11",
pages = "109--118",
month = nov,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2555670.2466484",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 08:04:34 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "ISMM '13 conference proceedings.",
abstract = "We present Elephant Tracks (ET), a dynamic program
analysis tool for Java that produces detailed traces of
garbage collection-related events, including object
allocations, object deaths, and pointer updates. Like
prior work, our tracing tool is based on the Merlin
algorithm [6,7], but offers several substantial new
capabilities. First, it is much more precise than
previous tools: it traces method entries and exits and
measures time in terms of them, allowing it to place
events precisely in the context of the program
structure. Second, it is implemented using a
combination of JVM Tool Interface (JVMTI)[13] callbacks
and bytecode rewriting, and works with any standard
JVM. Finally, it produces complete traces, including
weak references, events from the Java Native Interface
and sun.misc.Unsafe, and VM start up objects. In this
paper we also explore the general design space of
tracing tools, and carefully define the execution model
that the traces represent.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Richards:2013:FAC,
author = "Gregor Richards and Christian Hammer and Francesco
Zappa Nardelli and Suresh Jagannathan and Jan Vitek",
title = "Flexible access control for {JavaScript}",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "305--322",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509542",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Providing security guarantees for systems built out of
untrusted components requires the ability to define and
enforce access control policies over untrusted code. In
Web 2.0 applications, JavaScript code from different
origins is often combined on a single page, leading to
well-known vulnerabilities. We present a security
infrastructure which allows users and content providers
to specify access control policies over subsets of a
JavaScript program by leveraging the concept of
delimited histories with revocation. We implement our
proposal in WebKit and evaluate it with three policies
on 50 widely used websites with no changes to their
JavaScript code and report performance overheads and
violations.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Salkeld:2013:IDO,
author = "Robin Salkeld and Gregor Kiczales",
title = "Interacting with dead objects",
journal = j-SIGPLAN,
volume = "48",
number = "10",
pages = "203--216",
month = oct,
year = "2013",
CODEN = "SINODQ",
DOI = "https://doi.org/10.1145/2544173.2509543",
ISSN = "0362-1340 (print), 1523-2867 (print), 1558-1160
(electronic)",
ISSN-L = "0362-1340",
bibdate = "Mon Dec 9 09:19:33 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
note = "OOPSLA '13 conference proceedings.",
abstract = "Debugging and analyzing a snapshot of a crashed
program's memory is far more difficult than working
with a live program, because debuggers can no longer
execute code to help make sense of the program state.
We present an architecture that supports the restricted
execution of ordinary code starting from the snapshot,
as if the dead objects within it had been restored, but
without access to their original external environment.
We demonstrate the feasibility of this approach via an
implementation for Java that does not require a custom
virtual machine, show that it performs competitively
with live execution, and use it to diagnose an
unresolved memory leak in a mature mainstream
application.",
acknowledgement = ack-nhfb,
fjournal = "ACM SIGPLAN Notices",
journal-URL = "http://portal.acm.org/browse_dl.cfm?idx=J706",
}
@Article{Santos:2013:DDS,
author = "Ivo Santos and Marcel Tilly and Badrish Chandramouli
and Jonathan Goldstein",
title = "{DiAl}: distributed streaming analytics anywhere,
anytime",
journal = j-PROC-VLDB-ENDOWMENT,
volume = "6",
number = "12",
pages = "1386--1389",
month = aug,
year = "2013",
CODEN = "????",
ISSN = "2150-8097",
bibdate = "Fri Dec 13 05:57:00 MST 2013",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/vldbe.bib",
abstract = "Connected devices are expected to grow to 50 billion
in 2020. Through our industrial partners and their use
cases, we validated the importance of inflight data
processing to produce results with low latency, in
particular local and global data analytics
capabilities. In order to cope with the scalability
challenges posed by distributed streaming analytics
scenarios, we propose two new technologies: (1)
JStreams, a low footprint and efficient JavaScript
complex event processing engine supporting local
analytics on heterogeneous devices and (2) DiAlM, a
distributed analytics management service that leverages
cloud-edge evolving topologies. In the demonstration,
based on a real manufacturing use case, we walk through
a situation where operators supervise manufacturing
equipment through global analytics, and drill down into
alarm cases on the factory floor by locally inspecting
the data generated by the manufacturing equipment.",
acknowledgement = ack-nhfb,
fjournal = "Proceedings of the VLDB Endowment",
}
@MastersThesis{Schmeisser:2013:MOE,
author = "Michael Schmei{\ss}er",
title = "{Metriken und optimale Einsatzszenarien f{\"u}r
Garbage Collectoren der Java HotSpot Virtual Machine}.
({German}) [{Metrics} and best use scenarios for
garbage collectors of the {Java HotSpot Virtual
Machine}]",
type = "Masterarbeit",
school = "Hochschule f{\"u}r Technik, Wirtschaft und Kultur",
address = "Leipzig, Germany",
pages = "iii + 103",
year = "2013",
bibdate = "Thu Dec 04 08:18:41 2014",
bibsource = "http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
acknowledgement = ack-nhfb,
language = "German",
}
@Book{Seth:2013:UJV,
author = "Sachin Seth",
title = "Understanding {Java Virtual Machine}",
publisher = "Alpha Science International",
address = "Oxford, UK",
pages = "318",
year = "2013",
ISBN = "1-84265-815-8",
ISBN-13 = "978-1-84265-815-4",
LCCN = "QA76.73.J38 S437 2013",
bibdate = "Thu Dec 4 13:23:14 MST 2014",
bibsource = "fsz3950.oclc.org:210/WorldCat;
http://www.math.utah.edu/pub/tex/bib/java2010.bib;
http://www.math.utah.edu/pub/tex/bib/mathcw.bib",
acknowledgement = ack-nhfb,
shorttableofcontents = "Preface \\
Platform Dependency and Virtualization \\
Class File Format \\
Designing Platform Independent Language \\
JVM Internal Data Structure \\
JVM Instruction Set \\
General Algorithm of Java Virtual Machines \\
Understanding Java Native Interface \\
Implementing JNI Functions \\
Multithreading in Java \\
Garbage Collection",
subject = "Java virtual machine; Java virtual machine.; Virtual
computer systems; Virtual computer systems.",
tableofcontents = "1. Platform Dependency and Virtualization \\
1.1. Introduction \\
1.2. How Programs Are Platform Dependent \\
1.2.1. Windows Segmented Executable File Format \\
1.2.2. {\tt a.out} (File Format) \\
1.2.3. Executable and Linking Format (ELF) \\
1.3. How Platform Independence is Achieved \\
1.3.1. Hardware Virtual Machines \\
1.3.2. Application Virtual Machines \\
1.3.3. Machine Aggregation \\
1.4. Java Virtual Machine \\
1.5. Why Byte Codes \\
2. Class File Format \\
2.1. Introduction \\
2.2. Signature or Magic Byte \\
2.3. Major and Minor Version Number \\
2.4. Constant Pool Count \\
2.5. Constant Pool Table \\
2.5.1. Constant\_Utf8 \\
2.5.2. Constant\_Integer and Constant\_Float \\
2.5.3. Constant\_Long and Constant\_Double \\
2.5.4. Constant\_Class \\
2.5.5. Constant\_String \\
2.5.6. Constant\_Fieldref, Constant\_Methodref,
Constant\_InterfaceMethodref \\
2.5.7. Constant\_NameAndType \\
2.6. Access Flags \\
2.7. This\_class \\
2.8. super\_class \\
2.9. Interface\_count \\
2.10. Interfaces table \\
2.11. Fields Count \\
2.12. Field table \\
2.12.1. Access\_Flags \\
2.12.2. Name\_Index \\
2.12.3. Descriptor\_Index \\
2.12.4. Attributes\_Count \\
2.12.5. Attributes\_Table \\
2.13. Methods count \\
2.14. Method table \\
2.15