Jump to content

Projekts "Poseidon"


SanchoB
 Share

Recommended Posts

Par Projektu Poseidon.

 

Projekta mērķis: Radīt jaunu programmēšanas valodu un kompilatoru.

 

Valoda balstās uz Delphi un Oberon valodas ar ietekmi no C++, C#, VB. Jeb tas ir Delphi un Oberon kopražojums ar šādām tādām idejām no citām valodām.

No Delphi tas atšķirsies ar vienkāršāku un labāk saprotamāku sintaksi. No Oberon ar OOP, tiek iekļauts tāds datu tips kā Class.

 

Es Delphi programmēšanu sāku apgūt apmēram pirms 2 gadiem un saskāros ar šādām tādām problēmām. Un tad man radās ideja radīt jaunu valodu, kas atvieglotu dzīvi tādiem programmēšanas entuziastiem kā es.

 

Es jau esmu savācis daudz materiālus par kompilatoru, valodas izstrādi, PE file strukture, memory managment, WinAPI. Un sācīs kaut ko darīt šajā virzienā un ticis līdz parsingam, taču saskaroties ar šādām tādām problēmām nākas kodu pārrakstīt. Projektu man negribās pamest un vienam pašam man tam spēka nepietiek, tāpēc varbūt ir kāds kam šis projekts varētu interesēt un piedalīties. Projekts tiek rakstīts iekšs Delphi 7.

 

Ko tas dod:

Radīt savu programmēšanas valodu, kuru tu pārzināsi no A līdz Z. Varēsi attīstīt tās izstrādi, uzlabot. UN lepoties, ka tu esi viens no līdzautoriem, kā arī lepoties, ka tas ir MADE IN LATVIA. Tas ir tīri entuziasma darbs, tā kā par to naudu neviens nesaņems.

 

Ja ir interese tad rakstīt vai nu forumā vai uz e-mail sanchob@inbox.lv

Link to comment
Share on other sites

Saprotu, ka tas ir projekts vairākiem gadiem.

Saprotu, ka vienīgā produkta mērķa auditorija ir programmētāji - iesācēji.

 

Vai tiešām Tu uzskati, ka šī auditorija ir pietiekams mērķa segments jauna produkta radīšanai?

 

Cik pašlaik cilvēku ir projektā?

Cik liela darbietilpība ir ieguldīta?

Cik liela darbietilpība ir paredzēta līdz pirmajai versijai?

 

No Tava apgalvojuma " ticis līdz parsingam, taču saskaroties ar šādām tādām problēmām nākas kodu pārrakstīt." saprotu, ka ir pilnībā izstrādāta produkta dokumentācija un jau sākts pēdējais vienkāršākais posms kodēšana. Kur var iepazīties ar projekta dokumentāciju?

 

--> Kur var iapazīties ar jaunās valodas formālo gramatiku? //Ja gramatika gatava, kādas problēmas uzrakstīt parseri?

--> Kāds valodas tips ir izvēlēts (klasiskā komandu (Pascal, C), loģiskā jeb deklaratīvā valoda (PROLOG), ... ?)

--> Mūsdienās aktualizējas paralēlā progragrammēšana. Vai Tavā valodā ir un kā ir realizēts semaforu mehānisms? Varbūt ir atrasts cits mehānisms tā vietā?

--> Kā pirmo implementāciju valodai Tu veido kompilatoru vai interpretatoru?

 

// --------------------------------------

 

Paraugoties no projektu vadības viedokļa, bilde izskatās šāda:

 

Problēma: iesācējiem grūtības pirmajā dienā ar Delphi

Mērķis: ???

Realizācija: Radīt jaunu programmēšanas valodu un kompilatoru.

 

--> Kāds īsti ir projekta mērķis.

--> vai jaunas programmēšanas valodas radīšana padarīs vieglākus pirmos soļus ar Delphi?

--> vai ir veikta esošo programmēšanas valodu analīze? Vai ir nodrošināta labo īpašību pārnešana uz jauno valodu, bet slikto uzlabošana.

Link to comment
Share on other sites

Labi vispār izdomāju, ka savu projektu taisīšu es pats. Un iepazīstināšu ar to kad būšu beidzis, ja nekas nemainīsies nākotnē.

 

Atbildot uz taviem (VIL) jautājumiem. Mana mērķa auditorija nav tikai iesācēji, vienkārši es gribu uztaisīt to tādu, kas būtu viegli apgūstama programmēšanas iesācējiem. Un pietiekami jaudīgu priekšs profesionāļiem.

Bet viss ir tikai priekšā.

 

Projektu es sāku viens pats un vēl joprojam pie tā strādāju viens pats. Bet vērsos šeit tāpēc, ka kādam varbūt būtu idejas. Kompilatorus es iepriekš neesmu taisījis un šī lietiņa man ir pilnīgi jauna. Bet lai taisītu es palasīju par to vairākus rakstus, var teikt diezgan murgaini vairāki ir. Bet kopumā, valodas izstrādei es ņemu idejas no Niklausa Virsa (Niklaus Wirth) idejas izstrādājot viņa pēdējo projektu Oberon.

 

--> Kur var iapazīties ar jaunās valodas formālo gramatiku? //Ja gramatika gatava, kādas problēmas uzrakstīt parseri? Dokumentāciju es sniegšu tad, kad beigšu savu projektu, un turpmāk es taisīšu to pats. īsti tāda formālā gramatika man nav īsti uzrakstīta (bet viņa man ir), vienkārši es sāku no vienkāršā un tad var tikai sarežģīt visu.

 

Bet kopumā es izsklāstīšu, kādu valodu es esmu iecerējis.

Poseidon balstās uz Delphi valodas. Tā būs objektu orientēta, strukturizēta un modulāra programmēšanas valoda. Tā būs strikti tipizēta. Varētu jau taisīt līdzīgu C sintaksei, taču tā pazaudētu Paskāla priekšrocības - viegli lasāmu un pārlūkojamu - jaunas valodas radīšana primārais mērķīs bija uzlabot esošo Pascal, tas ir pataisīt to vēl vieglāk apgūstamu, aplūkojamu un lasāmu. Daudz kas ir ietekmēts no Oberon valodas. Šis tas ir no VB, C# - šajās valodās es neesmu programmējis, taču aplūkojis gan esmu.

 

Tādad, kas atškirsies no Delphi.

Modulis - šeit nebūs ne Libraru, ne program, ne unit moduļi, bet gan viens module. Sintakse.

 

MODULE Ident ";"

[imports]

[Declarations]

[initializations]

END [MODULE] "."

 

Līdzīgs kā program modulis delphi, vienīgi initializations -> nosacīti obligāts.

Nav implementation un interface sekcijas. Tai vietā tiks izmantoti Public vai Private atslēgas vārdi.

Izmaiņas iekšs Statements Piem:

 

IF Condition THEN <- no oberona

Statements <- jeb statement list nevis statement kā delphi

{ ELSIF Condition THEN Statements }

[ ELSE Statements]

END [iF] ";"

 

Jauns

LOOP <- no oberona

Statements

END [LOOP] ";"

 

FOREACH (Ident ":" Type IN Arraytypes) DO

Statements

END [FOREARCH] ";"

 

Izmaiņas iekšs funkcijas - nav result variable, bet gan terminējošais RETURN Expr ; <- no oberona

 

Pointer type deklarācija

 

TYPE

A = POINTER [ TO Type ] ";"

 

Klases deklarācija izmaiņas iekš property deklarācijas kā Visual Basic

 

Domāju izmainīt Conditions iekšs nosacījuma izteiksmēm.

 

ENUM datu tips kā C#;

 

Nebūs begin .. end bloka;

 

Kopumā tas īsumā par svarīgākajām īpatnībām.

 

Vārds Poseidon no vārda Oberon.

 

Cerams, ka es esmu atbildējis uz vairumam taviem jautājumiem. Tā kā gaidi rezultātus un tad varēsi kritizēt. Valoda ka tāda nav līdz galam izstrādāta, jo izstrādes gaitā var rasties šādas tādas idejas. bet kopumā svarīgākās lietas ir deklarētas - tas ir es ar mierīgu sirdi varu rakstīt savu kompilatoru. Domājams, to es taisīšu kā Open Source, lai citi varētu to algoritmus uzlabot, kļūdas atrast un citādāk uzlabot, bet tas vēlāk līdz es pabeigšu.

Link to comment
Share on other sites

Vispaar, man dikti ozj peec Visual Basic. Esi ieveerteejis? It seviskji .NET versijaa tas ir pavisam vienkaarshs. Nu, tikai pointeru nav. :p

Link to comment
Share on other sites

Izklausās gana interesanti, un tīri mācību nolūkos arī ieteicami.

Tikai redzi, kas ir- tas, ka valoda ir vienkārša, bet spēcīga, vēl nenozīmē, ka tai būs lietotāji.

Paņemsim kaut vai to pašu Python. Cik noprotu no tava apraksta, Poseidon būs kaut kas līdzīgs Pythonam (pieveram acis uz to, ka Python ir interpretēts). Kādas priekšrocības es gūtu, ja izvēlētos Poseidon?

Pythonam ir salīdzinoši liels code-base, daudz sampļu, extension'u, moduļu, bindingu etc. Bet tavai valodai? Kāda jēga lietot valodu, kurā bez koda rakstīšanas no nulles nekas advancētāks par hello world nesanāks (nu ok- pārspīlēju, bet domu sapratāt).

 

Bet tā- tīri akadēmiskiem mērķiem doma ir apveicama.

 

P.S. Piekrītu Nettwerk- crossplatformiskums owns. Pietiek jau ar to, ka tu esi kodējis kompileri ar domu- ja nu savajagās noportēt, jo tas ļoti atvieglotu portēšanu priekš citām platformām.

Link to comment
Share on other sites

doomaaju ka ir veerts sadarboties ar kaadaam izgliitiibas iestaadeem - sitaadus projektus uz pasiniciatiivu biidiit ir diezgan smagi, bet sadaliit pa posmiem un iedot kaadiem studentiem par diplomdarbu vareetu buut diezgan perspektiivi. - protams kontrole un vadiiba , sadarbiibas lietas tas viss buutu jaaizdonaa un jaatstraadaa. Protams vai kaads tevi ņems nopietni un aizrausies ar tavu ideju jau ir cits jautājums.

taa taada asa ideja.... :roll:

Link to comment
Share on other sites

SPUHPointer

Nez, es uzskatu, ka par c veidīgo valodu nekā sakarīgāka nav. Pašlaik modes kliedziens c#. Pastrādājot kādu laiku ar šo valodu, pēc tam paliek neomulīgi skatīties uz VB vai Pascal kodu, nezinu kapēc, iespējams tā sintakse par garu ... Begin ... End... Kam tas vajadzīgs?

Link to comment
Share on other sites

Man te nesen ienaaca prataa ideja par valodu, kas taisiitu platform-independent programas. Tas ir programmas, kas straadaatu gan uz PC, gan uz Mac utt. Izklausas nereaali, bet teoretiski tas ir iespeejams un praktiski arii.

Gribeetu dzirdeet juusu domas par to, vai ir vispaar jeega no tas...

Platform independant programmas? t.i. nokompilē programmu uz vienas os, un viņa strādā uz visām, turklāt kā native programma?

Tā gan neies cauri, jo katrai platformai ir savādāks executable formāts. Vienīgais veids, kā to varētu izdarīt, ir kā tas tiek darīts iekš java- programma tiek nokompilēta uz java baitkodu, uz platformas, uz kuras tiek palaista programma, tā tiek translēta attiecīgajos OS api izsaukumos utt.

 

Nez, es uzskatu, ka par c veidīgo valodu nekā sakarīgāka nav. Pašlaik modes kliedziens c#. Pastrādājot kādu laiku ar šo valodu, pēc tam paliek neomulīgi skatīties uz VB vai Pascal kodu, nezinu kapēc, iespējams tā sintakse par garu ... Begin ... End... Kam tas vajadzīgs?

Nu vēl jau var skatīties arī python virzienā- lai gan tas ir interpretēts, tam pat nav begin un end. ;-)

Link to comment
Share on other sites

  • 2 months later...

es vispaar arii kaadreiz sapņoju par savas valodas izveidi, varbuut varam kaut ko kopaa sabiidiit??

 

laikam jau esi arii gudrs, ka saac domaat pa savu programeeshanas valodu :D

Link to comment
Share on other sites

Guest drunk_lizard

ljoha, beidz dzert

vai vismaz uzkod.....

pri cjom te procesori

tak njem un kodee masjiinkodaa

krosplatformu es sapratu ar dazjaadu os atbalstu....

Link to comment
Share on other sites

  • 1 year later...

Izstraade saakas ar analiizi un dokumentaaciju. Un dokumentaacija nav keepaajumi uz paiira lapas blakus kaarbai un koda commenti.

 

99% lieli entuziastu projekti, lai arii ar labu domu, izgaazhas, ja netiek gana veeriibas pieveersts projekta vadiibai. Pats jau peec kaada gada nefiga neorenteesies savaa darbaa bez struktureetas dokumentaacijas, varbuut vieniigi ja kaads sponsors tevi uzturees un tu 100% sava laika vareesi tikai shim taskam atveeleet, tad varbuut ar commentiem pie koda pietiks.

 

Nevar saakt rakt graavi(programeet), kameer nav zinaams cik dzlju un kaadaa virzienaa jaarok!(nosaka ar analiizi, dokumenteejot, citaadi, ja viss galvaa, paaraak daudz pielaides un workaroundi tiks pieljauti, kaa rezultaataa chiks vien sanaaks, un ja ir labi nodokomenteets "melno darbu" var arii kaadam citam iedot ;) )

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...