Cobra (programozási nyelv)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. május 9-én felülvizsgált verziótól ; az ellenőrzések 6 szerkesztést igényelnek .
Kobra
Nyelvóra több paradigma :
objektumorientált
Megjelent 2006
Szerző Chuck Esterbrook
Fájlkiterjesztés _ .cobra
Kiadás 0.9.6 ( 2013. december 23. )
Típusrendszer statikus , szigorú , dinamikus , típuskövetkeztetés
Főbb megvalósítások .NET-keretrendszer , Mono
Befolyásolt Python , Eiffel , C# , Objective-C , D
Engedély MIT
Weboldal cobra-language.com

A Cobra  egy általános célú , magas szintű objektum-orientált programozási nyelv. Chuck Esterbrook tervezte.NET és Mono platformokhoz . A nyelv szintaxisa a Python szintaxisán alapul , és behúzást használ a kódblokkok szintaktikai kiemelésére. A nyelv támogatja a statikus és dinamikus gépelést , a szerződéses programozás támogatását és a beépített egységtesztet . Lehetősége van lambda kifejezések , lezárások , listakifejezések és generátorok használatára . A Cobra gyors fejlődést és nagy teljesítményt tesz lehetővé [1] .

A Cobra nyelvi implementáció nyílt forráskódú , az MIT licence alatt 2008. február 29-én adták ki, lehetővé téve a kód ingyenes használatát és módosítását.

Szintaxis és szemantika

Docsstringek

A Cobra egy mechanizmust biztosít a DocString kód dokumentálására .

class Utils share def countChars ( s as String , c as char ) as int """ Az s karakterlánc c karaktereinek számát adja vissza. """ count = 0 for ch in s if ch == c count += 1 return count

Egységteszt

Lehetővé teszi egy adott osztály, tulajdonság vagy metódus helyességének ellenőrzését a program forráskódjában.

class Utils megosztott def countChars ( s as String , c as char ) as int """ Visszaadja a c karakterek számát a stringben s """ test assert Utils . countChars ( '' , c 'x' ) == 0 assert Utils . countChars ( 'x' , c 'x' ) == 1 assert Utils . countChars ( 'X' , c 'x' ) == 0 assert Utils . countChars ( ' ! ! ' , c ' !' ) == 2 testszám = 0 ch esetén s ha ch == c count + = 1 visszatérési szám

Szerződéses programozás

Érvényes bemenetet biztosít a hívott komponens számára, segítve a hibák korábbi észlelését, amikor azok könnyebben diagnosztizálhatók.

osztály Ügyfél var _contacts as List < of Contact > get contacts from var def addContact ( kapcsolattartó mint kapcsolattartó ) olyan kapcsolattartást igényel , amely nem található meg . kapcsolattartó . _ név kapcsolat . ügyfél nulla kapcsolattartás biztosítása . _ ügyfél == ez . kapcsolatok . gróf == régi . kapcsolatok . szám + 1 testkontaktus . _ ügyfél = this _contacts . hozzáadás ( kapcsolat )

Null figyelése fordításkor

Sok esetben elkerüli a futásidejű nullmutató hibákat. A Cobrában a null akkor adható át, ha a nullálható típus megengedett: egyetlen kérdőjel (?) utótag.

class Foo def bar ( s as String ? ) if s # ugyanaz, mint "ha s nem nulla" print Utils . countChars ( s , c 'x' )

Más nyelvek hatása a Cobrára [2]

A Cobra-ra számos programozási nyelv hatott:

IDE

Példa

Helló világ példa:

osztály Hello def főnyomat ' Hello , world!'

Fibonacci számgenerátor példa:

class Fib def compute ( int - nek számít ) as List < of int > megosztott lista = List < of int > ( ) a , b = 0 , 1 for i in count list . add ( b ) a , b = b , a + b visszatérési lista osztály Program def main i = 1 n esetén a Fib -ben . számítás ( 10 ) print '[i]. [n]' i += 1

Példa az osztályra:

osztályú személy var _name as String var _age mint int cue init ( név mint String , kor mint int ) _name , _age = név , életkor def toString mint String felülírása return ' A nevem [_name] és [_age] éves vagyok'

Jegyzetek

  1. Crill, Paul . A Cobra nyelv nyílt forráskódúvá vált , InfoWorld  (2008. február 7.). Archiválva az eredetiből 2011. június 8-án. Letöltve: 2010. augusztus 31.
  2. Nyelvi előadás a Lang .NET Symposium 2008-on  (downlink) Cobra programozási nyelv - Chuck Esterbrook

Linkek