Cobra (programming language)
Paradigm | Multi-paradigm: object-oriented |
---|---|
Designed by | Charles Esterbrook |
Developer | Cobra Language LLC |
First appeared | 2006 |
Stable 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 |
Cobra is a 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]
Updates are posted to the Cobra news forum with progress on features, fixes, documentation and related projects since the last update.[9]
Features
- 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
-
in
andimplies
operator -
for
expressions - Slicing
- Interpolated strings
- Compile-time type inference
- Lambdas and closures
- General productivity
-
- Exception handling
- Postmortem exception report
- Garbage collection
- Scripting conveniences
-
- Clean syntax
- Dynamic binding
- One-step run
- Shebang line (
#!
)
- Miscellaneous
-
- Documentation tool (
cobra -doc
) - Syntax highlighting tool (
cobra -highlight
)
- Documentation tool (
Examples
The following examples can be run from a file using cobra <filename>
.
Hello World
class Hello
def main
print 'hello'
A simple class
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
- ↑ "The Cobra Programming Language". Cobra Language LLC. Retrieved 2012-09-26.
- ↑ Charles Esterbrook (Jan 28, 2008). Lang.NET Symposium 2008 – The Cobra Programming Language (wmv). Microsoft. Retrieved 2010-08-31.
- ↑ Bridgwater, Adrian (5 March 2008). "Cobra takes a bite at open source". ZDNet UK. Retrieved 2010-08-31.
- 1 2 Neward, Ted (June 2009). "Reaping the Benefits of Cobra". MSDN Magazine.
- ↑ Erickson, Jonathan (April 2008). "Was George Costanza a Computer Programmer?". Dr. Dobb's Journal.
- ↑ Morris, Richard (April 2010). "Chuck Esterbrook: Geek of the Week". simple-talk.
- ↑ Krill, Paul (Feb 7, 2008). "Cobra language slithering to open source". InfoWorld. Retrieved 2010-08-31.
- ↑ "The Cobra Programming Language". Cobra Language LLC. Retrieved 2008-02-29.
- ↑ Cobra News Forum
External links
- Official website
- The Cobra blog by Charles Esterbrook
- Cobra News Index
This article is issued from Wikipedia - version of the Thursday, October 22, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.