Wo findet man Programmierer?

Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> writes:
<Ada>
0% C, 0% C++, 100% Hardware.
Hm, ich kann jetzt nur den Ada-Abkömmling VHDL, aber irgendwie sieht das für mich
hauptsächlich nach Definitionen und Datenstrukturen aus. Gibt's da auch
echte Funktionalität drin?

OT: Was nutzt du als Compiler? Wäre sicher nett, mal die HW in VHDL und die SW in
Ada zu implementieren ;-)

--
Georg Acher, acher@in.tum.de
http://wwwbode.in.tum.de/~acher
"Oh no, not again !" The bowl of petunias
 
Georg Acher wrote:

Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> writes:
Ada
0% C, 0% C++, 100% Hardware.

Hm, ich kann jetzt nur den Ada-Abkömmling VHDL, aber irgendwie sieht
das für mich hauptsächlich nach Definitionen und Datenstrukturen aus.
Ja, richtig. Im Gegensatz zu C uebernimmt der Compiler das Bitshiften
und Maskieren, solche nervenaufreibenden Funktionen muss ich also nicht
mehr selbst schreiben.

Gibt's da auch echte Funktionalität drin?
Die ist inklusive. Genauer: Die bekommst Du, sobald Du den passenden
Variablen Werte zuweist, das koennte in der Praxis dann z.B. ungefaehr
so aussehen:

-- outputs a triangle form on the DC_DAC
procedure Do_Triangle (Corr : Offset := 0) is
begin
for Data in DAC_Range'Range loop
DC_DAC := Registers.To_Register (Data & Corr);
delay 0.001; -- 1 kHz
end loop;

for Data in reverse DAC_Range'Succ (DAC_Range'First) ..
DAC_Range'Pred (DAC_Range'Last) loop
DC_DAC := Registers.To_Register (Data & Corr);
delay 0.001; -- 1 kHz
end loop;
end Do_Triangle;

Vorsicht, Testcode. Reines "proof of concept".

OT: Was nutzt du als Compiler?
GNAT, Zielplattform MaRTE. <http://marte.unican.es>

Wäre sicher nett, mal die HW in VHDL
und die SW in Ada zu implementieren ;-)
Ich koennte mir nichts anderes mehr vorstellen. ;-)


Vinzent.

--
worst case: The wrong assumption there actually is one.
 
Axel Schwenke wrote:

"MaWin" <me@private.net> wrote:
"Rainer Buchty" <buchty@atbode100.lrr.in.tum.de> schrieb

p2c

Jemals ausprobiert mit einem ernsthaften Programm ?
Eindeutig nicht.

Es gibt keine ernsthaften P Programme.
Doch, gibt es.

Zumindest keine, die man portieren wöllte.
Doch, auch das. Aber ganz sicher nicht mit p2c.


Vinzent.

--
worst case: The wrong assumption there actually is one.
 
Joerg Wunsch wrote:

Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> schrieb:

Ja, richtig. Im Gegensatz zu C uebernimmt der Compiler das
Bitshiften und Maskieren, solche nervenaufreibenden Funktionen muss
ich also nicht mehr selbst schreiben.

Das verstehe ich jetzt nicht?
Musst Du ja auch nicht. Ich weiss, dass es C-Programmierer da schwer
haben. ;->

Was macht der Ada-Code hier, was man nicht in C machen könnte?
ITYM, "was man in C sonst selbst machen muesste":

|Foo : SDRAM_Timing_Control;
|[...]
|Foo.Cas_Lat := 3;

Das gleiche in C:

|volatile uint8_t * foo = (void*) 0xE400000;
|
|/* set CAS latency to 3 */
|*foo |= (1 << 4);

IOW: "1 means 3 and it is the 1 bit at position 5".


Vinzent.

--
worst case: The wrong assumption there actually is one.
 
Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> schrieb:

Ja, richtig. Im Gegensatz zu C uebernimmt der Compiler das
Bitshiften und Maskieren, solche nervenaufreibenden Funktionen muss
ich also nicht mehr selbst schreiben.
Das verstehe ich jetzt nicht? Was macht der Ada-Code hier, was man
nicht in C machen könnte?

--
cheers, J"org .-.-. --... ...-- -.. . DL8DTL

http://www.sax.de/~joerg/ NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
 
Vinzent 'Gadget' Hoeflerschrieb:
"
Joerg Wunsch wrote:

Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> schrieb:

Ja, richtig. Im Gegensatz zu C uebernimmt der Compiler das
Bitshiften und Maskieren, solche nervenaufreibenden Funktionen muss
ich also nicht mehr selbst schreiben.

Das verstehe ich jetzt nicht?

Musst Du ja auch nicht. Ich weiss, dass es C-Programmierer da schwer
haben. ;-

Was macht der Ada-Code hier, was man nicht in C machen könnte?

ITYM, "was man in C sonst selbst machen muesste":

|Foo : SDRAM_Timing_Control;
|[...]
|Foo.Cas_Lat := 3;

Das gleiche in C:

|volatile uint8_t * foo = (void*) 0xE400000;
|
|/* set CAS latency to 3 */
|*foo |= (1 << 4);

IOW: "1 means 3 and it is the 1 bit at position 5".
Schon mal was von Bitvariablen in C gehört?

Dirk
 
Dirk Ruth wrote:

Vinzent 'Gadget' Hoeflerschrieb:
"
Joerg Wunsch wrote:

Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> schrieb:

Ja, richtig. Im Gegensatz zu C uebernimmt der Compiler das
Bitshiften und Maskieren, solche nervenaufreibenden Funktionen muss
ich also nicht mehr selbst schreiben.

Das verstehe ich jetzt nicht?

Musst Du ja auch nicht. Ich weiss, dass es C-Programmierer da schwer
haben. ;-

Was macht der Ada-Code hier, was man nicht in C machen könnte?

ITYM, "was man in C sonst selbst machen muesste":

|Foo : SDRAM_Timing_Control;
|[...]
|Foo.Cas_Lat := 3;

Das gleiche in C:

|volatile uint8_t * foo = (void*) 0xE400000;
|
|/* set CAS latency to 3 */
|*foo |= (1 << 4);

IOW: "1 means 3 and it is the 1 bit at position 5".

Schon mal was von Bitvariablen in C gehört?
Ja.

Schon mal was davon gehoert, dass die "implementation defined" sind? Und
selbst dann ist es nicht moeglich, 0 (physisch) auf 2 (logisch) und 1
(physisch) auf 3 (logisch) mappen zu lassen. Abgesehen von dem zwingend
notwendigen volatile-Quatsch an alen Ecken und Enden und der Tatsache,
dass ich bei den memory-mapped Variablen explizit auf Pointer
zurueckgreifen muss, wobei die Konvertierung int (Speicheradresse) ->
pointer nicht mal mehr "implementation defined", sondern sogar
"undefined" behaviour ist.

Mir ist fuer so einen Unsinn meine Zeit zu schade.


Vinzent.

--
worst case: The wrong assumption there actually is one.
 
Markus Becker schrieb:

Beispiel Siemens S45i:

Mal ist 'Ok' links, 'Abbrechen' rechts. Dann wieder 'Nein' links,
und 'Ja' rechts. KrankKrankKrank.
Im Gegentum: Bist Du im "Meldung löschen?"-Dialog, weil Du mit der linken
inneren Taste gerade alle Meldung durchgescrollt hast, ist diese Taste
"Nein", damit Du gefahrlos zur nächsten Nachricht kommst und nicht die
Taste wechseln mußt. Hast Du im Meldung-Optionsmenü mit der rechten Taste
explizit "Meldung löschen" ausgewählt, ist rechts "Nein".
Die Taste, die etwas "gefährliches" auslöst ist immer die, die zuletzt
_nicht_ benutzt wurde.

Gruß
Henning
--
henning paul home: http://www.geocities.com/hennichodernich
PM: henningpaul@gmx.de , ICQ: 111044613
 
Joerg Wunsch wrote:

Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> schrieb:

Und selbst dann ist es nicht moeglich, 0 (physisch) auf 2 (logisch)
und 1 (physisch) auf 3 (logisch) mappen zu lassen.

Was machst du eigentlich, wenn das Mapping nicht mehr 1:1 abbildbar
ist?
Je nach Problemstellung gibt es dann variante Records oder
Aufzaehlungstypen.

dass ich bei den memory-mapped Variablen explizit auf Pointer
zurueckgreifen muss,

Nö, wenn du eine passende Programmierumgebung hast, bei der der Linker
das ordentlich organisiert, kannst du auch mit normalen Variablen
arbeiten (zugehörige section wird auf entsprechende Adressen beim
Linken gemappt).
Toll. Und warum sollte ich mir das antun?

wobei die Konvertierung int (Speicheradresse) -> pointer nicht mal
mehr "implementation defined", sondern sogar "undefined" behaviour
ist.

Wo hast du den Schwachsinn her?
|An integer may be converted to any pointer type. Except as previously
|specified, the result is implementation-defined, might not be correctly
|aligned, might not point to an entity of the referenced type, and might
|be a trap representation.

|A pointer to an object or incomplete type may be converted to a pointer
|to a different object or incomplete type. If the resulting pointer is
|not correctly aligned for the pointed-to type, the behavior is
|undefined.

Was also so gut wie aequivalent zu "undefined" ist.

Das Ergebnis ist sehr wohl implementation-defined, und du weißt
natürlich genausogut wie alle anderen, wie die Implementierungen das
definieren.
Ja. Fuer jede Implementation einzeln. D.h. unter Umstaenden auch
abhaengig vom gerade gueltigen Speichermodell.


Vinzent.

--
worst case: The wrong assumption there actually is one.
 
Vinzent 'Gadget' Hoefler <nntp-2005-02@t-domaingrabbing.de> schrieb:

Und selbst dann ist es nicht moeglich, 0 (physisch) auf 2 (logisch)
und 1 (physisch) auf 3 (logisch) mappen zu lassen.
Was machst du eigentlich, wenn das Mapping nicht mehr 1:1 abbildbar
ist?

dass ich bei den memory-mapped Variablen explizit auf Pointer
zurueckgreifen muss,
Nö, wenn du eine passende Programmierumgebung hast, bei der der Linker
das ordentlich organisiert, kannst du auch mit normalen Variablen
arbeiten (zugehörige section wird auf entsprechende Adressen beim
Linken gemappt).

wobei die Konvertierung int (Speicheradresse) -> pointer nicht mal
mehr "implementation defined", sondern sogar "undefined" behaviour
ist.
Wo hast du den Schwachsinn her?

Das Ergebnis ist sehr wohl implementation-defined, und du weißt
natürlich genausogut wie alle anderen, wie die Implementierungen das
definieren.

--
cheers, J"org .-.-. --... ...-- -.. . DL8DTL

http://www.sax.de/~joerg/ NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
 
Oliver Bartels schrieb:

Jetzt lach bitte nicht, aber viele Rennfahrer bremsen mit dem
*linken* Fuß und bei den Rennmoppeds läuft aus gutem Grund
(Hochschalten in der Kurve) die Schaltung auch umgekehrt wie bei
Strassenmaschinen.

Und stell' Dir vor: Ich kann von einer Minute auf die andere von
meinem Mopped (Gas drehen mit rechter Hand, bremsen vorne
mit rechter Hand, Schalten mit linkem Fuß usw.) auf mein Auto
(Gas mit rechtem Fuß, Schalten mit Tipptronic) oder ein anderes
mit Schaltgetriebe (Kupplung mit linkem Fuß, schalten mit der
rechten Hand, also da, wo beim Mopped das Gas ist ... )
umsteigen, ohne dass dies zu Problemen führt.

Und ganz viele andere Menschen können das auch ...

Und es passiert überhaupt nicht, daß Erstbenutzer eines Wagens
Automatikgetriebes denselben mal eben gegen ein anderes Auto setzen,
oder anderen Flurschaden verursachen.

GG, Ironietags bitte selber setzen.
 
Dieter Wiedmann schrieb:

[über PCs und Toaster]
An der Ähnlichkeit zum Toaster wird gearbeitet, zunächst mal im Bezug
auf die Heizleistung. Der Rest kommt später.
Mac Mini ...

GG
 
Axel Schwenke schrieb:
"MaWin" <me@private.net> wrote:

Aber sonst gehts dir noch gut? Mich in einen Topf mit Microsoft ...
grummel
Das grenzt ja schon fast an Beleidigung, oder Axel? 8-D

GG
 
"Vinzent 'Gadget' Hoefler" <nntp-2005-02@t-domaingrabbing.de> schrieb im
Newsbeitrag news:1381700.8DliNq6zaD@jellix.jlfencey.com...

|Foo : SDRAM_Timing_Control;
|[...]
|Foo.Cas_Lat := 3;

Das gleiche in C:

Falsch.

SDRAM_Timing Control Foo;
Foo.Cas_Lat = 3;


So was passiert nur, wenn man v o n C k e i n e
b l a s s e s t e A h n u n g hat.


Die restlichen 16 KILOBYTE dummes ADA-Programm wollen wir mal nicht
kommentieren, so viel Gelaber ist eher fuer Frauen am Gartenzaun.
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
 
Martin Klaiber schrieb:
Bernhard Walle <bernhard.walle@gmx.de> wrote:
* Manfred Kuhn [04.02.2005 23:23]:

Es gibt noch Kylix. Ich nutze es auf SuSE-Linux 9.0 ohne probleme.

Wer eine leistungsfähige, portable Sprache mit pascalähnlicher Syntax
sucht, kann sich auch mal Ada anschauen. Die Sprache wurde immerhin
für solche Zwecke entworfen (Programmierung von Satelliten, u.ä.),
ist echtzeitfähig, standardisiert, unterstützt tasks, OO-fähig, usw.
ADA dreht auch den Roboterarm und steuert Fräsmaschinen. Scheint
angebracht zu sein, wenn "Industrie" dabei steht. Hab mir mal ein
teach-in Listing zu einem Montage Roboter angeschaut, sieht nicht so
cryptisch aus wie andere.
Aber ich steh nun mal auf Lisp.

Programmierer würd ich in den Newsgroups zu Delphi suchen, da einfach
mal die gewünschten Anforderungen beschreiben und eine E-Mail
Kontaktadresse drunterschreiben. Sollte sich was bewegen.

lin
 
Oliver Bartels schrieb:

Und stell' Dir vor: Ich kann von einer Minute auf die andere von
meinem Mopped (Gas drehen mit rechter Hand, bremsen vorne
mit rechter Hand, Schalten mit linkem Fuß usw.) auf mein Auto
(Gas mit rechtem Fuß, Schalten mit Tipptronic) oder ein anderes
mit Schaltgetriebe (Kupplung mit linkem Fuß, schalten mit der
rechten Hand, also da, wo beim Mopped das Gas ist ... )
umsteigen, ohne dass dies zu Problemen führt.

Und ganz viele andere Menschen können das auch ...

Nur beim PC ist das Aktivieren der grauen Zellen im
Flexibilitätsareal irgendwie für manche Leute ein ganz ganz
großes Problem ...
Ist doch einfach, Bits sind unsichtbar, man kann sie nicht anfassen und
sie riechen nach nichts. Und sie sind fürchterlich kurzlebig. Eine rein
theoretische Existenz.

Spezialisten auf diesem Gebiet haben meist 2 linke Hände :)

lin
 
Gerald Oppen schrieb:
Olaf Kaluza schrieb:

Naja, ich werd die bisher erhaltenen Tips sicherlich beruecksichtigen,
aber ich bin auch gespannt was das Arbeitsamt vorbeischickt. :-]

Da würde ich nicht all zu viel erwarten... das Arbeitsamt mag noch als
Kontaktadressenverteiler funktionieren, aber wenn die Anfangen selber
zuzuordnen wer auf welchen Arbeitsplatz passen könnte und Bäckermeister
zu einer Firma schickt die Autoradios entwickeln...
Also mal ganz ohne alles, absolut real:

Mich (Bankkaufmann) haben die zum Gitterboxenschweissen geschickt. Voll
toll, endlich hatte ich Gelegenheit einen leibhaftigen Brenner in der
Hand zu halten....

(es konnte leider niemand nachvollziehen das ich damit ein Kupferblech
60x60 durchgeglüht habe, für mein nächstes Ufo halt) *seufz*

lin

Wie man so sagt: Unfälle werden verursacht
 
Rainer Buchty schrieb:
In article <cu32vs$9et$1@online.de>,
"Jan Bruns" <post@abnuto.de> writes:
[schnibbl]

|> Du kannst doch auch deiner Nachbarin nicht ernsthaft das Auswendiglernen =
|> von Kommandozeilenaufrufparametern zumuten wollen.

Doch... Sie kann beim Auto ja auch erlernen, wie man selbiges betankt, startet
und den Reifendruck bzw. Ölstand überprüft. Der Ölmeßstab ist bei jedem
Fabrikat/Hersteller an einer anderen stelle, auch der Tankeinlaß ist mal links,
mal rechts, bei den Amis sogar auch mal hinter dem Nummernschild.

Komischerweise akzeptiert man beim Auto durchaus, wenn das Licht beim einen
Fabrikat als Drehschalter, beim anderen als Dreh-Hebel zu bedienen ist. Beim
Computer hingegen ist diese Varianz geradezu unerträglich, es hat immer alles
so zu sein, wie man es mal (meist unter Windows) gelernt hat.
Aber es ist ein Sicherheits Fiasko, das im Innenraum der Türöffner
grundsätzlich gesucht werden muss (ausser beim eigenen).

lin
 
Olaf Kaluza schrieb:

Man sollte doch meinen wenn mehr als ein Programmierer an einem
Projekt beteiligt sind, das sie sich auch mal ueber ihre Arbeit
unterhalten. Wenigstens beim Mittagessen. [seufz]
Ah neee, da müssen sie sich doch endlich auch mal profilieren :)

lin
 
Matthias Weingart schrieb:

Delphi braucht nur dann Spezial-DLL's, wenn es so eingestellt ist.
Man kann das aber auch "statisch linken", so dass zwar die Exe um
300kBytes groesser wird, aber _keine_ zusätzlichen Dll's usw.
im System benötigt werden. (ein grosser Vorteil gegenüber z.B.
VisualBasic).
Das ist mir dann lieber, weil ich genug davon habe, tagelang
irgendwelche libs zu suchen.
Ist auch irgendwie "ordentlicher".

lin
 

Welcome to EDABoard.com

Sponsor

Back
Top