GeirGrusom Skrevet 28. april 2011 Forfatter Del Skrevet 28. april 2011 Vil ikke auto i C++0x løse noe av dette da? auto v = max(1, 2.0); // Vil returnere double eller er kanskje template argumenter obligatorisk? Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) Vil ikke auto i C++0x løse noe av dette da? auto v = max(1, 2.0); // Vil returnere double eller er kanskje template argumenter obligatorisk? Uten at jeg kjenner til C++0x noe sånn voldsomt eller i detalj vil auto direkte være inne på noe av det vi egentlig snakker om, ja. Endret 28. april 2011 av worseisworser Lenke til kommentar
MailMan13 Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) Mulig det. Sier vel helst at C++0x ikke fantes sist jeg programmerte C++ Mener å huske at man kunne utelate det dersom alle argumentene var entydig også, så max(1,2) ville gå bra og returnerer int, mens max(1, 2.0) ikke ville gå, selv om vanlig covariance tillater tilordning av int til double... Bør kanskje teste det. Edit: Testet i VS2010: int i = max(1, 0); // ok double j = max<double>(1, 1.2); // ok double k = max(1, 1.2); // kompilerer ikke auto l = max(1, 0); // ok, auto utleder int auto m = max<double>(1, 1.2); // ok, auto utleder double auto n = max(1, 1.2); // kompilerer ikke Endret 28. april 2011 av MailMan13 Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 Edit: Testet i VS2010: int i = max(1, 0); // ok double j = max<double>(1, 1.2); // ok double k = max(1, 1.2); // kompilerer ikke auto l = max(1, 0); // ok, auto utleder int auto m = max<double>(1, 1.2); // ok, auto utleder double auto n = max(1, 1.2); // kompilerer ikke Jepp. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) I C++ (om man ser stort på det, som en "supermengde av C") løses det enkelt ved templates og overloading, Skrev om dette i midten av nitti årene og postet koden på nettet for noen år siden: http://www.forumnorway.com/viewtopic.php?t=500 Neste poster har jo også gitt et eksempel. Jeg koder svært sjelden på forum, da det tar for mye tid. Jeg leser også svært sjelden omfattende kode av samme grunn. Har nok med å viderutvikle 50 domener. Endret 28. april 2011 av Slettet+9871234 Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) Neste poster har jo også gitt et eksempel. Ja, og det en var ute etter her var altså ikke mulig. Ugh, eller jeg orker egentlig ikke å gå inn på dette da poenget er at type-informasjon "sendes rundt" helt implisitt (type inference), "hele tiden", eller at kombinasjonen av dette i videre sammenheng med språk en kan uttrykke seg både statisk og dynamisk på er interessant eller "kult" selv om det er fint lite mulig og i hvert fall ikke enkelt i C++ sånn spesifikt (ikke så interessant), og foreløpig også sterkt begrenset i selv mer moderne eller "akademiske" språk (synd). Endret 28. april 2011 av worseisworser Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) Du leser det som om det står "Class is not Type"? Leste du mine poster #43 og #44? Der står langt mer om typing og de finere detaljer i ovenfor nevnte bok av professor Blair http://www.comp.lancs.ac.uk/department/staff.php?name=gordon et. al. fra Lancaster Universitet i England. Omtalte bok er svært spennende, da det også viser en annen tilnærmig til OO enn den skandinaviske skolen. Delegation er for eksempel et stort felt. Her er jeg imidlertid på tynn is med å hevde at delegation er stemoderlig behandlet av den Skandinaviske skolen. Den som er svært interesset bør skaffe seg omtalte bok. Jeg kan ikke repetere det for dere nå. En tid siden jeg leste emnet. Vil ikke auto i C++0x løse noe av dette da? auto v = max(1, 2.0); // Vil returnere double eller er kanskje template argumenter obligatorisk? Jeg kjenner ikke den aller siste utviklingen av C++. Som sagt arbeidet jeg mest med språket i 90 årene. Nå er PHP viktigst av naturlige grunner. Det ser ut til at det samme gjelder andre så vi skulle nok være litt mer varsomme med å dømme C++. Der har sikkert skjedd en del siden 90 årene. Endret 28. april 2011 av Slettet+9871234 Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 Ja, og det en var ute etter her var altså ikke mulig. Ugh, eller jeg orker egentlig ikke å forklare dette; Det bør du forklare. poenget er at type-informasjon "sendes rundt" implisitt (type inference) -- eller at kombinasjonen av dette i videre sammenheng med språk en kan uttrykke seg både statisk og dynamisk på er interessant eller "kult". Uten at det er viktig. Hvilket språk er Lisp og F# skrevet i? Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) Uten at det er viktig. Hvilket språk er Lisp og F# skrevet i? Her blander du språk og implementasjon av språk, men jeg kan velge å være grei og ikke late som om jeg ikke forstår hva du egentlig mener. SBCL er ett eksempel på en implementasjon av Lisp (Common Lisp), og SBCL er skrevet i C (GC'en spesielt; d.v.s. små deler av de lavnivåmessige delene av run-time'en) og Common Lisp. Selve kompileren, både høy- og lavnivå-biten, er skrevet i Common Lisp og genererer "ren" X86 eller X86-64 maskinkode. Det samme gjelder kompiler- og run-timestøtte i sammenheng med OOP-støtten i språket m.m.. D.v.s. at alt det interessante i denne sammenhengen er skrevet i Common Lisp. (edit: med "interessant" mener jeg at selv om bootloaderen til Linux er skrevet i ASM, sier en at Linux er skrevet i C fordi det er helt klart at dette er tilfelle når en tar for seg det aller meste av interesse når en tenker Linux .. det går heller ikke an å tenke LOC da en i et annet univers kan se for seg at "C" kunne ha vært veldig, veldig konsist, men altså helt klart fortsatt det mest interessante..) SBCL kan ikke en gang bootstrappes fra GCC; en trenger SBCL eller en annen Common Lisp kompiler for å kompilere SBCL. Videre har en ting som Lispmaskiner ( http://en.wikipedia.org/wiki/Lisp_machine ) og Movitz ( http://common-lisp.net/project/movitz/ ). Endret 28. april 2011 av worseisworser Lenke til kommentar
GeirGrusom Skrevet 28. april 2011 Forfatter Del Skrevet 28. april 2011 Lisp er sikkert skrevet i lisp, og F# er sikkert skrevet i F#. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) En kan si at en ønsker samme oppførsel som i C ("hjernedød" roll-around ved overflow), og kompileren vil da generere ennå enklere, "kjappere", kode. Vil påstå at det (statisk utleding av typeinformasjon vs dynamiske typing) ikke er løst i C++ siden man, med et unntak jeg kommer på, eksplisitt må mate inn typenavn hele veien. Funksjonelle språk er alle funksjoner generiske/templates "by default", så man slipper navnespagettien som jager folk bort fra C++ og Java. Ydmykhet postere. Være varsomme med det dere skriver. Hvorfor skrives fortsatt de fleste (nesten alle) språk i C eller C++? Begynn med disse Andrew Koenig "Templates and generic algorithms" JOOP june 1994 "Generic iterators" JOOP September 1994 "Function objects, templates and inheritance" JOOP September 1995 Oppdater dere på språket før dere dømmer det. Jeg tror jeg holder en knapp på Texas professoren http://www2.research.att.com/~bs/ Språk har ulike egenskaper. Å sammenligne C++ med PHP er som å sammenligne epler og pærer. Lisp er sikkert skrevet i lisp, og F# er sikkert skrevet i F#. Hvor sikkert er det? Endret 28. april 2011 av Slettet+9871234 Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) Og hva med BETA og GBETA http://www.daimi.au.dk/~beta/ ftp://ftp.daimi.au.dk/pub/beta/betabook/betabook.pdf http://www.daimi.au.dk/~eernst/gbeta/ Hvor "alt" er et mønster. Hjernedøde eller fortsatt forut for sin tid? Endret 28. april 2011 av Slettet+9871234 Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 *sheesh* .. ok, hvilket ord passer bedre i sammenheng med roll-around ved overflow da? "Mekanisk"? Hva med mangelen på bounds checking o.l.? Skal vi kalle det "enkelt" .. eller "lavnivåmessig" .. eller noe slikt? Lenke til kommentar
GeirGrusom Skrevet 28. april 2011 Forfatter Del Skrevet 28. april 2011 (endret) Lisp er sikkert skrevet i lisp, og F# er sikkert skrevet i F#. Hvor sikkert er det? Ikke hundre prosent sikkert, men det er temmelig standard fremgangsmåte når en lager programmeringsspråk. edit: F# er skrevet i F# Endret 28. april 2011 av GeirGrusom Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 Hva med mangelen på bounds checking o.l.? Skal vi kalle det "enkelt" .. eller "lavnivåmessig" .. eller noe slikt? Lavnivå er mitt ord. Der er grunner til at C er som det er. Der er en rekker kompromisser under utviklingen av C++. Bound checking kan man jo lett gjøre selv. I tillegg finnes der en rekke gode biblioteker som gjør det som for eksempel: http://www.boost.org/. Man trenger ikke finne opp hjulet på nytt. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 Ikke hundre prosent sikkert, men det er temmelig standard fremgangsmåte når en lager programmeringsspråk. Ja om du ikke regner Lua, Python og PHP som språk er muligens det riktig. PHP begynner jo å nærme seg ekte oop med navnerom og multippel arv for interfaces. Men jeg har ikke fått henvisninger enda og da vet jeg ikke hvor godt dere kjenner språkene. Jeg holder meg til PHP, Python, C og C++. Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 Hva med mangelen på bounds checking o.l.? Skal vi kalle det "enkelt" .. eller "lavnivåmessig" .. eller noe slikt? Lavnivå er mitt ord. Greit. (..det er viktig med møter; da får en nemlig avklart når neste møte er, og en får gjort så fryktelig mye..) Lenke til kommentar
worseisworser Skrevet 28. april 2011 Del Skrevet 28. april 2011 Men jeg har ikke fått henvisninger enda og da vet jeg ikke hvor godt dere kjenner språkene. Jeg la til noen linker: https://www.diskusjon.no/index.php?showtopic=1337474&view=findpost&p=17683231 Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 edit: F# er skrevet i F# Takk for det. Naturlige spørsmål: Portabilitet? Betinget kompilering? Inline assembly? Brukerstøtte? Utbredelse større enn BETA og GBETA? Standardisering. Hvor mange jobber med å utvikle språket? Biblioteker? Lenke til kommentar
Gjest Slettet+9871234 Skrevet 28. april 2011 Del Skrevet 28. april 2011 (endret) (..det er viktig med møter; da får en nemlig avklart når neste møte er, og en får gjort så fryktelig mye..) Bruker altfor my tid her og har jo også mine feider i andre forum, der man jo helst bør svare. Jeg la til noen linker: https://www.diskusjon.no/index.php?showtopic=1337474&view=findpost&p=17683231 Takk. @GeirGrusom Meget interessant tråd forresten. Endret 28. april 2011 av Slettet+9871234 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå