generic_programming_topics

Generic Programming Topics

Return to Generic programming topics, Programming paradigms, Object-oriented programming (OOP), Reactive programming, Imperative programming, Declarative programming, Procedural programming, Functional programming, Generic programming (Generics), Aspect-oriented programming, Major programming topics, Programming topics, Programming languages, Software engineering topics, Software architecture, Software architecture topics, Awesome lists

Snippet from Wikipedia: Generic programming

Generic programming is a style of computer programming in which algorithms are written in terms of data types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by the ML programming language in 1973, permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplicate code.

Generic programming was introduced to the mainstream with Ada in 1977. With templates in C++, generic programming became part of the repertoire of professional library design. The techniques were further improved and parameterized types were introduced in the influential 1994 book Design Patterns.

New techniques were introduced by Andrei Alexandrescu in his 2001 book Modern C++ Design: Generic Programming and Design Patterns Applied. Subsequently, D implemented the same ideas.

Such software entities are known as generics in Ada, C#, Delphi, Eiffel, F#, Java, Nim, Python, Go, Rust, Swift, TypeScript, and Visual Basic .NET. They are known as parametric polymorphism in ML, Scala, Julia, and Haskell. (Haskell terminology also uses the term "generic" for a related but somewhat different concept.)

The term generic programming was originally coined by David Musser and Alexander Stepanov in a more specific sense than the above, to describe a programming paradigm in which fundamental requirements on data types are abstracted from across concrete examples of algorithms and data structures and formalized as concepts, with generic functions implemented in terms of these concepts, typically using language genericity mechanisms as described above.

Topics

A

B

C

G

H

I

P

S

T

W

Categories: Programming paradigms, Polymorphism (computer science)

External Sites

Programming: Programming languages

Variables and Data Types, Control Structures, Functions and Methods, Object-Oriented Programming (OOP), Functional Programming, Procedural Programming, Event-Driven Programming, Concurrent and Parallel Programming, Error Handling and Debugging, Memory Management, Recursion, Algorithms, Data Structures, Design Patterns, Software Development Life Cycle (SDLC), Version Control Systems, Database Programming, Web Development, Mobile App Development, Game Development, Machine Learning and AI Programming, Network Programming, API Development, Security in Programming, Testing and Quality Assurance, User Interface and User Experience Design, Scripting Languages, Assembly Language, High-Level Programming Languages, Low-Level Programming Languages, Compiler Design, Interpreter Design, Garbage Collection, Regular Expressions, Graphical User Interface (GUI) Programming, Command Line Interface Development, Cross-Platform Development, Cloud Computing in Programming, Blockchain Programming, IoT Programming, Embedded Systems Programming, Microservices Architecture, Serverless Architecture, Big Data Technologies, Data Visualization, Data Mining and Analysis, Natural Language Processing (NLP), Computer Graphics Programming, Virtual Reality (VR) Development, Augmented Reality (AR) Development, Cryptography in Programming, Distributed Systems, Real-Time Systems Programming, Operating System Development, Compiler and Interpreter Development, Quantum Computing, Software Project Management, Agile Methodologies, DevOps Practices, Continuous Integration and Continuous Deployment (CI/CD), Software Maintenance and Evolution, Software Licensing, Open Source Development, Accessibility in Software Development, Internationalization and Localization, Performance Optimization, Scalability Techniques, Code Refactoring, Design Principles, API Design, Data Modeling, Software Documentation, Peer-to-Peer Networking, Socket Programming, Front-End Development, Back-End Development, Full Stack Development, Secure Coding Practices, Code Reviews, Unit Testing, Integration Testing, System Testing, Functional Programming Paradigms, Imperative Programming, Declarative Programming, Software Architecture, Cloud-Native Development, Infrastructure as Code (IaC), Ethical Hacking for Developers, Artificial Intelligence Ethics in Programming, Software Compliance and Standards, Software Auditing, Debugging Tools and Techniques, Code Optimization Techniques, Software Deployment Strategies, End-User Computing, Computational Thinking, Programming Logic and Techniques, Advanced Data Management

Agile, algorithms, APIs, asynchronous programming, automation, backend, CI/CD, classes, CLI, client-side, cloud (Cloud Native-AWS-Azure-GCP-IBM Cloud-IBM Mainframe-OCI), comments, compilers, concurrency, conditional expressions, containers, control flow, databases, data manipulation, data persistence, data science, data serialization, data structures, dates and times, debugging, dependency injection, design patterns, DevOps, distributed software, Docker, error handling, file I/O, frameworks, frontend, functions, functional programming, GitHub, history, Homebrew, IDEs, installation, JetBrains, JSON, JSON Web Token (JWT), K8S, lambdas, language spec, libraries, linters, Linux, logging, macOS, methods, ML, microservices, mobile dev, modules, monitoring, multi-threaded, network programming, null, numbers, objects, object-oriented programming, observability, OOP, ORMs, packages, package managers, performance, programmers, programming, reactive, refactoring, reserved words, REST APIs, RHEL, SDK, secrets, security, serverless, server-side, Snapcraft, SQL, StackOverflow, standards, standard library, statements, scope, scripting, syntax, systems programming, TDD, testing, tools, type system, web dev, variables, versions, Ubuntu, unit testing, Windows; topics-courses-books-docs. (navbar_programming - see also navbar_variables, navbar_programming_libraries, navbar_data_structures, navbar_algorithms, navbar_software_architecture, navbar_agile)


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


generic_programming_topics.txt · Last modified: 2024/04/28 03:40 (external edit)