About the Journal
Recent Trends in Programming languages Recent Trends in Programming languages [2455-1821(e)]Â is a peer-reviewed hybrid open-access journal launched in 2014 that has always been influenced by programming paradigms, which in turn have been characterized by general computing trends. Several less common paradigms in programming languages, such as declarative or functional programming, emphasize high levels of expressiveness.
Focus & Scope
- Language design and paradigms: imperative, object-oriented, functional, logic, and multi-paradigm language design, expressiveness and abstraction mechanisms, syntax design and ergonomics, language evolution and backward compatibility, and comparative analysis of design decisions.
- Type systems: static and dynamic typing, polymorphism and generics, dependent and refinement types, gradual and optional typing, type inference algorithms, effect systems, ownership and borrowing for memory safety, and soundness proofs.
- Semantics and formal foundations: operational, denotational, and axiomatic semantics, lambda calculi and their extensions, formal specification of language behaviour, equational reasoning, and mechanised metatheory.
- Compilers and code generation: front-end design and parsing, intermediate representations, optimisation passes and their evaluation, just-in-time compilation, ahead-of-time and cross-compilation, code generation for diverse targets, and compiler correctness and verification.
- Runtime systems and memory management: garbage collection algorithms and tuning, manual and region-based memory management, virtual machine and interpreter design, foreign function interfaces, dynamic loading and linking, and runtime performance characterisation.
- Concurrency and parallelism in languages: language-level concurrency constructs, actors, channels, and message passing, async and await models, data parallel and array language features, memory models and race freedom, and deterministic parallel programming.
- Static program analysis: dataflow and control flow analysis, abstract interpretation, points-to and alias analysis, taint analysis for security properties, scalability of whole-program analysis, and precision versus performance trade-offs.
- Dynamic analysis and testing: runtime instrumentation and tracing, fuzzing and input generation, symbolic and concolic execution, test case generation for typed and untyped languages, coverage criteria, and combined static–dynamic approaches.
- Program verification and model checking: deductive verification and proof assistants, software model checking, contract and assertion languages, constraint-based consistency checking, bounded and unbounded verification, and verification of concurrent programs.
- Program transformation and synthesis: refactoring and semantics-preserving transformation, partial evaluation and specialisation, superoptimisation, program synthesis from specifications and examples, automated repair, and machine learning approaches to code generation and transformation.
- Domain-specific languages: internal and external DSL design, language workbenches and metaprogramming, embedded DSLs in host languages, DSLs for scientific, financial, and systems domains, and evaluation of DSL adoption.
- Language implementation for emerging targets: WebAssembly and portable bytecode, GPU and accelerator programming languages, languages for constrained and embedded devices, quantum programming languages, and cross-platform and mobile runtime design.
- Developer tooling and language services: integrated development environment support, language servers and incremental analysis, debuggers and program visualisation, program comprehension aids, refactoring tools, and empirical evaluation of tooling effectiveness.
- Empirical studies of programming languages: large-scale analysis of code corpora, studies of language feature adoption, defect rates and language characteristics, developer productivity and language choice, controlled experiments on language usability, and replication of language studies.
Keywords
Programming Languages, Type Systems, Compiler Design, Program Analysis, Functional Programming, Language Semantics, Runtime Systems, Domain Specific Languages, Program Verification, Memory Safety