Kobra | |
---|---|
Språkklass |
multiparadigm : objektorienterad |
Framträdde i | 2006 |
Författare | Chuck Esterbrook |
Filtillägg _ | .cobra |
Släpp | 0.9.6 ( 23 december 2013 ) |
Typ system | statisk , strikt , dynamisk , typinferens |
Stora implementeringar | .NET Framework , Mono |
Blivit påverkad | Python , Eiffel , C# , Objective-C , D |
Licens | MIT |
Hemsida | cobra-language.com |
Cobra är ett allmänt objektorienterat programmeringsspråk på hög nivå . Designad av Chuck Esterbrookför .NET- och Mono- plattformar . Språkets syntax är baserad på syntaxen för Python , med hjälp av indrag för att syntaktiskt markera kodblock. Språket stöder både statisk och dynamisk typning , kontraktsprogrammeringsstöd och inbyggd enhetstestning . Har förmågan att använda lambda-uttryck , stängningar , listuttryck och generatorer . Cobra möjliggör snabb utveckling och hög prestanda [1] .
Cobra-språkimplementeringen är öppen källkod , släppt under MIT-licensen den 29 februari 2008, vilket tillåter fri användning och modifiering av koden.
Cobra tillhandahåller en mekanism för att dokumentera DocString-kod.
klass Använder delat def countChars ( s som sträng , c som char ) som int """ Returnerar antalet tecken c i sträng s. """ count = 0 för ch in s om ch == c count += 1 return countLåter dig kontrollera riktigheten av en viss klass, egenskap eller metod för programmets källkod.
class Utils delad def countChars ( s som sträng , c som char ) som int """ Returnerar antalet tecken c i strängens """ test hävda Utils . countChars ( '' , c 'x' ) == 0 hävdar Utils . countChars ( 'x' , c 'x' ) == 1 hävdar Utils . countChars ( 'X' , c 'x' ) == 0 hävdar Utils . countChars ( ' ! ! ' , c ' !' ) == 2 kroppsantal = 0 för lm i s om lm == c count + = 1 returräkningGer giltig input till den anropade komponenten, vilket hjälper till att fånga upp fel tidigare, när de är lättare att diagnostisera.
class Customer var _contacts as List < of Contact > få kontakter från var def addContact ( kontakt som kontakt ) kräver kontakt inte i . kontakta kontakt . namn kontakt . kund är noll säkerställ kontakt . kund == detta . kontakter . räkna == gammal . kontakter . räkna + 1 kroppskontakt . _ kund = denna _kontakter . lägg till ( kontakt )Undviker runtime noll-pekarfel i många fall. I Cobra kan null godkännas om en nollbar typ tillåts: ett enda frågetecken (?) suffix.
klass Foo def bar ( s som String ? ) om s # samma som "om s inte är noll" skriv ut Utils . countChars ( s , c 'x' )Cobra har påverkats av många programmeringsspråk:
Hej världen exempel:
klass Hej def huvudtryck ' Hej världen!'Fibonacci nummergenerator exempel:
class Fib def compute ( räknas som int ) som List < of int > är delad lista = Lista < of int > ( ) a , b = 0 , 1 för i i count list . lägg till ( b ) a , b = b , a + b returlista klass Program def main i = 1 för n i Fib . beräkna ( 10 ) skriv ut '[i]. [n]' i += 1Klassexempel:
klassperson _ var _name as String var _age as int cue init ( namn som sträng , ålder som int ) _namn , _ålder = namn , ålder def toString as String is override return 'Mitt namn är [_name] och jag är [_age] år gammal'
Programmeringsspråk | |
---|---|
|
.NETTO | |
---|---|
Genomföranden | |
Arkitektur | |
Infrastruktur | |
Microsofts språk | |
Andra språk | |
Windows Foundations | |
Komponenter | |
Jämförelser |
|
Framtida teknologier | |
Informationsresurser |