Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions Languages-And-Platforms/choosing-languages.org
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,12 @@ kernel.
- Existing C++ programs use those unreliable features so C++ programmers
have to know all of them!
- C++ is a very complex language which is hard to learn to use well!
- CUDA extends C and C++ for General-Purpose GPU Programming
- Created by NVIDIA for massively parallel numerical computing
- Ideal for simulations, machine learning, data analysis, and graphics
- Lets you write kernels that run on thousands of GPU threads
- Requires understanding of low-level memory and concurrency models

- [[https://www.rust-lang.org][Rust]] is a modern alternative to C and C++
- higher-level than C yet just as efficient
- simpler and more reliable than C++
Expand Down Expand Up @@ -276,6 +282,23 @@ for programming language to manipulate your documents in creative ways.
- [[https://www.libreoffice.org/discover/what-is-opendocument/][Open Document]] - the basis for [[https://www.libreoffice.org][LibreOffice]] and [[https://www.fsf.org/campaigns/opendocument/][More]]
- [[https://docs.racket-lang.org/scribble][Scribble: A Racket-based Documentation Language]]

*** Theorem Proving and Formal Verification

Some languages are designed for expressing and verifying formal proofs —
often alongside writing code. These are especially good for building
mathematically rigorous systems and for learning about logic and type theory.

Paradigms
- Pure Functional Programming with Dependent Types
- Constructive Logic and Interactive Proof Development

- [[https://lean-lang.org][Lean]] is a modern theorem prover and functional language
- Lean 4 aims to be a practical general-purpose language
- Integrates dependent types, macros, and a growing standard library
- Supported by an active community and [[https://github.com/leanprover-community/mathlib4][Mathlib4]] for formal math
- Especially good for learning type theory, logic, and formal verification


*** Shells and [[https://en.wikipedia.org/wiki/Domain-specific_language][Domain Specific Languages]]

Shells allow casual users and experts to create scripts (simple programs) to
Expand Down