Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Erikoinen ohjelmointikieli haussa

Sivun loppuun

KoodiNoppa [09.06.2007 17:07:47]

#

Onko kellään kokemusta kielestä, jolla saa monta silmukkaa samaan aikaan?
Eli jotenkin näin (kömpelö esimerkki):

SuoritaMontaSilmukkaa:
Silmukka A:
pluslasku
Silmukka B:
äärimmäisen monimutkainen laskutoimitus
Lopeta SuoritaMontaSilmukkaa

Tässä tapauksessa Silmukkaa A suoritettaisiin paljon useammin kuin Silmukkaa B. Kumpikin silmukka olisi while-looppi,joita suoritetaan niin nopeasti kuin pystyy, aivan kuin kummallekin olisi oma tietokone, joka keskittyy vain yhteen silmukkaan.
Toivottavasti saatte selvää, en osaa sen paremmin selittää...

Jos on valinnanvaraa kielistä, niin seuraavat seikat olisivat plussaa:
-Samantapaisuus C:n kanssa
-Ehdot silmukoille
-Minimi/maksimi silmukan tehonkäytölle

tesmu [09.06.2007 17:29:41]

#

Tuollainen hoituu threadilla esim linuxissa posix ja windowsissa create_thread api... tjtn

Sami [09.06.2007 18:53:13]

#

Java.

Alla on pieni esimerkki kahdesta luokasta, jotka toteuttavat Runnable-rajapinnan ja joita ajetaan omissa säikeissään rinnakkain. Esimerkissä säikeitä suoritetaan ikuisessa silmukassa. (Edit: korjattu hieman kuvausta).

public class ThreadDemo {
	public static void main(String[] args) {
		new Thread(new Thread1()).start();
		new Thread(new Thread2()).start();
	}
}

class Thread1 implements Runnable {
	public void run() {
		while (true) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
			}
			System.out.println("Thread1 suoritti silmukan loppuun");
		}
	}
}

class Thread2 implements Runnable {
	public void run() {
		while (true) {
			try {
				Thread.sleep((int)(Math.random() * 100) + 20);
			} catch (InterruptedException e) {
			}
			System.out.println("Thread2 suoritti silmukan loppuun");
		}
	}
}

Deewiant [09.06.2007 18:55:36]

#

Wikipediasta voi katella: http://en.wikipedia.org/wiki/Category:Concurrent_programming_languages

KoodiNoppa [09.06.2007 19:14:54]

#

Hmm. Löysin tuolta listasta C#:n, onko sille ilmaista kääntäjää? Sehän on M$:n kehittämä eikä mikään sen tekemä ole ilmaista...

Ja noi windowsin omat thread-systeemit on varmaan liian monimutkasia mulle :(

Codeprofile [09.06.2007 19:19:01]

#

KoodiNoppa kirjoitti:

Hmm. Löysin tuolta listasta C#:n, onko sille ilmaista kääntäjää?

Kääntäjistä ei tietoa ainakaan minun osalta, mutta IDE olis SharpDevelop.

latauslinkki: http://www.softpedia.com/get/Programming/Other-Programming-Files/SharpDevelop.shtml

Pekka Karjalainen [09.06.2007 19:34:54]

#

Google antoi tällaisen sivun. Siellä on useita C#-kääntäjiä, mitä katsella. Ilmaisiksi väittää.

http://www.thefreecountry.com/compilers/csharp.shtml

Nikotiini [09.06.2007 20:19:06]

#

Mono olisi toki ilmainen kääntäjä. Toimii Linuxissa, Windowsissa ja Macissä.

Tumpelo [09.06.2007 21:14:58]

#

C#:lle löytyy ihan Microsoftin omakin kehitysympäristö kääntäjineen, Visual Studio 2005 Express Edition. Minä käytän sitä ja tyytyväinen olen. Siinä ei ole mitään rajoituksia esim. projektien julkaisussa ja "exporttaamisessa".

http://msdn.microsoft.com/vstudio/express/visualcsharp/

Ja vaikka tuosta kovasti mainostetaan että voi helposti suunnitella drag'n drop -menetelmällä ohjelmia tms niin voi siis ihan oikein koodatakin. Itse en ole itseasiassa tuolla muuta tehnyt kuin vääntänyt raakaa koodia DirectX sovelluksiin. \o/

feenix [11.06.2007 17:04:22]

#

KoodiNoppa kirjoitti:

Hmm. Löysin tuolta listasta C#:n, onko sille ilmaista kääntäjää? Sehän on M$:n kehittämä eikä mikään sen tekemä ole ilmaista...

Ai? Microsoftilta saat C, C++, C#, VB.NET jne kääntäjät ihan maksutta. Ja vielä IDEtkin löytyy ilmaiseksi. Tietysti joudut maksamaan netistä, tietokoneesta jne, että ei kai tämä kelpaa ilmaisuuden määritelmään?

Ja .NETissä BackgroundWorker on pop samanaikaisiin hommiin. Ei tarvitse itse välittää säikeistä, senkun sanoo että "ajapa tuota taustalla" ja kun on valmis, tulee viesti. Ja voit vielä tietysti väliaikatietojakin lähetellä, jos haluat.

Schedler [13.06.2007 21:50:36]

#

Sitten on myös tietenkin Ada, josta löytyy rinnakkaisuuteen liittyen kaikki kellot ja pillit.

Esimerkiksi alkuperäisen kysyjän suoritusajan rajoitus silmukalle näyttää tältä:

select delay 1.0;   -- Rajoitetaan do_some_work -aliohjelman
then abort          -- suoritusaika 1.0 sekuntiin.
   do_some_work;
end select;

Sitten on tietysti transputereissa aikoinaan käytetty occam (nykyisin todennäköisemmin occam-2), jossa loopit saa rinnakkaiseksi seuraavasti:

PAR
  loop_1
  loop_2

Näistä kielistä sen verran, että occam-2 on melko eksoottinen, mutta Adasta julkaistiin juuri tänä vuonna uusittu standardi ISO/IEC 8652:1995/Amd 1:2007, eli kieli elää ja kehittyy. Ja uusitun standardin myötä on taas modernein standardoitu oliokieli :)

KoodiNoppa [14.06.2007 22:07:07]

#

Mono vaikuttaa ihan kivalta, kun siinä on tuki niin monelle kielelle... Jos siihen vielä tulee tuki tuolle Adalle, niin aika varma valinta.

P.S.Enpäs tiennyt että ne Microsoftin kääntäjät on ilmasia. Nyt hävettaa :o

Nikotiini [16.06.2007 03:07:53]

#

http://www.usafa.af.mil/df/dfcs/bios/mcc_html/a_sharp.cfm <- Katso tuo. Monossa on tarkoituksena portata .net-ohjelmat Windowsissa, Linuxissa ja Macissa toimiviksi.

panttu [17.06.2007 23:05:32]

#

Microsoftilla on kovatarve saada tuo .net tekniikka yleiseen käyttöön, kun sillä tuntuu olevan jonkinlainen halu tehdä tulevasta windowsista .netin ympärille rakennettu täysin uusi käyttis, jossa perinteiset 9x, XP ja Vista ohjelmat eivät enää toimisi ellei ne ole .net-ohjelmia tai java ohjelmia. Syy moiseen muutokseen on tietoturva. Siitä johtuu varmaankin tuo Microsoftin innostus jakaa kehitsvälineet ilmaiseksi.

Wikissä wanhaa tietoa! Uusimmasta artikkelistä tuo väite onkin poistunut.

Metabolix [17.06.2007 23:54:07]

#

panttu kirjoitti:

Syy moiseen muutokseen on tietoturva.

Ei kai sentään tietoturva? Enemmänkin rahastusta epäilisin, siis käytönvalvontaa.

Blaze [18.06.2007 00:22:20]

#

Tietoturva siinä mielessä, että kun softat kirjotetaan managed codella (keksikää itse sopiva suomennos) C++:n sijaan, jää puskuriylivuodot tapahtumatta.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta