- Variable reassignment (mutable variables)
- Constants (immutable by default with
constkeyword) - Arithmetic operators (+, -, *, /, %, **)
- Comparison operators (==, !=, <, >, <=, >=)
- Logical operators (and, or, not)
- if statement
- else statement
- else if / elif statement
- while loop
- for loop (C-style: for i = 0; i < 10; i++)
- break statement
- continue statement
- Function declarations
- Function parameters
- Return statements
- Array literals ([1, 2, 3])
- Array indexing (arr[0])
- Object literals ({key: value})
- String concatenation with + operator
- Integer type (separate from float)
- Type inference improvements
- input() - Read from stdin
- len() - Length of collection
- type() - Get type of value
- String slicing (string[start:end])
- String indexing (string[0])
- String length function
- String methods (upper, lower, trim, split, join, replace)
- Array length
- Array methods (push, pop, shift, unshift)
- Array slicing (arr[1:3])
- Object methods (keys, values, entries)
- Dot notation (obj.key)
- Bracket notation (obj["key"])
- for-in loop (iterate over collections)
- Loop with range (for i in 0..10)
- Default parameter values
- Anonymous functions/lambdas
- Closures
- Recursive functions
- Type annotations (optional static typing)
- Compound assignment (+=, -=, *=, /=, %=)
- Short-circuit evaluation
- Ternary operator (condition ? true_val : false_val)
- try-catch blocks
- throw statements
- Error wrapping
- Stack traces
- Multi-line comments (/* */)
- range() - Generate range
- str() - Convert to string
- assert() - Runtime assertion
- io - Input/Output operations
- fs - File system operations
- Reading from stdin
- Writing to stdout
- Writing to stderr
- File reading (text and binary)
- File writing (text and binary)
- read() - Read file
- write() - Write to file
- open() - Open file handle
- close() - Close file handle
- Math module (sin, cos, tan, sqrt, abs, etc.)
- Random number generation
- time - Time and date handling
- JSON parsing and generation
- path - Path manipulation
- env - Environment variables
- typeof() - Type checking
- isinstance() - Instance checking
- map() - Transform collection
- filter() - Filter collection
- reduce() - Reduce collection
- Array methods (map, filter, reduce, forEach)
- Array methods (find, findIndex, includes, indexOf)
- Array methods (sort, reverse, join)
- Multi-dimensional arrays
- Object spreading
- Object destructuring
- Nested objects
- JSON serialization/deserialization
- Set creation
- Set operations (add, remove, has)
- Set operations (union, intersection, difference)
- Fixed-size tuples
- Tuple unpacking
- Switch/match statement
- Pattern matching
- Array concatenation
- Array spreading/unpacking
- Negative indexing (arr[-1])
- Dynamic keys
- Property existence checking
- Property deletion
- for-of loop (iterate over values)
- Loop with step (for i in 0..10 step 2)
- enumerate() - Index and value pairs
- zip() - Combine iterables
- sum() - Sum numbers
- min() - Find minimum
- max() - Find maximum
- sorted() - Sort collection
- reversed() - Reverse collection
- import statements
- export statements
- Module paths
- Relative imports
- Absolute imports
- Selective imports (import {x, y} from module)
- Import aliases (import x as y)
- Package manifest file (package.nvq, Noviq.toml)
- Dependency specification
- Version constraints
- Package installation
- Local packages
- Dependency resolution
- Lock files
- Package manager CLI
- Package search
- Package info
- Arrow functions
- Higher-order functions
- Rest parameters (...args)
- Early return
- Nested functions
- Variadic functions
- Class declarations
- Class constructors
- Instance methods
- Static methods
- Instance variables/properties
- Class variables/static properties
- Private members
- Public members
- Getters and setters
- Single inheritance
- Method overriding
- Super keyword
- Interface implementation
- Function types/signatures
- Multi-line strings (""" or similar)
- Raw strings (no escape processing)
- String contains/search
- Regular expressions
- String formatting (printf-style)
- Template literals (backticks with ${})
- Hexadecimal literals (0x...)
- Binary literals (0b...)
- Octal literals (0o...)
- Scientific notation (1e6, 2.5e-3)
- Increment/decrement (++, --)
- Bitwise operators (&, |, ^, ~, <<, >>)
- Number formatting functions
- Infinity and NaN handling
- BigInt support for large numbers
- String encoding/decoding (UTF-8, UTF-16)
- Unicode normalization
- Character type functions (is_alpha, is_digit, etc.)
- Custom error types
- finally blocks
- catch with type filtering
- Result/Option types (Rust-style)
- Error propagation operator (?)
- Panic vs recoverable errors
- Assertions
- Debug assertions
- Unit testing framework
- Test assertions
- Test fixtures
- Mocking
- Test coverage
- Benchmark framework
- Integration tests
- REPL (Read-Eval-Print Loop)
- Language Server Protocol (LSP)
- Syntax highlighting definitions
- Code formatter
- Linter
- Code completion
- Go to definition
- Find references
- Rename symbol
- Documentation comments (///)
- Documentation generator
- API documentation
- Colored error output
- Error codes
- Suggestions for fixes
- Similar name suggestions
- Context in errors
- VSCode extension
- Photon watch mode
- Photon project scaffolding
- Abstract classes
- Protected members
- Property decorators
- Multiple inheritance
- Traits/Mixins
- Protocols
- Operator overloading
- Method chaining
- Reflection/introspection
- Type checking at runtime
- Function composition
- Partial application
- Currying
- Tail call optimization
- Generator functions
- Async functions
- Function overloading
- Function decorators/annotations
- Pure function markers
- Memoization
- File appending
- Buffered IO
- Stream reading/writing
- CSV reading/writing
- CSV handling
- YAML support
- TOML support
- XML parsing
- XML/HTML parsing
- INI file support
- String manipulation functions
- String formatting
- format() - Format string
- join() - Join strings
- split() - Split string
- replace() - Replace in string
- chars() - Get characters
- bytes() - Get bytes
- Threads
- Thread pools
- Mutexes/locks
- Channels (message passing)
- Async/await
- Promises/Futures
- Coroutines
- Green threads
- Race condition detection
- Deadlock detection
- HTTP client
- HTTP server
- WebSocket support
- TCP sockets
- UDP sockets
- DNS resolution
- URL parsing
- REST API helpers
- SQLite support
- PostgreSQL driver
- MySQL driver
- MongoDB driver
- Redis client
- ORM framework
- Query builder
- Migrations
- Connection pooling
- Bytecode compilation
- JIT compilation
- Constant folding
- Dead code elimination
- Inline expansion
- Loop unrolling
- Tail call optimization
- Type checking
- Dead code detection
- Unused variable detection
- Unreachable code detection
- Incremental compilation
- Parallel compilation
- List comprehensions
- Dict comprehensions
- Set comprehensions
- Generator expressions
- With statement (context managers)
- Using statement (resource cleanup)
- Guard statement
- Defer statement
- Array comprehensions
- Typed arrays
- Pipeline operator (|>)
- Composition operator (>>)
- Elvis operator (?:)
- Safe navigation operator (?.)
- Null coalescing operator (??)
- Spread operator (...)
- Range operator (..)
- Exclusive range operator (..<)
- In operator (value in collection)
- Is operator (type checking)
- As operator (type casting)
- Type casting/conversion functions
- Null/None type explicit handling
- Undefined vs Null distinction
- Variable shadowing
- Destructuring assignment
- Truthiness/falsiness rules
- Strict equality vs loose equality
- Optional chaining operator (?.)
- Type aliases
- Union types
- Intersection types
- Generics/parametric polymorphism
- Variance (covariance, contravariance)
- istype() - Type validation
- convert() - Type conversion
- Garbage collection
- Reference counting
- Memory pools
- Stack vs heap allocation
- Smart pointers
- Weak references
- Memory leak detection
- RAII (Resource Acquisition Is Initialization)
- Debugger protocol
- Breakpoints
- Step through execution
- Variable inspection
- Stack trace inspection
- Memory profiling
- CPU profiling
- Logging framework
- Trace logging
- Hot reloading
- Time-travel debugging
- all() - Check all true
- any() - Check any true
- eval() - Evaluate code string
- exec() - Execute code
- compile() - Compile code
- help() - Interactive help
- dir() - List attributes
- id() - Object identity
- hash() - Hash value
- repr() - String representation
- Named tuples
- Object freezing/sealing
- Wildcard imports
- Re-exports
- Module initialization
- Circular dependency handling
- Dynamic imports
- Lazy loading
- Module versioning
- Package registry
- Package publishing
- Git dependencies
- Virtual environments
- Package scripts
- Dev dependencies vs runtime dependencies
- Package outdated check
- Package update
- Package audit (security)
- Package licenses
- Photon dependency management
- Build profiles
- Custom build scripts
- Parallel builds
- Incremental builds
- Build caching
- Build artifacts management
- Quick fixes
- Refactoring tools
- Code snippets
- Tutorial generator
- Example runner
- Playground/sandbox
- Documentation search
- Version documentation
- IntelliJ plugin
- Vim/Neovim plugin
- Emacs mode
- Sublime Text package
- Atom package
- WebStorm integration
- GitHub Actions workflows
- GitLab CI templates
- Jenkins integration
- Travis CI support
- CircleCI config
- Docker images
- Pre-commit hooks
- Code coverage reporting
- Sandboxing
- Capability-based security
- Safe/unsafe code distinction
- Input validation
- SQL injection prevention
- XSS prevention
- CSRF protection
- Cryptography module
- Secure random numbers
- Password hashing
- Token generation
- Resource limits
- Execution timeout
- Stack size limits
- Memory limits
- Lazy evaluation
- Copy-on-write
- String interning
- Object pooling
- Zero-cost abstractions
- SIMD support
- GPU computation
- Parallel algorithms
- Native code compilation
- AOT compilation
- Cross-compilation
- Link-time optimization
- Profile-guided optimization
- Escape analysis
- Bounds check elimination
- Common subexpression elimination
- FreeBSD support
- OpenBSD support
- Android support
- iOS support
- WebAssembly target
- x86 (32-bit)
- RISC-V
- Unicode support (full)
- Locale handling
- Message translation
- Number formatting by locale
- Date/time formatting by locale
- Currency formatting
- Text collation
- Bidirectional text
- Right-to-left languages
- Macros
- Compile-time evaluation
- Code generation
- Reflection API
- Annotations/decorators
- Attribute macros
- Procedural macros
- AST manipulation
- Custom DSLs
- C FFI
- Rust FFI
- Python interop
- JavaScript interop
- Call external libraries
- Expose Noviq functions to C
- Shared library loading
- System call interface
- Loop labels
- do-while loop
- until loop
- Loop else clause
- Infinite loop construct
- Multiple return values
- Named return values
- Function inlining hints
- Virtual methods
- Builder pattern support
- Markdown in doc comments
- TODO/FIXME/NOTE markers
- Comment directives
- Regular expression literals
- Date/time literals
- Binary data literals
- Extension methods
- Implicit conversions
- Explicit conversions
- Higher-kinded types
- Code formatting
- Linting
- Cyclomatic complexity
- Code smell detection
- MessagePack
- Protocol Buffers
- Property-based testing
- Snapshot testing
- os - Operating system interface
- sys - System-specific parameters
- process - Process management
- collections - Additional data structures
- Fast compilation
- Helpful warnings
- Clear documentation
- Good examples
- Beginner-friendly
- Consistent syntax
- Minimal boilerplate
- Interactive tutorials
- Migration guides
- Changelog
- Error explanation
- Help URLs in errors
- Official package registry
- Package discovery
- Code examples repository
- Snippet sharing
- Playground website
- Community forum
- Discord/Slack
- Stack Overflow tag
- Awesome-noviq list
- Newsletter
- Blog
- Podcast
- Conference/meetups
- Manual memory management
- Move semantics
- Borrow checker
- Lifetime annotations
- Dependent types
- Linear types
- Effect system
- Algebraic effects
- Ownership types
- Session types
- Gradual typing
- Structural typing
- Row polymorphism
- Kind system
- Guard clauses
- Inline if expressions
- Single-line comments (#)
- String literals
- Number literals
- Boolean literals
- Photon build tool (basic)
- Linux support
- macOS support
- Windows support
- x86_64
- ARM64 (aarch64)
- ARM (32-bit)
- MIPS
- PowerPC