Cobra (programming language)
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]
| 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 | |
Cobra is an open-source project; it was released under the MIT License on February 29, 2008.[7][8]
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
 inandimpliesoperatorforexpressions- 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 WORLD'
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. Microsoft. Archived from the original (wmv) on March 26, 2009. Retrieved 2010-08-31.
 - Bridgwater, Adrian (5 March 2008). "Cobra takes a bite at open source". ZDNet UK. Retrieved 2010-08-31.
 - 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.
 
External links
    
- Official website
 - The Cobra blog by Charles Esterbrook
 - Cobra News Index
 
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.