Cobra (programming language)
Jump to navigation
Jump to search
| Cobra | |
|---|---|
| Paradigm | Multi-paradigm: object-oriented |
| Designed by | Charles Esterbrook |
| Developer | Cobra Language LLC |
| First appeared | 2006 |
| Final release | 0.9.6
/ December 23, 2013 |
| Typing discipline | strong, static, dynamic, inferred |
| OS | Microsoft .NET, Mono |
| License | MIT |
| Filename extensions | .cobra |
| Website | cobra-language |
| Influenced by | |
| Python, Eiffel, C#, Objective-C | |
Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal'). Cobra is a discontinued general-purpose, object-oriented programming language.[1] Cobra is designed by Charles Esterbrook, and runs on the Microsoft .NET and Mono platforms.[2] It is strongly influenced by Python, C#, Eiffel, Objective-C, and other programming languages.[3] It supports both static and dynamic typing.[4][5] It has support for unit tests and contracts.[4] It has lambda expressions, closures, list comprehensions, and generators.[6]
Cobra is an open-source project; it was released under the MIT License on February 29, 2008.[7][8]
Features
[edit | edit source]- Object-oriented
-
- Namespaces
- Classes, interfaces, structs, extensions, enumerations
- Methods, properties, indexers
- Mixins, extension methods
- Generics, attributes
- Quality control
-
- Contracts, assertions
- Unit tests, docstrings
- Compile-time nil-tracking
- Expressiveness
-
- Static and dynamic binding
- List, dictionary, and set literals
inandimpliesoperatorforexpressions- Slicing
- Interpolated strings
- Compile-time type inference
- Lambdas and closures
- General productivity
-
- Exception handling
- Postmortem exception report
- Garbage collection
- Miscellaneous
-
- Documentation tool (
cobra -doc) - Syntax highlighting tool (
cobra -highlight)
- Documentation tool (
Examples
[edit | edit source]The following examples can be run from a file using cobra <filename>.
class Hello
def main
print 'HELLO WORLD'
A simple class
[edit | edit source]class Person
var _name as String
var _age as int
cue init(name as String, age as int)
_name, _age = name, age
def toString as String is override
return 'My name is [_name] and I am [_age] years old.'
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]- Official website
- The Cobra blog by Charles Esterbrook
- Cobra News Index