APIs, Bibliotecas & Toolkits Java

Java SE 8.0
(figura reproduzida do sítio web da Java Platform Standard Edition 8 Documentation; veja quanto cresceu em relação ao Java SE 5.0)

Log - Registro/Histórico

Programação Concorrente

Programação Tempo-Real (Real-Time)

  • JSR 282: Real-time Specification for Java (RTSJ) version 1.1
    Evolution of JSR 1: Real-time Specification for Java (1.0).
  • RTSJ.org - Real-Time for Java Expert Group
    RTSJ java.net project.
    The Real-Time Specification for Java (PDF), by Greg Bollella et al., Addison-Wesley, 2000.
  • Java Se Real-Time
    The Sun Java Real-Time System 2.0 (Java RTS) is a substantially enhanced release of Sun's first conformant commercial implementation of the Real-Time Specification for Java (JSR-001). Implementations of the RTSJ make standard Java technology more deterministic and enable it to meet rigorous timing requirements for mission-critical real-time applications. Java RTS 2.0 is available for evaluation licensing.
  • Javolution
    Javolution: biblioteca para desenvolvimento de sistemas tempo-real (realtime) e embarcados (embedded). Javolution provê um conjunto de classes de alto desempenho e com comportamento altamente tempo-determinístico, para conformidade com ambiente tempo-real, coleções e estruturas fundamentais, manipulação de texto, E/S e XML. Traz também as classes Struct e Union para maior correspondência com aplicações C/C++. Introduz Contextos específicos (para logging, performance, concorrência, persistência, segurança etc.) para separação de aspectos de programação.
    Há distribuições da biblioteca Javolution para as plataformas Java ME CLDC 1.0+ e CLDC 1.1+, Java SE 1.4, 5 e 6, e gcj (GNU Compiler for Java). Javolution é software de código aberto distribuído sob licença BSD.
  • aicas - Realtime Java Technology
    Realtime Java Virtual Machine - JamaicaVM, object oriented software development environment, and analysis tools for safety critical systems.

Tempo & Data

  • JSR 310: Date and Time API
    Esta JSR em andamento proverá uma API nova e melhorada para data e tempo em Java. Submetida por Stephen Colebourne, criador da biblioteca Joda-Time.
    The main goal of JST-310 is to build upon the lessons learned from the first two APIs in Java SE (Date and Calendar) and on experience gained from the Joda-Time project, to provide a more advanced and comprehensive model for date and time manipulation.
    The new API will be targeted at all applications needing a data model for dates and times. This model will go beyond classes to replace Date and Calendar, to include representations of date without time, time without date, periods, durations, and intervals.
    Announcing JSR 310 - Date and Time API, Stephen Colebourne's Weblog, 30/jan/2007.
  • Joda Time
    Por Stephen Colebourne. Joda-Time é um projeto código-aberto para prover uma API de qualidade para datas e tempo. Joda-Time is the de facto standard date and time library for Java prior to Java SE 8. Interfaces e implementações incluem: DateTime (substituto imutável para JDK Calendar) e DateMidnight; LocalDate, LocalTime e LocalDateTime (sem time zone); Chronology e DateTimeZone (ISO 8601 e outras cronologias, calendários e fusos horários); Interval, Period e Duration (intervalos e períodos de tempo); mais formatação e varredura (parsing).
    Projeto SourceForge: joda-time.
  • TimeAndMoney Java Code Library
    This is a project to develop code for manipulating basic concepts in recurring domains such as time and money. Use this open source Java code library to make key low-level domain logic more expressive, more maintainable, and less error-prone.
  • CalendarDate
    Simple, small and effective java date implementation.
  • ISO 8601
    ISO 8601 - padrão internacional para representação de datas e tempo. From Wikipedia, the free encyclopedia.
    ISO 8601:2004(E) from ISO (ZIP-PDF, 228KB), Third edition 2004-12-01. ISO8601 Yahoo Groups (files).
    A summary of the international standard date and time notation, by Markus Kuhn.
    ISO 8601 - Links, by Hans-Jochen Vogel. dmoz Open Directory: ISO 8601.
    International Date Format Campaign (IDFC).

Internacionalização

Scanners, Parsers, Analisadores Sintáticos e Léxicos

Ferramentas Java para criação desde interpretadores de expressões, macros e linguagens de domínio específico (DSL) até compiladores inteiros.

  • ANTLR
    ANTLR, ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages. ANTLR provides excellent support for tree construction, tree walking, translation, error recovery, and error reporting.
    Getting started with ANTLR. ANTLR Documentation, ANTLR API (Java, C, Python C#, Objective-C), ANTLR FAQ e Artigos.
    ANTLRWorks: The ANTLR GUI Development Environment.
    ANTLR Parser Generator pages por Ian Kaplan.
  • JavaCC
    JavaCC is a parser/scanner generator for java. JavaCC: Documentation Index - a sintaxe do arquivo de gramática JavaCC (.jj).
    The JavaCC FAQ, mantido por Theo Norvell na Memorial University of Newfoundland.
  • JFlex - The Fast Scanner Generator for Java
    JFlex is a lexical analyzer generator (also known as scanner generator) for Java, written in Java. It is also a rewrite of the very useful tool JLex developed by Elliot Berk at Princeton University. JFlex is designed to work together with the LALR parser generator CUP by Scott Hudson, and the Java modification of Berkeley Yacc BYacc/J by Bob Jamison. It can also be used together with other parser generators like ANTLR or as a standalone tool.
  • JLex
    JLex is a lexical analyzer generator, written for Java, in Java. JLex was developed by Elliot Berk at Princeton University. It is now maintained by C. Scott Ananian.
    Veja também FLEX Compiler Infrastructure, Program Analysis and Compilation Group at MIT.
  • CUP
    LALR Parser Generator in Java. By Scott Hudson, Frank Flannery, C. Scott Ananian. CUP is now maintained and improved at the Technical University of Munich.
  • BYACC/J
    BYACC/J is a Java extension of the Berkeley v 1.8 YACC-compatible parser generator.
  • JEP - Java Math Expression Parser
    JEP is a Java library for parsing and evaluating mathematical expressions. With this package you can allow your users to enter an arbitrary formula as a string, and instantly evaluate it. JEP supports user defined variables, constants, and functions. A number of common mathematical functions and constants are included. Por Singular Systems.
  • Java Expressions Library (JEL)
    JEL is the library for evaluating a simple single line expressions in Java.
  • Veja também: Ferramentas: Scanners, Parsers e Analisadores Sintáticos e Léxicos

Programação Científica

  • JScience
    Java tools and libraries for the advancement of sciences.
    Project vision: To provide the most comprehensive Java library for the scientific community. To create synergy between all sciences (e.g. math, physics, sociology, biology, astronomy, economics, etc.) by integrating them into a single architecture. To provide the best on-line services (webstart) for scientific calculations and visualizations.
  • LinAlg API
    A API LinAlg provê classes e métdos para álgebra linear, isto é, para Vetores (2D e 3D), Matrizes, Números Complexos. Lançada sob licenças GPL v2 e CDDL. Por Alexander Schunk (blog).
  • Uncommons Maths
    Random number generators and other mathematical utilities. Por Projeto uncommons.org.
    A Java Programmer's Guide to Random Numbers - Parte 1: Beyond java.util.Random; Parte 2: Not just coins and dice, por Daniel Dyer, maio 2008.
  • Colt
    Colt Project provides a set of Open Source Libraries for High Performance Scientific and Technical Computing in Java.
  • JAMA: A Java Matrix Package
    JAMA is a basic linear algebra package for Java. This software is a cooperative product of The MathWorks and the National Institute of Standards and Technology (NIST) which has been released to the public domain.
  • Java for Scientific Computing

Java ME - Móvel & Sem-fio

Outras