-
Data: 2012-10-19 18:54:13
Temat: Re: coś lajtowego - konsola
Od: Baranosiu <r...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 19.10.2012 kenobi <p...@g...com> napisał/a:
> mozna zrobic ten operator przeciazalnym itp,
> jest to troche problematyczne glownie z tego
> powodu ze dotychczas operatory rzutowania
> nie robily tego typo rzeczy, ale raczej
> sklaniam sie ku temu zeby to bylo w jezyku,
> powod jest takie ze gdyby to bylo sporo
> roznego rodzaju kodow w c daloby sie napisac
> bez biblioteki a brak tego wlasnie burzy tą
> ew elegancje - niezrecznosc w porownaniu np
> z konwersjami double na long itp wynka wlasine z tego ze to nie jest
> obslugiwane na poziomie srzetu (a mogloby byc)
Jeśli potrzebujesz przeciążania, to możesz zastosować C++ i samemu
zdefiniować sposób rzutowania takich rzeczy jak (char[])1000 - nie ma
z tym najmniejszego problemu (za wyjątkiem tego, że trzeba to zrobić
raz na całe swoje życie :D). Sam język czym mniej robi "za plecami"
programisty tym lepiej :D Na przykład w Ada gdy zdefiniujesz:
typedef Minuta is new Integer range 0..59;
typedef Sekunda is new Integer range 0..59;
to typy Minuta i Sekunda nie są ze sobą zgodne (mimo że obydwa są
typami całkowitymi o tym samym zakresie) i bardzo dobrze, że tak jest,
bo przecież minuta to 60 sekund i równość jest dopiero gdy
licznik_sekund = 60 * licznik_minut ale skąd kompilator czy procesor
mają to wiedzieć jeśli im się tego jawnie nie "powie"? Nawet takie
"beztypowe" języki jak Python nie zaakceptują ciągu instrukcji:
A="10"
B=A*2
bo coś takiego po prostu świadczy o błędzie programisty i język POWINIEN
wymagać zrobienia B=int(A)*2 bo wtedy jest pewność, że programista wie
co robi.
Automatyczne konwersje typów char[]<->int w procesorze nie sprzyjałoby
tzw. elegancji kodu lecz byłoby tylko "wytrychem" na lenistwo bądź
niewiedzę programisty (to oczywiście moje zdanie). Czy konwersja
pomiędzy char[] a int jest problematyczna przy pisaniu programu?
Przecież wystarczy raz w programie zdefiniować SAMEMU jak ma być
robione to rzutowanie (i nawet nie trzeba robić implementacji, można
skorzystać z gotowych funkcji) i można konstrukcji typu (char[])100
używać, ale jak to jawnie zdefiniujesz, to kompilator wie, że ty
"wiesz co robisz" :D Pozatym to ty możesz sam określić kiedy w
konwersji jest błąd a kiedy nie jest, bo jak program zapyta "podaj
cenę" i użytkownik wpisze "25gr" to Ty jako programista możesz zrobić
z tego 0.25zł a procesor... albo wyrzuciłby błąd napotkawszy nieznane
znaki, albo "olałby" jednostkę i traktowałby to jako 25zł :D
Z mojego doświadczenia: jeśli konwersja typów w programie jest "na
porządku dziennym" (za wyjątkiem I/O czyli interakcji z
użytkownikiem), to znaczy, że w programie jest dużo błędów
projektowych (nie został przemyślany, tylko programista bez projektu
zasiadł do pisania i "jakoś tak samo wyszło"). Znajomość języka
programowania a umiejętność programowania to dwie różne sprawy,
pozatym język programowania potrafi przyzwyczaić do pewnych schematów
myślenia.
W swoich początkach (ponad 20 lat temu) gdy zaczynałem od BASIC, to
mojej głowie było obce myślenie w kategoriach rekurencji, list, grafów,
podprocedeur, zmiennych lokalnych itd. bo... BASIC tego nie miał, więc
nauczyłem się "żyć bez tego" i jakieś rzeczy typu deklarowanie
zmiennych czy wskaźniki w innych językach programowania uważałem za
zbędny balast, który "spowalnia wklepywanie programu do komputera".
Obecnie... nie umiałbym napisać w BASIC nic poważniejszego, nie
"zapanował bym" nad projektem gdyby cały program musiał być "płaski" i
"beztypowy" :D Statystycznie najwięcej błędów znajduję u siebie w tych
miejscach, gdzie język nie wymaga ode mnie surowej dyscypliny :D
> tak ze mz mogloby wejsc
> - jest to dosyc fundamentalna operacja i
> wlasnie sporo klopotu jest z robieniem tego
> samemu, uprosciloby tez kody w polaczeniu
> z domyslnymi rzutowaniami - chco sa i troche
> problematyczne kwestie np jesli to by mialo byc
> na tak niskim poziomie to bledne konwersje
> musialyby chyba rzucac wyjatkami podobnymi do
> tych na fpu - no ale to jest wogole odrebny temat
FPU rzuca wyjątkami w przypadku rzeczy typu dzielenie przez zero czy
arcsin(-2), nie zajmuje się konwersjami między typami liczbowymi (i ich
reprezentacjami znakowymi :D) Nie ma najmniejszego kłopotu z robieniem
tego samemu, bo w bibliotece standardowej praktycznie każdego języka
masz gotowce dobrze zdefiniowane, wystarczy z nich
skorzystać. Procesor nie jest od tego aby wnikał czy dana liczba jest
zapisana po arabsku czy po rzymsku i czy napis 10e3 to zapis
szesnastkowy 0x10e3 czy liczba rzeczywista 10000, od rozstrzygania
takich rzeczy jest programista (bo w różnych przypadkach może być
różnie :D).
Następne wpisy z tego wątku
- 19.10.12 19:22 kenobi
- 19.10.12 20:06 kenobi
- 19.10.12 20:43 Baranosiu
- 20.10.12 01:25 Baranosiu
- 20.10.12 08:57 kenobi
- 20.10.12 10:38 kenobi
- 21.10.12 00:55 Baranosiu
- 21.10.12 10:07 kenobi
- 21.10.12 17:29 Baranosiu
- 22.10.12 08:18 Adam Wysocki
- 22.10.12 08:31 Adam Wysocki
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-31 Pieniadze-cuchna-oddechem-nawalonego-tatusia
- 2025-12-31 Iran na skraju gospodarczego upadku. Na ulicach Teheranu (znów) wrze. To może być cios dla reżimu
- 2025-12-30 zasilacz
- 2025-12-30 Teraz System Plików PFS z sys. op. Amiga OS będziesz mógł zamontować pod sys. op. Linuks i Jabłoko Makintosz
- 2025-12-30 Aeor2 i ciągły internet 512kb
- 2025-12-30 Czy prohibicja (reklamowa) obejmuje Św. Mikołaja (przerośniętego krasnala)? :-)
- 2025-12-30 Zegary DCF
- 2025-12-29 Greta Thunberg aresztowana w Londynie za wsparcie zdelegalizowanej grupy [Palestine Action - przyp. JMJ]
- 2025-12-29 Sarkozy
- 2025-12-29 Czujnik
- 2025-12-29 Warszawa => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Serv
- 2025-12-29 Warszawa => IT Recruiter <=
- 2025-12-29 Warszawa => Solution Architect (Workday) - Legal Systems <=
- 2025-12-29 Warszawa => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-29 Warszawa => Senior Java Developer <=




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]