Programowanie niskopoziomowe
|
|
- Weronika Żurek
- 9 lat temu
- Przeglądów:
Transkrypt
1 Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1
2 Programowanie niskopoziomowe w systemie operacyjnym Programowanie w systemie operacyjnym nie wymaga od programisty dokładnej znajomości maszyny. Środowisko pracy programu jest przygotowywane przez system operacyjny i moduł startowy. Programista ma za zadanie jedynie utworzyć użytkową część programu. 2
3 Programowanie niskopoziomowe w systemie operacyjnym Funkcje realizowane przez system operacyjny: Alokacja pamięci Obsługa systemu plików Obsługa wejścia/wyjścia Obsługa wyjątków 3
4 Programowanie niskopoziomowe poza systemem operacyjnym Programy uruchamiane poza środowiskiem systemu operacyjnego operują bezpośrednio na zasobach sprzętowych maszyny. Programista ma w tym przypadku obowiązek zaalokować pamięć, m.in. stos. Takie programy muszą być pisane w asemblerze. 4
5 Programowanie niskopoziomowe poza systemem operacyjnym Przykłady: Bootloader program ładujący system operacyjny jądro systemu operacyjnego samodzielna aplikacja systemu wbudowanego 5
6 Tworzenie programu z wykorzystaniem programowania niskopoziomowego Podczas tworzenia aplikacji możliwe jest równoległe stosowanie języków wysokopoziomowych i asemblera. Tworzony program może się składać z wielu plików pisanych w różnych językach programowania. Ta uniwersalność jest możliwa dzięki wieloetapowemu procesowi tłumaczenia tekstu programu na kod wykonywalny. 6
7 Proces tłumaczenia kodu programu pisanego w języku wysokiego poziomu preprocessing i kompilacja Tekst programu Zbiór obiektowy Zbiory obiektowe Zbiory Zbiory obiektowe obiektowe biblioteczne biblioteczne biblioteczne konsolidacja (linkowanie) Kod wykonywalny 7
8 Proces tłumaczenia kodu programu wersja z asemblacją kompilacja asemblacja Tekst programu Wygenerowany kod asemblera Zbiór obiektowy Kod wykonywalny Zbiory obiektowe Zbiory Zbiory obiektowe obiektowe biblioteczne biblioteczne biblioteczne konsolidacja 8
9 Pojawia się możliwość łączenia programowania w języku wysokiego poziomu i w asemblerze - programowanie hybrydowe kompilacja asemblacja Tekst programu Wygenerowany kod asemblera Zbiór obiektowy Kod asemblera utworzony przez programistę Zbiory obiektowe biblioteczne asemblacja Zbiór obiektowy konsolidacja Kod wykonywalny 9
10 Łączenie programowania w asemblerze i języku wysokiego poziomu jest możliwe nawet, jeśli proces kompilacji pomija postać asemblerową Tekst programu kompilacja Zbiór obiektowy Kod asemblera utworzony przez programistę Zbiory obiektowe biblioteczne asemblacja Zbiór obiektowy konsolidacja Kod wykonywalny 10
11 Zbiory obiektowe Zbiory obiektowe zawierają kod wykonywalny, w którym nie zostały zdefiniowane odwołania do obiektów zewnętrznych: zmiennych i procedur definiowanych w innych modułach. Zbiory obiektowe zawierają informację o tych odwołaniach i udostępnianych przez siebie obiektach. 11
12 Zbiory obiektowe Popularne formaty zbiorów obiektowych: ELF (Executable and Linking Format) popularny w systemie Linux COFF (Common Object File Format)- używany w systemie Windows SOM (System Object Module) format wprowadzony przez firmę Hewlet Packard 12
13 Wiązanie obiektów i odwołań Dzięki zawartym informacjom konsolidator może wiązać obiekty z odwołaniami w innych modułach. Konsolidator nie musi mieć dostępu do informacji, w jakim języku był pisany dany moduł, podlegający łączeniu. 13
14 Zasady łączenia kodu w języku wysokiego poziomu i w asemblerze Aby możliwe było wiązanie odwołań do obiektów z innych modułów muszą one być: Zewnętrzne w modułach odwołujących się do nich Publiczne w modułach, gdzie są definiowane 14
15 Obiekty zewnętrzne w języku C i w asemblerze Niezdefiniowane funkcje w języku C są z założenia traktowane przez kompilator jako zewnętrzne. Kompilator jest informowany o istnieniu nazwy zewnętrznej zmiennej za pomocą słowa kluczowego extern. Wszelkie obiekty zewnętrzne muszą zostać w asemblerze zadeklarowane za pomocą extern. 15
16 Obiekty publiczne w języku C i w asemblerze Jedynie obiekty publiczne są dostępne dla innych modułów. W języku C wszystkie obiekty globalne są publiczne, poza zdefiniowanymi ze słowem static. W asemblerze obiekty publiczne definiuje się z zastosowaniem słowa static lub global. 16
17 Przykład łączenia kodu w języku C i w asemblerze - kod w języku C extern void f1 (void); /* słowo extern pokazuje, że jest to obiekt zewnętrzny*/ int main () { f1(); return 0; } 17
18 Przykład łączenia kodu w języku C i w asemblerze - kod w asemblerze.text.global f1 f1: pushl %ebp movl %esp, %ebp movl $4, %eax /* 4 to funkcja systemowa "write" */ movl $1, %ebx /* 1 to stdout */ movl $tekst, %ecx /* adres tekstu */ movl $len, %edx /* długość tekstu w bajtach */ int $0x80 /* wywołanie przerwania systemowego */ popl %ebp ret.data tekst:.string "Hello world\n" len =. - tekst 18
19 Przekazywanie argumentów funkcji z języka C do asemblera Argumenty w języku C przekazywane są do funkcji przez stos: odkładane są na stosie od ostatniego do pierwszego. W asemblerze do odczytu argumentów posługujemy się wskaźnikiem stosu. pushl %ebp movl %esp, %ebp 19
20 Zwracanie wartości funkcji do programu w języku C W języku C wartość funkcji jest zwracana programowi wywołującemu w jednym z rejestrów mikroprocesora. W architekturze i386 do zwracania używa się rejestru EAX, bądź jego "mniejszych" odpowiedników, tj. AX i AH/AL. Przykład: by funkcja, napisana w asemblerze zwróciła "1" przed rozkazem ret należy napisać: movl $1, %eax 20
21 Łączenie kodu w języku C i w asemblerze w jednym zbiorze Możliwe jest dołączanie do kodu w języku C ciągu instrukcji asemblera za pomocą tzw. wstawek asemblerowych, definiowanych słowem asm. Przykład: int main () { asm ("nop"); } 21
22 Dyrektywy organizacji segmentów w asemblerze Pisząc program w asemblerze dla architektury x86 należy wskazać segmenty, w których definiowane są poszczególne obiekty za pomocą dyrektyw organizacji segmentów:.section.text - kod programu.section.rodata stałe inicjalizowane.section.data - zmienne inicjalizowane.section.bss - dane nieinicjalizowane 22
23 Przykład użycia dyrektyw organizacji segmentów w asemblerze ;initializing data.section.data x:.byte 128 ;one byte initialized to 128 y:.long 1,1000,10000 ;3 long words ;initializing ascii data.ascii "hello ;ascii without null character asciz "hello ;ascii with \0 ;allocating memory in bss.section.bss.equ BUFFSIZE 1024 ;define a constant.comm z, 4, 4 ;allocate 4 bytes for x with ;4-byte alignment 23
24 Przykład użycia dyrektyw organizacji segmentów w asemblerze, cd. ;making symbols externally visible.section.data.globl w ;declare externally visible ;e.g: int w = 10.text.globl fool ;e.g: fool(void) { } fool: leave return 24
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 1: Wstęp Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Informacje o przedmiocie Języki asemblerowe i ich zastosowania
Ćwiczenie nr 6. Programowanie mieszane
Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu
PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.04 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 3 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.04 Rok akad.
PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad.
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie
Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy
PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr
Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler
Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM
PROGRAMOWANIE NISKOPOZIOMOWE
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 Wprowadzenie
Assembler w C++ Syntaksa AT&T oraz Intela
Ponownie dodaję artykuł zahaczający o temat assemblera. Na własnej skórze doświadczyłem dzisiaj problemów ze wstawką assemblerową w kodzie C++, dlatego postanowiłem stworzyć artykuł, w którym zbiorę w
Programowanie hybrydowe łączenie C/C++ z asemblerem
Programowanie hybrydowe łączenie C/C++ z asemblerem Konwencje Wywoływanie procedur asemblerowych w kodzie języka wysokiego poziomu wymaga: Ustalenia konwencji nazewniczej używanej w języku programowania
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Adam Kotynia, Łukasz Kowalczyk
Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)
PROGRAMOWANIE NISKOPOZIOMOWE
PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/2012 1 / 22 1 Asembler
Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.
Dwiczenie 5. TEMAT: CEL: Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008. Celem dwiczenia jest poznanie możliwości VS 2008 w zakresie tworzenia i uruchamiania aplikacji z kodem mieszanym
PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S
PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Dziekan Wydziału Nauk Społecznych i Technik Komputerowych S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Przepełnienie bufora i łańcuchy formatujace
Metody włamań do systemów komputerowych Przepełnienie bufora i łańcuchy formatujace Bogusław Kluge, Karina Łuksza, Ewa Makosa b.kluge@zodiac.mimuw.edu.pl, k.luksza@zodiac.mimuw.edu.pl, e.makosa@zodiac.mimuw.edu.pl
Wstęp do programowania
Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład
Wstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 1 Wstęp Krzysztof Banaś Podstawy programowania 1 Elementy historii informatyki I think there is a world market for maybe five computers. - Thomas Watson, chairman of IBM,
PMiK Programowanie Mikrokontrolera 8051
PMiK Programowanie Mikrokontrolera 8051 Wykład 3 Mikrokontroler 8051 PMiK Programowanie mikrokontrolera 8051 - wykład S. Szostak (2006) Zmienna typu bit #define YES 1 // definicja stałych #define NO 0
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Architektura komputerów
Architektura komputerów Wykład 6 Jan Kazimirski 1 Architektura x86 2 Środowisko wykonawcze x86 (32-bit) Przestrzeń adresowa Liniowa przestrzeń adresowa do 4 GB Fizyczna przestrzeń adresowa do 64 GB Rejestry
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4
Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest
Konsolidacja (linking)
Konsolidacja (linking) 1 Ostatni etap budowania programu PRE- PROCESSING KOMPILACJA ASEMBLACJA LINKING Łączenie osobnych fragmentów kodu maszynowego w plik wykonywalny Wykonywana przez linker ld w systemie
Cel wykładu. Przedstawienie działania exploitów u podstaw na przykładzie stack overflow.
Exploity w praktyce Plan prelekcji Powtórka assembly x86 32. Pamięć uruchamianych programów. Prosty stack overflow exploit. Tworzenie shellcode i jego uruchomienie. Wstrzykiwanie shellcode wykorzystując
1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.
Literatura Język C 1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. 2. Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com
IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz
Podstawy Informatyki Języki programowania c.d.
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład
Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Opis efektów kształcenia dla modułu zajęć
Nazwa modułu: Programowanie mikrokontroleroẃ i mikroprocesoroẃ Rok akademicki: 2017/2018 Kod: EIT-1-408-s Punkty ECTS: 4 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek:
Praktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.
Krótki artykuł opisujący trzy podstawowe konwencje wywoływania funkcji C++ (a jest ich więcej). Konwencje wywoływania funkcji nie są tematem, na który można się szeroko rozpisać, jednak należy znać i odróżniać
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania. Dlatego trzeba je zapisywać do pliku, a potem umieć je z tego
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)
Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe
Programowanie strukturalne język C - wprowadzenie
Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość
Wirusy w systemie Linux. Konrad Olczak
Wirusy w systemie Linux Konrad Olczak Plan prezentacji Różnice w bezpieczeństwie Windowsa i Linuxa. Pokazanie możliwości implemetacji wirusa. Windows vs. Linux Uruchamianie plików. Różnorodność oprogramowania.
Wstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Wskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Zarządzanie pamięcią operacyjną
Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci
Podział programu na moduły
Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala
Języki i metody programowania I
Języki i metody programowania I dr inż. Piotr Szwed Katedra Informatyki Stosowanej C2, pok. 403 e-mail: pszwed@agh.edu.pl http://home.agh.edu.pl/~pszwed/ Aktualizacja: 2013-01-18 9. Struktura programów
Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD
Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe
Wykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
WYKŁAD 1 - KONSPEKT. Program wykładu:
mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Zaawansowane programowanie w języku C++ Podstawy programowania w C++
Zaawansowane programowanie w języku C++ Podstawy programowania w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Podstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów
Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików
Architektura komputerów
Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły
Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28
Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera
Programowanie w asemblerze Linkowanie
Programowanie w asemblerze Linkowanie January 17, 2017 Problem rozmieszczenia (relokacji) Ponieważ w pamięci równocześnie może znajdować się kilka programów, nie można w trakcie kompilacji przewidzieć
Wykład 1
Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego
JAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI
JAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI Gdy wywołujesz daną funkcję, program przechodzi do tej funkcji, przekazywane są parametry i następuje wykonanie ciała funkcji. Gdy funkcja zakończy działanie, zwracana
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Elementy składoweµc - przypomnienie
SWB - Programowanie mikrokontrolerów - wykład 8 asz 1 Elementy składoweµc - przypomnienie Elementy składoweµc: procesor z ALU pamięć komputera (zawierająca dane i program) urządzenia wejścia/wyjścia SWB
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym
Struktura programu użytkownika w systemie mikroprocesorowym start inicjalizacja niekończaca się pętla zadania niekrytyczne czasowo przerwania zadania krytyczne czasowo 1 Znaczenie problematyki programowania
Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38
Programowanie w C++ Wykład 1 Katarzyna Grzelak 25 luty 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 38 Umiejętność, która otwiera
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Wprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Programowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Wykład 4. Środowisko programistyczne
Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator
Wprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze
Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora
Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów Krzysztof Banaś Podstawy programowania 1 Programy Większość programów w C stanowią rozbudowane kody, definiujące wiele funkcji
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).
Java jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Metody Realizacji Języków Programowania
Metody Realizacji Języków Programowania Bardzo krótki kurs asemblera x86 Marcin Benke MIM UW 10 stycznia 2011 Marcin Benke (MIM UW) Metody Realizacji Języków Programowania 10 stycznia 2011 1 / 22 Uwagi
Parę słów o przepełnieniu bufora.
Parę słów o przepełnieniu bufora. Łukasz Pejas Styczeń 2006 1 Bufor na stosie. Stos służy między innymi do przekazywania parametrów do funkcji i do tworzenia zmiennych lokalnych funkcji. Jest czymś w rodzaju
Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
Java EE produkcja oprogramowania
Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez
Buffer Overflow (art. 2) by h07 (h07@interia.pl)
Buffer Overflow (art. 2) by h07 (h07@interia.pl) Intro Artykuł ten kierowany jest do osób znających podstawy języków programowania C i Assembler a takŝe architektury systemu Linux i sposobów zarządzania
Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Wstęp. do języka C na procesor 8051. (kompilator RC51)
Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje
Spis treści. 1 Java T M
Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste
ZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.