awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
apache avatar

apache/groovy

0
View on GitHub↗
5,446 estrellas·1,912 forks·Java·Apache-2.0·8 vistasgroovy-lang.org↗

Groovy

Groovy es un lenguaje de programación para la JVM y un framework de metaprogramación que proporciona un entorno compatible con Java para construir aplicaciones. Funciona como un lenguaje de scripting dinámico y una herramienta para crear lenguajes específicos de dominio (DSL), permitiendo la ejecución de scripts personalizados y la creación de mini-lenguajes especializados con una sintaxis concisa.

El proyecto se distingue por su capacidad para modificar el comportamiento del programa y las definiciones de clases mediante metaprogramación tanto en tiempo de compilación como en tiempo de ejecución. Utiliza un modelo de tipado híbrido que combina la resolución dinámica de métodos con un chequeo de tipos estático opcional para equilibrar la flexibilidad y el rendimiento de ejecución.

El lenguaje cubre una amplia gama de capacidades, incluyendo patrones de programación funcional, transformaciones de árboles de sintaxis abstracta (AST) y la integración directa de bibliotecas de Java. También incluye utilidades de seguridad para prevenir inyecciones SQL, asegurar el parsing de XML y garantizar un parsing seguro de datos estructurados.

El sistema traduce la sintaxis de alto nivel a bytecode de la JVM para su ejecución en cualquier Java Virtual Machine compatible.

Features

  • JVM Application Development - Enables the creation of software targeting the Java Virtual Machine using concise syntax and hybrid typing.
  • Programming Languages - Provides a high-level programming language targeting the JVM that supports both dynamic and static typing.
  • Code Prototyping - Executes code snippets and automates tasks quickly without extensive application boilerplate or project structures.
  • Class Extensions - Allows injecting new instance or static methods into existing types using external descriptor files and extension modules.
  • Runtime Meta-Class Extensions - Injects new methods into existing classes at runtime by modifying underlying class definitions via meta-classes.
  • Dynamic Method Dispatch - Resolves method calls at runtime using a call site mechanism to support flexible typing and late binding.
  • Java Interoperability - Enables direct integration and interoperability with Java libraries and classes within the same virtual machine.
  • Metaprogramming - Modifies program logic and class definitions at runtime or compile-time to automate patterns and extend object capabilities.
  • Metaprogramming Frameworks - Implements a framework for modifying program behavior and class definitions at both compile-time and runtime.
  • Domain Specific Languages - Provides tools for creating specialized mini-languages with concise syntax to describe business logic or configurations.
  • DSL Implementation Toolkits - Offers a framework for implementing the lexing, parsing, and generation phases of domain-specific languages.
  • Hybrid Typing Systems - Combines dynamic method resolution with optional static type checking within a single language runtime.
  • Scripting Languages - Provides a flexible language for executing custom scripts and automating tasks without application boilerplate.
  • JVM Bytecode Compilers - Translates high-level syntax into compatible Java bytecode for execution on the Java Virtual Machine.
  • Scripting Runtimes - Evaluates code snippets without a full application structure by bypassing traditional boilerplate and compilation steps.
  • Abstract Syntax Tree Transformations - Provides capabilities to rewrite and generate AST nodes during compilation to implement custom language features and reduce boilerplate.
  • Runtime Metaprogramming - Enables modifying program behavior and structure at both compile-time and runtime to automate tasks.
  • Custom Script Executions - Provides the ability to execute custom logic via scripts to bypass full application structures.
  • Call-Site Caching - Implements call-site caching to optimize dynamic method calls by reusing resolution results for subsequent invocations.
  • Functional Programming Patterns - Supports processing data and performing transformations using logic based on functional programming paradigms.
  • Custom Type Checking Rules - Supports adding custom type checking rules via scripts to modify static analysis and catch coding errors.
  • Static Type Checking - Performs compile-time type validation to bypass dynamic dispatch and increase execution performance.

Historial de estrellas

Gráfico del historial de estrellas de apache/groovyGráfico del historial de estrellas de apache/groovy

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Groovy

Proyectos open-source similares, clasificados según cuántas características comparten con Groovy.
  • frege/fregeAvatar de Frege

    Frege/frege

    3,700Ver en GitHub↗

    Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for the Java platform. It is built around a Haskell-inspired compiler that implements non-strict evaluation and a static type inference system to ensure data immutability and prevent side effects. The project distinguishes itself through a sophisticated type system featuring rank polymorphism, type-class based dispatch, and static purity enforcement. It includes a JVM language bridge and a foreign function interface that map Java classes and interfaces into functional types, allow

    Frege
    Ver en GitHub↗3,700
  • jruby/jrubyAvatar de jruby

    jruby/jruby

    3,906Ver en GitHub↗

    JRuby is a Ruby language implementation that runs on the Java Virtual Machine. It serves as a cross-language runtime and execution environment, allowing Ruby code to run on the JVM and share memory with Java applications. The project functions as a bridge between Ruby and Java, enabling Ruby scripts to call Java classes and libraries directly. It also provides a mechanism to embed a Ruby interpreter into Java applications to allow for dynamic scripting. The runtime leverages the JVM for system scalability and ensures a consistent execution environment across different operating systems.

    Rubyconcurrencyinvokedynamicjruby
    Ver en GitHub↗3,906
  • kanaka/malAvatar de kanaka

    kanaka/mal

    10,665Ver en GitHub↗

    This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees. The project emphasizes a code-as-data metaprogramming framework, enabling the implementation of macros, quoting, and quasiquoting to transform expressions during evaluation. It is designed with host language agnosticism, allowi

    Assemblybashcc-plus-plus
    Ver en GitHub↗10,665
  • sweet-js/sweet-coreAvatar de sweet-js

    sweet-js/sweet-core

    4,559Ver en GitHub↗

    Sweet-core is a JavaScript source-to-source compiler and Lisp-style macro system. It functions as a syntax transformer that extends JavaScript by allowing the definition of custom syntax and operators during the compilation process. The system provides a framework for building domain-specific languages through hygienic, recursive macro expansion and the creation of new language constructs. It distinguishes itself by supporting custom operator definitions with configurable associativity and precedence to control expression evaluation. The compiler includes a specialized module system for mana

    JavaScriptjavascriptmacrosparser
    Ver en GitHub↗4,559
Ver las 30 alternativas a Groovy→

Preguntas frecuentes

¿Qué hace apache/groovy?

Groovy es un lenguaje de programación para la JVM y un framework de metaprogramación que proporciona un entorno compatible con Java para construir aplicaciones. Funciona como un lenguaje de scripting dinámico y una herramienta para crear lenguajes específicos de dominio (DSL), permitiendo la ejecución de scripts personalizados y la creación de mini-lenguajes especializados con una sintaxis concisa.

¿Cuáles son las características principales de apache/groovy?

Las características principales de apache/groovy son: JVM Application Development, Programming Languages, Code Prototyping, Class Extensions, Runtime Meta-Class Extensions, Dynamic Method Dispatch, Java Interoperability, Metaprogramming.

¿Qué alternativas de código abierto existen para apache/groovy?

Las alternativas de código abierto para apache/groovy incluyen: frege/frege — Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for… jruby/jruby — JRuby is a Ruby language implementation that runs on the Java Virtual Machine. It serves as a cross-language runtime… kanaka/mal — This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of… sweet-js/sweet-core — Sweet-core is a JavaScript source-to-source compiler and Lisp-style macro system. It functions as a syntax transformer… charmbracelet/vhs — This project is a terminal automation and recording tool that uses a custom declarative scripting language to execute… cake-build/cake — Cake is a cross-platform build automation system and scripting framework that allows users to define software build…