-
Data: 2014-11-11 21:48:46
Temat: Re: Makra w jezyku Scheme
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu wtorek, 11 listopada 2014 10:43:39 UTC+1 użytkownik firr napisał:
> c jest bardzo abstrakcyjny,
nie zgodze sie. C stanowi lekka abstrakcje ponad maszynami von Neumannowskimi.
To ze masz takie rzeczy jak typy char, short, int i inne, ktore odpowiadaja
rejestrom maszynowym, pokazuje, w jak duzej mierze C jest zwiazany ze
specyficzna klasa maszyn obliczeniowych. To, ze masz wskazniki, pokazuje,
jak bardzo jest przywiazany do tablicowego modelu pamieci.
> co do owego scheme
> to ciagle ciezko mi ocenic, ale szczerze mowiac nie jestem przekonany tj nie wierze
tak jakby apriori ze problemy w scheme latwiej jest wyrazic/rozwiazac w scheme niz w
c (powazne problemy (wezmy na przyklad konkretne przykladowe problemy
> 1"napisanie dobrego raytracera z dobra optymalizacją" albo
> 2"napisanie dobrego podsystemu fizyki (zderzen itp) 2d/3d"
> tak naprawde musisz rozwiazac jakby poza językiem, czy to ze bedziesz przy tym
uzywac
> jakiegoś jezyka (mozna wstawic dowolny) cośkolwiek tu pomoże ?
> - pytanie jest poniekad otwarte bo pewnosci ze nie pomoze nie mam, ale nie wiem
jak (wiec to ze pomoze jest tylko hipotezą), sam z siebie jakos nic nie widze - na
oko wyglada po prostu na to ze te problemy musisz rozkminic i rozwiazac na
pozajęzykowym polu -- z drugiej
> strony tworzenie czegos takiego obejmuje nie tylko rozkminianie ale tez i
testowanie wiec jezyk i srodowisko mogloby miec pewne znaczenie
> (moze bardziej nawet srodowisko typu edytor niz sam jezyk)
>
> koniec konców po rozpykaniu tematu (albo odpadnieciu bo czasem jest to na tyle
czasochlonne ze mozna stracic motywacje) mozna to zaimplementowac i to jest chyba
mniejsza czesc problemu, ja moge to wtedy zrobic w c
> bo jest to elegancjkie, dosyc wydajne i dosyc łatwe
Ostatnio w ramach swojego projektu zajmuje sie kinematyka odwrotna.
Znalazlem metode, ktora opiera sie na dekompozycji macierzy wzgledem
wartosci osobliwych. Po poszperaniu w sieci udalo mi sie wyszukac
pakiet do obliczen numerycznych i symbolicznych dla Scheme'u.
Znalazlem w tym pakiecie odpowiednia funkcje, i okazalo sie, ze ma
ponad 400 linii. Byl przy niej komentarz (autorstwa Geralda Sussmana),
ze funkcja zostala przepisana z kodu jakiegos innego
systemu Lispowego, ktory z kolei byl przerobiona wersja algorytmu
napisanego w fortranie.
Ten kod jest dla mnie przykladem tego, jak nie nalezy pisac programow.
Napisal go Sussman -- jeden z moich najwiekszych autorytetow i wielki
propagator idei, ze programy powinny byc pisane przede wszystkim tak,
zeby dobrze sie je czytalo.
Wysoki stopien optymalizacji i czytelnosc programow to nie sa sprzeczne
cele. Wydaje mi sie, ze to raczej nasze techniki programowania sa
niedorozwiniete.
Moim zdaniem idealny program powinien stanowic zapis rozumowania,
ktory przeprowadza programista. Programista powinien wypisywac swoje
zalozenia i twierdzenia, ktore nastepnie kompilator moglby wykorzystywac
do optymalizacji kodu.
Na przyklad, programista powinien wklepac do programu to, czym jest macierz
i na czym polega mnozenie macierzy, i nastepnie okreslic, jake sa wlasnosci
poszczegolnych macierzy zdekomponowanych w oparciu o SVD, i ewentualnie
kilka twierdzen pomocniczych (np. tych, ktore posluzyly do stworzenia algorytmu
w fortranie), natomiast kompilator powinien wypluc optymalny algorytm
faktoryzujacy.
> > > - nie wiem czy chce w to wszystko wnikac, mam ciagle problem z czasem i
energią. to zo mnie teraz glownie interesuje to piksele (zwane przezemnie
programistycznym piachem)
> >
> > a udalo Ci sie w ostatnim czasie opracowac jakies nowe ciekawe rzeczy?
>
> narazie nie,
ja u siebie zauwazylem cos takiego, ze moj projekt przez wiekszosc czasu
stoi w miejscu, az w koncu cos we mnie dojrzeje i dokonam jakiegos przelomu
(i potem znow stoi w miejscu...)
Następne wpisy z tego wątku
- 11.11.14 23:01 firr
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-11 Warszawa => Kierownik ds. kluczowych Klientów <=
- 2025-03-11 Łódź => System Administrator (Linux, Active Directory) <=
- 2025-03-10 roaming
- 2025-03-10 wodor
- 2025-03-10 Ostrów Wielkopolski => NodeJS Developer <=
- 2025-03-10 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-10 Częstochowa => Backend Developer (Node + Java) <=
- 2025-03-10 Poznań => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produkc
- 2025-03-10 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-03-10 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-10 Chiny-Kraków => Senior PHP Symfony Developer <=
- 2025-03-10 Szczecin => Key Account Manager IT <=
- 2025-03-10 Warszawa => Node.js / Fullstack Developer <=
- 2025-03-10 Warszawa => Data Engineer (Tech Leader) <=
- 2025-03-10 Gliwice => Business Development Manager - Network and Network Security