Inspirations and security in ufLang
ufLang takes inspiration from C, C++ and Python.
Key points of these languages:
C
Pros:
Efficient and close to hardware, making it ideal for performance-critical applications.
Portable across platforms when written with care.
Cons:
Lack of built-in safety features can lead to vulnerabilities like buffer overflows and memory leaks.
Requires manual memory management, increasing the likelihood of errors.
Difficult debugging due to cryptic errors.
⇒ ufLang prioritizes safety by restricting direct memory access. This prevents unintended or malicious actions that could destabilize applications. By managing memory automatically, ufLang minimizes vulnerabilities like buffer overflows, reduces errors, and enhances code reliability.
C++
Pros:
Supports object-oriented programming, enhancing code organization and reusability.
Includes features for both high-level and low-level programming.
Extensive libraries and community support.
⇒ ufLang also handles the object-oriented paradigm.
Cons:
Complex syntax and features, leading to a steep learning curve.
Susceptible to common vulnerabilities like memory corruption and race conditions due to manual memory handling.
Can result in bloated binaries when not optimized.
Binaries compiled in C++ contains raw text from the code before its compilation, which might result in security issues.
⇒ In ufLang, like mentioned before, memory is handled automatically, and creates obfuscated binaries when compiled.
Python
Pros:
High-level, easy-to-read syntax, making it beginner-friendly and ideal for rapid development.
Dynamic typing and extensive standard libraries enhance flexibility.
Strong community and ecosystem with tools for diverse applications like web development, data science, and automation.
Recursion limit for stack overflow
⇒ ufLang contains a built-in function, setRecursionLimit, that allows the user to define a recursion limit for its program.
Cons:
Dynamic typing can lead to runtime errors and challenges in catching certain bugs early.
Performance limitations compared to lower-level languages.
Flexibility can sometimes mask potential issues like improper input handling or security vulnerabilities.
⇒ ufLang handles safeTyping to improve safety and reliability when working with typed data in programming. It emphasizes stricter type enforcement and validation to prevent errors caused by mismatched or incorrect data types.
Last updated